Difference between revisions of "Triangulation"

From Yade

Line 8: Line 8:
 
[[File:cell_volume.png|500px|thumb|right|Fig.2 Defining a local volume for spheres in a packing ([[Publications | Hartong et al. (2010)]])]]
 
[[File:cell_volume.png|500px|thumb|right|Fig.2 Defining a local volume for spheres in a packing ([[Publications | Hartong et al. (2010)]])]]
   
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
===Main members :===
 
 
 
 
 
 
 
<source lang="cpp">
 
///Insert a sphere, "id" will be used by some getters to retrieve spheres.
 
insert (double x, double y, double z, double rad, unsigned int id)
 
 
///A faster version of insert.
 
bool insertSceneSpheres (const Scene *scene)
 
 
///Move one sphere to the new position (x,y,z) and maintain triangulation (invalidates the tesselation).
 
bool move (double x, double y, double z, double rad, unsigned int id)
 
 
///Reset the triangulation.
 
void clear (void)
 
 
///Add axis aligned bounding planes (modelised as spheres with (almost) infinite radius).
 
void AddBoundingPlanes (void)
 
 
///Force boudaries at positions not equal to precomputed ones.
 
void AddBoundingPlanes (double pminx, double pmaxx, double pminy, double pmaxy, double pminz, double pmaxz, double dt)
 
 
///Compute voronoi centers then stop (don't compute anything else).
 
void ComputeTesselation (void)
 
 
///Compute volume of each Voronoi cell
 
void ComputeVolumes (void)
 
 
///Get volume of the sphere inserted with indentifier "id"".
 
double Volume (unsigned int id)
 
 
///number of facets in the tesselation (finite branches of the triangulation)
 
unsigned int NumberOfFacets (bool initIters = false)
 
 
///set first and last facets, set facet_it = facet_begin
 
void InitIter (void)
 
 
///set facet = next pair (body1->id,body2->id), returns facet_it==facet_end
 
bool nextFacet (std::pair< unsigned int, unsigned int > &facet)
 
</source>
 
 
 
 
==MicroMacroAnalyzer==
 
==MicroMacroAnalyzer==

Revision as of 16:03, 1 October 2010

TesselationWrapper

TesselationWrapper (still in development) can be used for building and performing basic operations on the triangulation or tesselation of sphere packings. It should be accessed directly from python or included in another engine doing more complex things (e.g. MicroMacroAnalyser - see below, TriangulationCollider, VolumicContactLaw).


Fig. 1: Deviatoric srain map in a triaxial test simulation with periodic bondary conditions (10k spheres and elastic-frictional contacts). Output files generated by MicroMacroAnalyzer and post-processed using Paraview.
Fig.2 Defining a local volume for spheres in a packing ( Hartong et al. (2010))


MicroMacroAnalyzer

The engine MicroMacroAnalyzer computes quantities like fabric tensor, local porosity, local deformation, and other micromechanicaly defined quantities based on triangulation/tesselation of the packing.

(*) Regular is for weighted points (center + radius), while the usual Delaunay is for points.