GenGeo  1.1
CircMNTable3D Class Reference

circular Multi-group Neighbour table More...

#include <CircMNTable3D.h>

Inheritance diagram for CircMNTable3D:
Collaboration diagram for CircMNTable3D:

Public Member Functions

 CircMNTable3D ()
 CircMNTable3D (const Vector3 &, const Vector3 &, double, unsigned int)
 ~CircMNTable3D ()
virtual bool insert (const Sphere &, unsigned int)
virtual bool checkInsertable (const Sphere &, unsigned int)
virtual bool insertChecked (const Sphere &, unsigned int, double=s_small_value)
virtual void generateBonds (int, double, int)
virtual void generateClusterBonds (int, double, int, int)
- Public Member Functions inherited from MNTable3D
 MNTable3D ()
 MNTable3D (const Vector3 &, const Vector3 &, double, unsigned int)
virtual ~MNTable3D ()
bool insertFromRawFile (const string &, double, double)
void GrowNGroups (unsigned int)
const multimap< double, const
Sphere * > 
getSpheresClosestTo (const Vector3 &, unsigned int) const
const multimap< double, const
Sphere * > 
getSpheresFromGroupNear (const Vector3 &, double, int) const
const vector< const Sphere * > getAllSpheresFromGroup (int) const
const SpheregetClosestSphereFromGroup (const Sphere &, int) const
int getTagOfClosestSphereFromGroup (const Sphere &, int) const
const SpheregetClosestSphereFromGroup (const Sphere &, int, double, double, double) const
int getTagOfClosestSphereFromGroup (const Sphere &, int, double, double, double) const
void tagParticlesAlongPlane (const Plane &, double, int, unsigned int)
void tagParticlesAlongPlaneWithMask (const Plane &, double, int, int, unsigned int)
void tagParticlesInSphere (const Sphere &, int, unsigned int)
void tagParticlesInGroupNT (int tag, int gid)
void tagParticlesInGroup (int, int, int)
void tagParticlesToClosest (int, int)
void tagParticlesToClosestAnisotropic (int, int, double, double, double)
void removeParticlesWithTag (int, unsigned int)
void removeParticlesWithTagMask (unsigned int, int, int)
void removeParticlesInVolume (AVolume3D *, int, bool)
void removeParticlesInGroup (unsigned int)
void tagParticlesAlongJoints (const TriPatchSet &, double, int, int, unsigned int)
void tagParticlesInVolume (const AVolume &, int, unsigned int)
void renumberParticlesContinuous ()
virtual void calculateTightBoundingBox ()
void setBoundingBoxTracking (bool)
boost::python::list getSphereListFromGroup (int) const
boost::python::list getSphereListDist (const Vector3 &, double, int) const
virtual void generateBondsWithJointSet (const TriPatchSet &, int, double, int)
virtual void generateBondsTagged (int, double, int, int, int)
virtual void generateRandomBonds (int, double, double, int, int, int)
void insertBond (int, int, int)
double getSumVolume (int)
void SetOutputPrecision (int)
void SetWriteTightBoundingBox (bool)
void write (char *filename, int outputStyle)

Protected Member Functions

virtual void set_x_circ ()
virtual int getIndex (const Vector3 &) const
int getXIndex (const Vector3 &) const
int getYIndex (const Vector3 &) const
int getZIndex (const Vector3 &) const
int getFullIndex (const Vector3 &) const
- Protected Member Functions inherited from MNTable3D
int idx (int i, int j, int k) const
void WriteAsVtkXml (ostream &) const
virtual void set_y_circ ()
virtual void set_z_circ ()

Protected Attributes

Vector3 m_shift_x
- Protected Attributes inherited from MNTable3D
MNTCellm_data
map< int, set< bond > > m_bonds
Vector3 m_origin
 origin
Vector3 m_min_pt
Vector3 m_max_pt
double m_celldim
 cell size
int m_nx
int m_ny
int m_nz
 number of cells in x-, y- and z-direction
unsigned int m_ngroups
int m_x_periodic
int m_y_periodic
int m_z_periodic
bool m_bbx_tracking
 if true, bbx is updated for each insert operation
bool m_has_tight_bbx
 true if a tight bounding box has been calculated
bool m_write_tight_bbx
 if true, tight bbx is written instead of min/max
Vector3 m_min_tbbx
Vector3 m_max_tbbx
 corner points of tight bounding box
int m_write_prec
 precision (nr. of significant digits) for file output

Additional Inherited Members

- Public Types inherited from MNTable3D
typedef pair< int, int > bond
- Static Public Member Functions inherited from MNTable3D
static void SetOutputStyle (int)
- Static Protected Attributes inherited from MNTable3D
static int s_output_style = 0
static double s_small_value = 1e-7

Detailed Description

circular Multi-group Neighbour table

Neighbour table supporting multiple tagged groups of particles and circular boundary conditions (x only at the moment)

Constructor & Destructor Documentation

CircMNTable3D::CircMNTable3D ( )
CircMNTable3D::CircMNTable3D ( const Vector3 MinPt,
const Vector3 MaxPt,
double  cd,
unsigned int  ngroups 
)

