ESyS-Particle  4.0.1
Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes
TSubLattice< T > Class Template Reference

Class for a Sublattice. More...

#include <SubLattice.h>

Inheritance diagram for TSubLattice< T >:
Inheritance graph
[legend]
Collaboration diagram for TSubLattice< T >:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 TSubLattice (const esys::lsm::CLatticeParam &prm, int rank, MPI_Comm comm, MPI_Comm worker_comm)
virtual void setTimeStepSize (double dt)
virtual vector< int > getCommCoords () const
virtual vector< int > getCommDims () const
virtual void receiveParticles ()
virtual void receiveConnections ()
virtual const MPI_Comm & getWorkerComm () const
virtual void initNeighborTable (const Vec3 &, const Vec3 &)
virtual void initNeighborTable (const Vec3 &, const Vec3 &, const vector< bool > &)
virtual void addWall ()
virtual void addElasticWIG ()
virtual void addBondedWIG ()
virtual void addDirBondedWIG ()
virtual void addViscWIG ()
virtual void addTriMesh ()
virtual void addTriMeshIG ()
virtual void addBondedTriMeshIG ()
virtual void addMesh2D ()
virtual void addMesh2DIG ()
virtual void addBondedMesh2DIG ()
virtual void addPairIG ()
virtual void addTaggedPairIG ()
virtual void addSingleIG ()
virtual void addBondedIG ()
virtual void addCappedBondedIG ()
virtual void addShortBondedIG ()
virtual void addRotBondedIG ()
virtual void addRotThermBondedIG ()
virtual void addDamping ()
virtual void setExIG ()
virtual void removeIG ()
virtual void getWallPos ()
virtual void getWallForce ()
virtual void oneStep ()
virtual void oneStepTherm ()
virtual void exchangePos ()
void setTimeStep (double dt)
virtual void rebuildParticleArray ()
virtual void rebuildInteractions ()
virtual void searchNeighbors ()
virtual void updateInteractions ()
virtual void checkNeighbors ()
void resetDisplacements ()
virtual void do2dCalculations (bool do2d)
virtual int getNumParticles ()
std::pair< double, int > findParticleNearestTo (const Vec3 &pt)
std::pair< int, Vec3getParticlePosn (int particleId)
AParallelInteractionStoragefindPis (const std::string &groupName)
template<typename TmplPis >
ParticleIdPairVector getBondGroupIdPairs (TmplPis *pBondPis)
virtual void moveParticleTo ()
virtual void moveTaggedParticlesBy ()
virtual void moveSingleParticleTo (int particleId, const Vec3 &posn)
virtual void moveWallBy ()
virtual void setWallNormal ()
virtual void applyForceToWall ()
virtual void setParticleVelocity ()
virtual void setVelocityOfWall ()
virtual void setParticleNonDynamic ()
virtual void setParticleNonRot ()
virtual void setParticleNonTrans ()
virtual void setParticleDensity ()
virtual void setTaggedParticleVel ()
virtual void tagParticleNearestTo ()
virtual void moveSingleNode ()
virtual void moveTaggedNodes ()
virtual void translateMeshBy (const std::string &meshName, const Vec3 &translation)
virtual void sendDataToMaster ()
virtual void countParticles ()
virtual void printStruct ()
virtual void printData ()
virtual void printTimes ()
virtual void addScalarParticleField ()
virtual void addVectorParticleField ()
virtual void addScalarInteractionField ()
virtual void addVectorInteractionField ()
virtual void addScalarTriangleField ()
virtual void addVectorTriangleField ()
virtual void sendFieldData ()
virtual void addVectorWallField ()
virtual void saveSnapShotData (std::ostream &oStream)
virtual void saveCheckPointData (std::ostream &oStream)
virtual void loadCheckPointData (std::istream &iStream)
virtual void setTimer (MpiWTimers &timers)
virtual void getMeshNodeRef ()
virtual void getMeshFaceRef ()
virtual void getMesh2DStress ()
virtual void getTriMeshForce ()
virtual void getParticleData (const IdVector &particleIdVector)

Protected Types

typedef ParallelParticleArray< T > ParticleArray
typedef map< string,
AInteractionGroup< T > * > 
NameIGroupMap
 persistent interactions

Protected Member Functions

void calcForces ()
void zeroForces ()
void integrate (double)
void integrateTherm (double dt)
void zeroHeat ()
void thermExpansion ()
void calcHeatFrict ()
void calcHeatTrans ()
virtual bool doAddPIG (const string &, const string &, CVarMPIBuffer &, bool tagged=false)
virtual bool doAddDamping (const string &, CVarMPIBuffer &)

Protected Attributes

ParticleArraym_ppa
map< string,
AParallelInteractionStorage * > 
m_dpis
map< string,
AParallelInteractionStorage * > 
m_bpis
 dynamic interactions
NameIGroupMap m_singleParticleInteractions
map< string,
AParallelInteractionStorage * > 
m_damping
 Body/gravitational force interactions.
map< string,
AWallInteractionGroup< T > * > 
m_WIG
map< string, CWall * > m_walls
map< string, TriMesh * > m_mesh
map< string, Mesh2D * > m_mesh2d
double m_dt
double m_nrange
double m_alpha
int m_last_ns
map< int, vector< int > > m_temp_conn
int m_rank
 rank in m_comm
MPI_Comm m_comm
TML_Comm m_tml_comm
MPI_Comm m_worker_comm
 MPI communicator between workers (excl. master)
TML_Comm m_tml_worker_comm
 TML version of the communicator between workers (excl. master)
esys::lsm::CLatticeParam::ProcessDims m_dims
double packtime
double unpacktime
double commtime
double forcetime
map< int, AFieldSlave * > m_field_slaves
MpiWTimersm_pTimers

Detailed Description

template<typename T>
class TSubLattice< T >

Class for a Sublattice.


Constructor & Destructor Documentation

template<class T >
TSubLattice< T >::TSubLattice ( const esys::lsm::CLatticeParam prm,
int  rank,
MPI_Comm  comm,
MPI_Comm  worker_comm 
)

construct SubLattice

Parameters:
paramLattice parameters
rankthe MPI rank
commthe MPI communicator

References TSubLattice< T >::m_dims, TSubLattice< T >::m_rank, TSubLattice< T >::m_tml_worker_comm, TSubLattice< T >::m_worker_comm, and TML_Comm::setComm().

Here is the call graph for this function:


Member Function Documentation

template<class T >
void TSubLattice< T >::addBondedIG ( ) [virtual]

Add bonded interaction group to the lattice. Receive the parameters from master. The bonds are created from the neighbor table.

Implements ASubLattice.

References CBondedIGP::k, CVarMPIBuffer::pop_double(), CVarMPIBuffer::pop_int(), CVarMPIBuffer::pop_string(), CBondedIGP::rbreak, CVarMPIBuffer::receiveBroadcast(), ParallelInteractionStorage_EB< P, I >::setUnbreakable(), and BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::addBondedMesh2DIG ( ) [virtual]

add bonded interactions with 2d mesh get parameters from master

Implements ASubLattice.

References Mesh2D_PIS_EB< ParticleType, IType >::buildFromPPAByGap(), CVarMPIBuffer::pop_double(), CVarMPIBuffer::pop_int(), CVarMPIBuffer::pop_string(), CVarMPIBuffer::receiveBroadcast(), and BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::addBondedTriMeshIG ( ) [virtual]

Add a bonded TriMesh interaction group

Implements ASubLattice.

References CVarMPIBuffer::pop_double(), CVarMPIBuffer::pop_int(), CVarMPIBuffer::pop_string(), CVarMPIBuffer::receiveBroadcast(), and BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::addBondedWIG ( ) [virtual]

add bonded wall interaction group. Parameters received from the master

Implements ASubLattice.

References BasicCon::Error(), CVarMPIBuffer::receiveBroadcast(), and BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::addCappedBondedIG ( ) [virtual]

Add bonded interaction group to the lattice. Receive the parameters from master. The bonds are created from the neighbor table.

Implements ASubLattice.

References CBondedIGP::k, CVarMPIBuffer::pop_double(), CVarMPIBuffer::pop_int(), CVarMPIBuffer::pop_string(), CBondedIGP::rbreak, CVarMPIBuffer::receiveBroadcast(), ParallelInteractionStorage_EB< P, I >::setUnbreakable(), and BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::addDamping ( ) [virtual]

Add a DampingGroup to the lattice. Receive the parameters from master.

Implements ASubLattice.

References CVarMPIBuffer::pop_string(), CVarMPIBuffer::receiveBroadcast(), and BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::addDirBondedWIG ( ) [virtual]

add bonded wall interaction group with direction dependend elasticity . Parameters received from the master

Implements ASubLattice.

