ESyS-Particle
4.0.1
|
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>
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 &) |
![]() | |
Mesh2D_PIS (Mesh2D *, ParallelParticleArray< ParticleType > *) | |
virtual void | addExIG (AParallelInteractionStorage *) |
virtual AFieldSlave * | generateNewScalarFieldSlave (TML_Comm *, const string &, int, int, int, int) |
virtual AFieldSlave * | generateNewVectorFieldSlave (TML_Comm *, const string &, int, int, int, int) |
![]() | |
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 |
![]() | |
int | m_update_timestamp |
Mesh2D * | m_mesh |
AParallelInteractionStorage * | m_exIG |
![]() | |
AParallelParticleArray * | m_ppa |
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.
Mesh2D_PIS_EB< ParticleType, IType >::Mesh2D_PIS_EB | ( | Mesh2D * | mesh_p, |
ParallelParticleArray< ParticleType > * | ppa_p, | ||
typename IType::ParameterType | param | ||
) |
constructor
mesh_p | a pointer to the triangle mesh |
ppa_p | a pointer to the particle array |
param | the interaction parameters |
References BasicCon::XDebug().
void Mesh2D_PIS_EB< ParticleType, IType >::buildFromPPAByGap | ( | double | gmax | ) |
build interactions according to given maximum gap between particle and 2d edge
gmax | the maximum gap |
References BasicCon::Debug(), and BasicCon::XDebug().
Referenced by TSubLattice< T >::addBondedMesh2DIG().
|
virtual |
calculate all the forces
Implements AParallelInteractionStorage.
References BasicCon::XDebug().
|
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.
v | vector of particle ids |
Implements AParallelInteractionStorage.
References BasicCon::Error().
|
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().
|
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.
pids | the particle Ids |
References BasicCon::Error(), ParallelParticleArray< T >::getParticlePtrByIndex(), and BasicCon::XDebug().