Construct CircMNTable3D. Just calls MNTable3D constructor.

Parameters
MinPtminimum point (z component ignored)
MaxPtmaximum point (z component ignored)
cdcell dimension
ngroupsinitial number of particle groups

References MNTable3D::m_celldim, MNTable3D::m_max_pt, MNTable3D::m_min_pt, m_shift_x, and set_x_circ().

Here is the call graph for this function:

CircMNTable3D::~CircMNTable3D ( )

Destruct CircMNTable3D. Just calls MNTable3D destructor.

Member Function Documentation

bool CircMNTable3D::checkInsertable ( const Sphere S,
unsigned int  gid 
)
virtual

check if sphere is insertable

Parameters
Sthe Sphere
gidthe group id

Reimplemented from MNTable3D.

Reimplemented in FullCircMNTable3D.

References Sphere::Center(), getIndex(), MNTable3D::getSpheresFromGroupNear(), getXIndex(), MNTable3D::idx(), MNTable3D::m_ngroups, MNTable3D::m_nx, m_shift_x, Sphere::Radius(), and MNTable3D::s_small_value.

Here is the call graph for this function:

void CircMNTable3D::generateBonds ( int  gid,
double  tol,
int  btag 
)
virtual

generate bonds between particles of a group

Parameters
gidthe group ID
tolmax. difference between bond length and equilibrium dist.
btagbond tag

Reimplemented from MNTable3D.

Reimplemented in FullCircMNTable3D.

References MNTCell::getBonds(), MNTable3D::idx(), MNTable3D::m_bonds, MNTable3D::m_data, MNTable3D::m_nx, MNTable3D::m_ny, and MNTable3D::m_nz.

Referenced by exportCircMNTable3D(), and main().

Here is the call graph for this function:

void CircMNTable3D::generateClusterBonds ( int  gid,
double  tol,
int  btag1,
int  btag2 
)
virtual

generate bonds between particles of a group

Parameters
gidthe group ID
tolmax. difference between bond length and equilibrium dist.
btag1tag for bonds within clusters (same particle tag)
btag2tag for bonds betweem clusters (different particle tag)

Reimplemented from MNTable3D.

References MNTCell::getBondsDiff(), MNTCell::getBondsSame(), MNTable3D::idx(), MNTable3D::m_bonds, MNTable3D::m_data, MNTable3D::m_nx, MNTable3D::m_ny, and MNTable3D::m_nz.

Referenced by exportCircMNTable3D().

Here is the call graph for this function:

int CircMNTable3D::getFullIndex ( const Vector3 Pos) const
protected
int CircMNTable3D::getIndex ( const Vector3 Pos) const
protectedvirtual

get the cell index for a given position

Parameters
Posthe position
Returns
the cell index if Pos is inside the table, -1 otherwise

Reimplemented from MNTable3D.

Reimplemented in FullCircMNTable3D.

References MNTable3D::idx(), MNTable3D::m_celldim, MNTable3D::m_nx, MNTable3D::m_ny, MNTable3D::m_nz, MNTable3D::m_origin, Vector3::x(), Vector3::y(), and Vector3::z().

Referenced by checkInsertable(), insert(), and insertChecked().

Here is the call graph for this function:

int CircMNTable3D::getXIndex ( const Vector3 Pos) const
protected
int CircMNTable3D::getYIndex ( const Vector3 Pos) const
protected
int CircMNTable3D::getZIndex ( const Vector3 Pos) const
protected
bool CircMNTable3D::insert ( const Sphere S,
unsigned int  gid 
)
virtual

Insert sphere. Insert clone into other side of Table.

Parameters
Sthe Sphere
gidthe group id

Reimplemented from MNTable3D.

Reimplemented in FullCircMNTable3D.

References Sphere::Center(), getFullIndex(), getIndex(), getXIndex(), MNTable3D::idx(), MNTCell::insert(), MNTable3D::m_data, MNTable3D::m_ngroups, MNTable3D::m_nx, m_shift_x, and Sphere::shift().

Here is the call graph for this function:

bool CircMNTable3D::insertChecked ( const Sphere S,
unsigned int  gid,
double  tol = s_small_value 
)
virtual

Insert sphere if it doesn't collide with other spheres. Insert clone into other side of Table.

Parameters
Sthe Sphere
gidthe group id

Reimplemented from MNTable3D.

Reimplemented in FullCircMNTable3D.

References Sphere::Center(), getFullIndex(), getIndex(), MNTable3D::getSpheresFromGroupNear(), getXIndex(), MNTable3D::idx(), MNTCell::insert(), MNTable3D::m_data, MNTable3D::m_ngroups, MNTable3D::m_nx, m_shift_x, Sphere::Radius(), and MNTable3D::s_small_value.

Here is the call graph for this function:

void CircMNTable3D::set_x_circ ( )
protectedvirtual

set circularity of x-dimension to 1

Reimplemented from MNTable3D.

References MNTable3D::m_x_periodic.

Referenced by CircMNTable3D().

Member Data Documentation


The documentation for this class was generated from the following files: