ESyS-Particle  4.0.1
Classes | Public Member Functions | Protected Attributes | List of all members
Mesh2D_PIS_EB< ParticleType, IType > Class Template Reference

Class for parallel storage of interactions between a 2D mesh and particles which does require exchange of interactions across process boundaries but where interactions are not dynamically formed. More...

#include <mesh2d_pis_eb.h>

Inheritance diagram for Mesh2D_PIS_EB< ParticleType, IType >:
Inheritance graph
[legend]
Collaboration diagram for Mesh2D_PIS_EB< ParticleType, IType >:
Collaboration graph
[legend]

Classes

class  InteractionIterator

Public Member Functions

 Mesh2D_PIS_EB (Mesh2D *, ParallelParticleArray< ParticleType > *, typename IType::ParameterType)
virtual bool isIn (const vector< int > &)
virtual void setTimeStepSize (double dt)
virtual void calcForces ()
virtual bool update ()
virtual void exchange ()
virtual void rebuild ()
virtual void tryInsert (const typename IType::TriIntType &)
virtual void tryInsert (const typename IType::CornerIntType &)
virtual void tryInsert (const vector< int > &)
InteractionIterator getInnerInteractionIterator ()
void buildFromPPATagged (int, int)
void buildFromPPAByGap (double)
virtual void saveCheckPointData (std::ostream &)
virtual void loadCheckPointData (std::istream &)
- Public Member Functions inherited from Mesh2D_PIS< ParticleType >
 Mesh2D_PIS (Mesh2D *, ParallelParticleArray< ParticleType > *)
virtual void addExIG (AParallelInteractionStorage *)
virtual AFieldSlavegenerateNewScalarFieldSlave (TML_Comm *, const string &, int, int, int, int)
virtual AFieldSlavegenerateNewVectorFieldSlave (TML_Comm *, const string &, int, int, int, int)
- Public Member Functions inherited from AParallelInteractionStorage
 AParallelInteractionStorage (AParallelParticleArray *ppa)
virtual void calcHeatFrict ()
virtual void calcHeatTrans ()
virtual void saveSnapShotData (std::ostream &)
virtual bool willSave ()

Protected Attributes

IType::ParameterType m_param
TML_CartComm m_comm
std::set< pair< int, int > > m_edge_int_set
std::set< pair< int, int > > m_corner_int_set
std::list< typename
IType::TriIntType > 
m_edge_interactions
std::list< typename
IType::CornerIntType > 
m_corner_interactions
- Protected Attributes inherited from Mesh2D_PIS< ParticleType >
int m_update_timestamp
Mesh2Dm_mesh
AParallelInteractionStoragem_exIG
- Protected Attributes inherited from AParallelInteractionStorage
AParallelParticleArraym_ppa

Detailed Description

template<class ParticleType, class IType>
class Mesh2D_PIS_EB< ParticleType, IType >

Class for parallel storage of interactions between a 2D mesh and particles which does require exchange of interactions across process boundaries but where interactions are not dynamically formed.

Constructor & Destructor Documentation

template<class ParticleType , class IType >
Mesh2D_PIS_EB< ParticleType, IType >::Mesh2D_PIS_EB ( Mesh2D mesh_p,
ParallelParticleArray< ParticleType > *  ppa_p,
typename IType::ParameterType  param 
)

constructor

Parameters
mesh_pa pointer to the triangle mesh
ppa_pa pointer to the particle array
paramthe interaction parameters

References BasicCon::XDebug().

Here is the call graph for this function:

Member Function Documentation

template<class ParticleType , class IType >
void Mesh2D_PIS_EB< ParticleType, IType >::buildFromPPAByGap ( double  gmax)

build interactions according to given maximum gap between particle and 2d edge

Parameters
gmaxthe maximum gap

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

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

Here is the call graph for this function:

Here is the caller graph for this function:

template<class ParticleType , class IType >
void Mesh2D_PIS_EB< ParticleType, IType >::calcForces ( )
virtual

calculate all the forces

Implements AParallelInteractionStorage.

References BasicCon::XDebug().

Here is the call graph for this function:

template<class ParticleType, class IType>
bool Mesh2D_PIS_EB< ParticleType, IType >::isIn ( const vector< int > &  )
virtual

Check if an interaction is in this PIS. The first 2 values in the vector are expected to be the edge/corner (v[0]) and particle (v[1]) ids, the 3rd an indicator if tri edge (v[2]==1)or corner (v[2]==2) interaction. If there is no 3rd value or it is not 1 (edge), "false" is returned.

Parameters
vvector of particle ids
Warning
log(N)

Implements AParallelInteractionStorage.

References BasicCon::Error().

Here is the call graph for this function:

template<class ParticleType , class IType >
void Mesh2D_PIS_EB< ParticleType, IType >::rebuild ( )
virtual

Rebuild interactions after moving particles or interactions between processes. Set particle pointers accordig to particle IDs and remove interactionw which include unavailable particles.

Implements AParallelInteractionStorage.

References ParallelParticleArray< T >::getParticlePtrByIndex(), and BasicCon::XDebug().

Here is the call graph for this function:

template<class ParticleType , class IType >
void Mesh2D_PIS_EB< ParticleType, IType >::tryInsert ( const vector< int > &  pids)
virtual

Insert interactions newly created from particle Ids and parameters. If insertion is impossible because the interaction is already in, or one of the particles is not in the associated PPA nothing happens. Check if an interaction is in this PIS. The first 2 values in the vector are expected to be the tri/edge/corner (pids[0]) and particle (pids[1]) ids, the 3rd an indicator if edge (pids[2]==1)or corner (pids[2]==2) interaction. If there is no 3rd value or it is not in [1,2], nothing happens.

Parameters
pidsthe particle Ids

References BasicCon::Error(), ParallelParticleArray< T >::getParticlePtrByIndex(), and BasicCon::XDebug().

Here is the call graph for this function:


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