Patent ID: 8396700

Claim:
In a physical computing device that implements an aggregate generation module, an aggregate rotation module, and an aggregate stability module, the physical computing device having a processor and memory, a computer implemented method for simulating an aggregate, comprising: obtaining a test aggregate, the test aggregate comprising a plurality of monomers; rotating the test aggregate to provide a rotated aggregate; and determining whether the rotated aggregate is stable, comprising: defining a surface; determining potential point contacts of the rotated aggregate with the surface; determining a plurality of primary contact points from the potential point contacts; classifying remaining potential point contacts according to which of the primary contact points they are closest to form a number of groups, the number of groups corresponding to the number of primary contact points; determining the center of mass of each of the number of groups; taking the center of mass of each of the groups to be a number of average contact points; determining whether the three dimensional projection of the center of mass of the test aggregate lies within a triangle formed by the average points of contact; if the center of mass falls within the triangle, determining the orientation to be stable.