References BasicCon::Error(), CVarMPIBuffer::receiveBroadcast(), and BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::addElasticWIG ( ) [virtual]

add elastic wall interaction group. Parameters received from the master

Implements ASubLattice.

References CVarMPIBuffer::receiveBroadcast(), and BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::addMesh2D ( ) [virtual]

Add a 2D mesh. Receive all data from master

Implements ASubLattice.

References Mesh2D::LoadMesh(), CVarMPIBuffer::pop_string(), CVarMPIBuffer::receiveBroadcast(), and BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::addMesh2DIG ( ) [virtual]

Add a (non-bonded) LineMesh (2D) interaction group

Implements ASubLattice.

References CVarMPIBuffer::pop_double(), CVarMPIBuffer::pop_string(), CVarMPIBuffer::receiveBroadcast(), and BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::addPairIG ( ) [virtual]

Add a PairInteractionGroup to the lattice

Implements ASubLattice.

References CVarMPIBuffer::pop_string(), CVarMPIBuffer::receiveBroadcast(), and BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::addScalarInteractionField ( ) [virtual]

add scalar per-interaction field to saver list

Implements ASubLattice.

References BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::addScalarParticleField ( ) [virtual]

add scalar per-particle field to saver list

Implements ASubLattice.

References BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::addScalarTriangleField ( ) [virtual]

Add a per-triangle scalar field saver. Data received from master.

Implements ASubLattice.

References BasicCon::Critical(), BasicCon::Debug(), Triangle::getScalarFieldFunction(), and BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::addShortBondedIG ( ) [virtual]

Add short bonded interaction group to the lattice. Receive the parameters from master. The bonds are created from the neighbor table.

Implements ASubLattice.

References CBondedIGP::k, CVarMPIBuffer::pop_double(), CVarMPIBuffer::pop_int(), CVarMPIBuffer::pop_string(), CBondedIGP::rbreak, CVarMPIBuffer::receiveBroadcast(), and BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::addSingleIG ( ) [virtual]

Add a SingleInteractionGroup to the lattice

Todo:
currently gravity is hardwired, change this

Implements ASubLattice.

References CVarMPIBuffer::pop_string(), CVarMPIBuffer::receiveBroadcast(), and BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::addTaggedPairIG ( ) [virtual]

Add a tagged PairInteractionGroup to the lattice

Implements ASubLattice.

References CVarMPIBuffer::pop_string(), CVarMPIBuffer::receiveBroadcast(), and BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::addTriMesh ( ) [virtual]

Add a Triangle Mesh

Implements ASubLattice.

References TriMesh::LoadMesh(), CVarMPIBuffer::pop_string(), CVarMPIBuffer::receiveBroadcast(), and BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::addTriMeshIG ( ) [virtual]

Add a TriMesh interaction group

Implements ASubLattice.

References CVarMPIBuffer::pop_double(), CVarMPIBuffer::pop_string(), CVarMPIBuffer::receiveBroadcast(), and BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::addVectorInteractionField ( ) [virtual]

add per-interaction vector field to saver list

Implements ASubLattice.

References BasicCon::Debug(), BasicCon::Error(), and BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::addVectorParticleField ( ) [virtual]

add vector per-particle field to saver list

Implements ASubLattice.

References BasicCon::Debug(), and BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::addVectorTriangleField ( ) [virtual]

Add a per-triangle (in case of a TriMesh) of per-edge (in case of a Mesh2D) vector field saver. Data received from master.

Implements ASubLattice.

References BasicCon::Critical(), BasicCon::Debug(), Edge2D::getVectorFieldFunction(), Triangle::getVectorFieldFunction(), and BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::addVectorWallField ( ) [virtual]

Add vector wall field. Data received from master.

Implements ASubLattice.

References AWallFieldSlave::addWall(), BasicCon::Error(), and BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::addViscWIG ( ) [virtual]

add wall with viscous drag

Implements ASubLattice.

References BasicCon::Error(), CVarMPIBuffer::receiveBroadcast(), and BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::addWall ( ) [virtual]

Add wall to the sublattice. Parameters received from the master

Implements ASubLattice.

References CVarMPIBuffer::pop_string(), CVarMPIBuffer::receiveBroadcast(), and BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::applyForceToWall ( ) [virtual]

Apply given force to a wall. Parameters are received from master.

Implements ASubLattice.

References CVarMPIBuffer::pop_string(), CVarMPIBuffer::receiveBroadcast(), and BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::calcForces ( ) [protected]

