|
ESyS-Particle
2.3
|
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 | saveSnapShotData (std::ostream &) |
| virtual void | saveCheckPointData (std::ostream &) |
| virtual void | loadCheckPointData (std::istream &) |
Public Member Functions inherited from Mesh2D_PIS< ParticleType > | |
| Mesh2D_PIS (Mesh2D *, ParallelParticleArray< ParticleType > *) | |
| virtual | ~Mesh2D_PIS () |
| 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) |
Public Member Functions inherited from AParallelInteractionStorage | |
| AParallelInteractionStorage (AParallelParticleArray *ppa) | |
| virtual | ~AParallelInteractionStorage () |
| virtual void | calcHeatFrict () |
| virtual void | calcHeatTrans () |
| virtual bool | willSave () |
Public Member Functions inherited from esys::lsm::CheckPointable | |
| CheckPointable () | |
| virtual | ~CheckPointable () |
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 |
| Mesh2D * | m_mesh |
Protected Attributes inherited from AParallelInteractionStorage | |
| AParallelParticleArray * | m_ppa |
Private Member Functions | |
| void | exchange_boundary (int, int) |
Static Private Attributes | |
| static const int | m_edge_exchg_tag =45 |
| static const int | m_corner_exchg_tag =46 |
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 console, Mesh2D_PIS_EB< ParticleType, IType >::m_param, Mesh2D_PIS< ParticleType >::m_update_timestamp, and 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 console, BasicCon::Debug(), and BasicCon::XDebug().
Referenced by TSubLattice< T >::addBondedMesh2DIG().


| void Mesh2D_PIS_EB< ParticleType, IType >::buildFromPPATagged | ( | int | tag, |
| int | mask | ||
| ) |
References console, BasicCon::Debug(), and BasicCon::XDebug().
Referenced by TSubLattice< T >::addBondedMesh2DIG().


|
virtual |
calculate all the forces
Implements AParallelInteractionStorage.
References console, and BasicCon::XDebug().

|
virtual |
Implements AParallelInteractionStorage.
References console, and BasicCon::XDebug().

|
private |
helper function to do the actual shifting of values in exchange()
| dim | dimension, 0->x, 1->y, 2->z |
| dir | direction, 1->up, -1->down |
References console, esys::lsm::bpu::iter(), and BasicCon::XDebug().

| Mesh2D_PIS_EB< ParticleType, IType >::InteractionIterator Mesh2D_PIS_EB< ParticleType, IType >::getInnerInteractionIterator | ( | ) |
|
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 console, and BasicCon::Error().

|
virtual |
Reimplemented from Mesh2D_PIS< ParticleType >.
References console, and BasicCon::Critical().

|
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 console, ParallelParticleArray< T >::getParticlePtrByIndex(), NULL, and BasicCon::XDebug().

|
virtual |
Reimplemented from Mesh2D_PIS< ParticleType >.
References Mesh2D_PIS_EB< ParticleType, IType >::InteractionIterator::getNumRemaining(), Mesh2D_PIS_EB< ParticleType, IType >::InteractionIterator::hasNext(), and Mesh2D_PIS_EB< ParticleType, IType >::InteractionIterator::next().

|
virtual |
Reimplemented from AParallelInteractionStorage.
References Mesh2D_PIS_EB< ParticleType, IType >::InteractionIterator::getNumRemaining(), Mesh2D_PIS_EB< ParticleType, IType >::InteractionIterator::hasNext(), and Mesh2D_PIS_EB< ParticleType, IType >::InteractionIterator::next().

|
virtual |
Implements AParallelInteractionStorage.
|
virtual |
References console, ParallelParticleArray< T >::getParticlePtrByIndex(), NULL, and BasicCon::XDebug().

|
virtual |
References console, ParallelParticleArray< T >::getParticlePtrByIndex(), NULL, 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 console, BasicCon::Error(), ParallelParticleArray< T >::getParticlePtrByIndex(), NULL, and BasicCon::XDebug().

|
virtual |
Implements AParallelInteractionStorage.
References console, esys::lsm::bpu::iter(), and BasicCon::XDebug().

|
protected |
|
staticprivate |
|
protected |
|
protected |
|
staticprivate |
|
protected |
|
protected |
|
protected |
Referenced by Mesh2D_PIS_EB< ParticleType, IType >::Mesh2D_PIS_EB().