|
ESyS-Particle
2.3.4
|
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 AFieldSlave * | generateNewScalarHistoryFieldSlave (TML_Comm *, const string &, int, int, int) |
| 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 Console::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, Console::Debug(), and Console::XDebug().
Referenced by TSubLattice< T >::addBondedMesh2DIG().


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


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

|
virtual |
Implements AParallelInteractionStorage.
References console, and Console::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 Console::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 Console::Error().

|
virtual |
Reimplemented from Mesh2D_PIS< ParticleType >.
References console, and Console::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 Console::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 Console::XDebug().

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

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

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