Calculate the forces for all interactions contained in the sublattice. Interactions contained in more than one sublattice are calculated in each of them. Slightly more computation, but less communication, i.e. saves one syncronisation point (exchange of forces).

References BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::calcHeatFrict ( ) [protected]

Calculate the Heat Sources for all interactions contained in the sublattice. Interactions contained in more than one sublattice are calculated in each of them. Slightly more computation, but less communication, i.e. saves one syncronisation point (exchange of forces).

References BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::checkNeighbors ( ) [virtual]

check if any of the owned particles has moved futher than the search range for the neighbor table 5 Flops(1 dotproduct)/particle looked at

Implements ASubLattice.

References CMPISGBufferLeaf::append(), BasicCon::Debug(), CMPISGBufferLeaf::send(), and BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::countParticles ( ) [virtual]

Send number of owned particles to the master

Implements ASubLattice.

References CMPIVarSGBufferLeaf::append(), BasicCon::Debug(), and CMPIVarSGBufferLeaf::send().

Here is the call graph for this function:

template<class T >
bool TSubLattice< T >::doAddDamping ( const string &  type,
CVarMPIBuffer param_buffer 
) [protected, virtual]

Do the work for adding the damping

Parameters:
typethe type of damping
param_bufferthe buffer containing the parameters

Reimplemented in TRotSubLattice< T >.

References BasicCon::Error().

Referenced by TRotSubLattice< T >::doAddDamping().

Here is the call graph for this function:

Here is the caller graph for this function:

template<class T >
bool TSubLattice< T >::doAddPIG ( const string &  name,
const string &  type,
CVarMPIBuffer param_buffer,
bool  tagged = false 
) [protected, virtual]

do the actual work adding the PIG

Parameters:
namethe name of the PIG
typethe type of the PIG
param_bufferthe buffer containing the rest of the parameters

References FractalFrictionIGP::dy, FractalFrictionIGP::mu, FractalFrictionIGP::ny, CVarMPIBuffer::pop_double(), CVarMPIBuffer::pop_int(), and BasicCon::XDebug().

Referenced by TRotSubLattice< T >::doAddPIG().

Here is the call graph for this function:

Here is the caller graph for this function:

template<class T >
void TSubLattice< T >::exchangePos ( ) [virtual]

Exchange positions of shared particles with the other sublattices.

Implements ASubLattice.

References BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::getMesh2DStress ( ) [virtual]

send back stress on faces of given mesh, get mesh name from master

Implements ASubLattice.

References BasicCon::Critical(), CVarMPIBuffer::pop_string(), CVarMPIBuffer::receiveBroadcast(), and BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::getMeshFaceRef ( ) [virtual]

send back face (edge in 2D, triangle in 3d) ids of given mesh, get mesh name from master

Implements ASubLattice.

References BasicCon::Critical(), CVarMPIBuffer::pop_string(), CVarMPIBuffer::receiveBroadcast(), and BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::getMeshNodeRef ( ) [virtual]

send back node ids of given mesh, get mesh name from master

Implements ASubLattice.

References BasicCon::Critical(), CVarMPIBuffer::pop_string(), CVarMPIBuffer::receiveBroadcast(), and BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::getParticleData ( const IdVector &  particleIdVector) [virtual]
Todo:
DO DOCUMENTATION

Implements ASubLattice.

References BasicCon::Debug().

Here is the call graph for this function:

template<class T >
std::pair< int, Vec3 > TSubLattice< T >::getParticlePosn ( int  particleId) [virtual]
Todo:
DO DOCUMENTATION

Implements ASubLattice.

template<class T >
void TSubLattice< T >::getTriMeshForce ( ) [virtual]

send back stress on faces of given mesh, get mesh name from master

Implements ASubLattice.

References CVarMPIBuffer::pop_string(), CVarMPIBuffer::receiveBroadcast(), and BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::getWallForce ( ) [virtual]

get force acting on a wall

Implements ASubLattice.

References CVarMPIBuffer::pop_string(), CVarMPIBuffer::receiveBroadcast(), and BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::getWallPos ( ) [virtual]

get position of a wall

Implements ASubLattice.

References CVarMPIBuffer::pop_string(), CVarMPIBuffer::receiveBroadcast(), and BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::initNeighborTable ( const Vec3 min,
const Vec3 max 
) [virtual]

Initialize particle storage. The dimensions are global.

Parameters:
minminimum corner
maxmaximum corner

Implements ASubLattice.

References BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::initNeighborTable ( const Vec3 min,
const Vec3 max,
const vector< bool > &  circ 
) [virtual]

Initialize particle storage with some circular boundaries. The dimensions are global.

Parameters:
minminimum corner
maxmaximum corner

Implements ASubLattice.

References BasicCon::Critical(), BasicCon::Info(), and BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::integrate ( double  dt) [protected]

Do the time integration for the particles owned by the SubLattice by 1st order method

Parameters:
dtthe time step

References BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::integrateTherm ( double  dt) [protected]

Do the time integration for the particles owned by the SubLattice for temprature

Parameters:
dtthe time step

References BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::moveParticleTo ( ) [virtual]

Move all particles with a given tag to a given position. Parameters (tag,posn) are received from master.

Implements ASubLattice.

References BasicCon::Debug(), CVarMPIBuffer::pop_int(), and CVarMPIBuffer::receiveBroadcast().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::moveSingleNode ( ) [virtual]

Move mesh (tri or 2d) node by a given amount. Parameters (name,id,displacement) are received from master.

Implements ASubLattice.

References BasicCon::Debug(), CVarMPIBuffer::pop_int(), CVarMPIBuffer::pop_string(), CVarMPIBuffer::receiveBroadcast(), and BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::moveTaggedNodes ( ) [virtual]

Move tagged trimesh nodes by a given amount. Parameters (name,tag,displacement) are received from master.

Implements ASubLattice.

References BasicCon::Error(), CVarMPIBuffer::pop_int(), CVarMPIBuffer::pop_string(), and CVarMPIBuffer::receiveBroadcast().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::moveTaggedParticlesBy ( ) [virtual]

Move all particles with a given tag by a specified displacement. Parameters (tag,displacement) are received from master.

Implements ASubLattice.

References BasicCon::Debug(), CVarMPIBuffer::pop_int(), and CVarMPIBuffer::receiveBroadcast().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::moveWallBy ( ) [virtual]

Move wall by a given vector. Parameters are received from master.

Implements ASubLattice.

References CVarMPIBuffer::pop_string(), CVarMPIBuffer::receiveBroadcast(), and BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::oneStep ( ) [virtual]

Do one step, i.e. calculate forces, velocities, positions

Implements ASubLattice.

template<class T >
void TSubLattice< T >::oneStepTherm ( ) [virtual]

Do one step, i.e. calculate forces, velocities, positions

template<class T >
void TSubLattice< T >::printStruct ( ) [virtual]

Print structural information

Implements ASubLattice.

template<class T >
void TSubLattice< T >::rebuildInteractions ( ) [virtual]

rebuild interactions

Implements ASubLattice.

References BasicCon::Debug(), and CMPIBarrier::wait().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::rebuildParticleArray ( ) [virtual]

rebuild particle array

Implements ASubLattice.

template<class T >
void TSubLattice< T >::receiveConnections ( ) [virtual]

Receive connections from a TML Communicator

Parameters:
commthe Communicator

Implements ASubLattice.

References CMPIBarrier::wait(), and BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::receiveParticles ( ) [virtual]

Receive particle from a TML Communicator

Parameters:
commthe Communicator
Warning:
the type of particle is not checked

Implements ASubLattice.

References CMPIBarrier::wait(), and BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::removeIG ( ) [virtual]

Remove interaction group. The name of the group is received from the master.

Warning:
Doesn't deal yet with removal of dependent items, i.e. savers

Implements ASubLattice.

References BasicCon::Error(), CVarMPIBuffer::pop_string(), CVarMPIBuffer::receiveBroadcast(), and BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::resetDisplacements ( )

Reset the displacement of all particles & meshes

References BasicCon::Debug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::saveCheckPointData ( std::ostream &  oStream) [virtual]

save checkpoint data, i.e. for restarting

Implements esys::lsm::CheckPointable.

template<class T >
void TSubLattice< T >::saveSnapShotData ( std::ostream &  oStream) [virtual]

save snapshot data, i.e. for viz/postprocessing

Reimplemented from esys::lsm::CheckPointable.

template<class T >
void TSubLattice< T >::searchNeighbors ( ) [virtual]

Search neighbors - rebuild particle array and interactions

Implements ASubLattice.

References BasicCon::Debug(), and CMPIBarrier::wait().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::sendDataToMaster ( ) [virtual]

Send data of owned particles to the master

References BasicCon::Debug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::sendFieldData ( ) [virtual]

send field data to master

Implements ASubLattice.

References BasicCon::Debug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::setExIG ( ) [virtual]

Set excluding IG. The names of 2 interaction groups are received from the master. The 1st is set to be excluding the 2nd. If one of the named IGs does not exist, the operation is ignored and a warning emitted.

Implements ASubLattice.

References BasicCon::Error(), CVarMPIBuffer::pop_string(), CVarMPIBuffer::receiveBroadcast(), and BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::setParticleDensity ( ) [virtual]

Set the density of a tagged group of particles. Parameters are received from master.

Implements ASubLattice.

References BasicCon::Debug(), CVarMPIBuffer::pop_double(), CVarMPIBuffer::pop_int(), CVarMPIBuffer::receiveBroadcast(), and BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::setParticleNonDynamic ( ) [virtual]

Make tagged particles non-dynamic i.e. don't update velocity (rot+lin). Parameters (tag) are received from master.

Implements ASubLattice.

References BasicCon::Debug(), CVarMPIBuffer::pop_int(), and CVarMPIBuffer::receiveBroadcast().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::setParticleNonRot ( ) [virtual]

Make tagged particles non-rotational, i.e. don't update rotational velocity & position Parameters (tag) are received from master.

Implements ASubLattice.

References BasicCon::Debug(), CVarMPIBuffer::pop_int(), and CVarMPIBuffer::receiveBroadcast().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::setParticleNonTrans ( ) [virtual]

Make tagged particles lieanr non-dynamic, i.e. don't update linear velocity Parameters (tag) are received from master.

References BasicCon::Debug(), CVarMPIBuffer::pop_int(), and CVarMPIBuffer::receiveBroadcast().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::setParticleVelocity ( ) [virtual]

Set the velocity of a particle. Parameters are received from master.

Implements ASubLattice.

References BasicCon::Debug(), CVarMPIBuffer::pop_int(), CVarMPIBuffer::receiveBroadcast(), and BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::setTaggedParticleVel ( ) [virtual]

Set the velocity of a tagged group of particles. Parameters are received from master.

Implements ASubLattice.

References BasicCon::Debug(), CVarMPIBuffer::pop_int(), CVarMPIBuffer::receiveBroadcast(), and BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::setTimeStepSize ( double  dt) [virtual]

Calculate the forces for all interactions contained in the sublattice. Interactions contained in more than one sublattice are calculated in each of them. Slightly more computation, but less communication, i.e. saves one syncronisation point (exchange of forces).

Implements ASubLattice.

References BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::setVelocityOfWall ( ) [virtual]

Set the velocity of a wall. Only for visc. walls, i.e. m_vel is set, but position is not affected. Parameters are received from master.

Implements ASubLattice.

References CVarMPIBuffer::pop_string(), CVarMPIBuffer::receiveBroadcast(), and BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::setWallNormal ( ) [virtual]

Change wall orientation by a given vector. Parameters are received from master.

Implements ASubLattice.

References CVarMPIBuffer::pop_string(), CVarMPIBuffer::receiveBroadcast(), and BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::tagParticleNearestTo ( ) [virtual]

Tag particle closest to given position. Params received from master.

Implements ASubLattice.

References BasicCon::Debug(), CVarMPIBuffer::pop_int(), and CVarMPIBuffer::receiveBroadcast().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::translateMeshBy ( const std::string &  meshName,
const Vec3 translation 
) [virtual]

translate mesh by given amount

Parameters:
meshNamethe name of the mesh to be moved
translationthe translation vector

Implements ASubLattice.

template<class T >
void TSubLattice< T >::updateInteractions ( ) [virtual]

Update the interaction groups from an existing Neighbortable

Todo:
check for rebuild Neighbortable

Implements ASubLattice.

References BasicCon::Debug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::zeroForces ( ) [protected]

Reset the forces on all particles and walls to 0

References BasicCon::XDebug().

Here is the call graph for this function:

template<class T >
void TSubLattice< T >::zeroHeat ( ) [protected]

Reset the HeatSources on all particles and walls to 0

References BasicCon::XDebug().

Here is the call graph for this function:


Member Data Documentation

template<typename T>
esys::lsm::CLatticeParam::ProcessDims TSubLattice< T >::m_dims [protected]

Process partitioning, non-zero entries are taken literally, zero entries are computed via MPI_Dims_create.

Referenced by TSubLattice< T >::TSubLattice().


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