|
ESyS-Particle
2.3
|
parallel interaction storage array with exchange More...
#include <pi_storage_e.h>


Public Types | |
| typedef TParallelInteractionStorage< I > | Inherited |
| typedef Inherited::InteractionIterator | InteractionIterator |
Public Types inherited from TParallelInteractionStorage< I > | |
| typedef I | interaction_type |
| typedef esys::lsm::quintuple < Vec3, double, Vec3, double, Vec3 > | Raw2Data |
| typedef esys::lsm::triplet < int, int, Vec3 > | DataWithID |
| typedef esys::lsm::quintuple < int, int, Vec3, Vec3, Vec3 > | DataWithPosID |
| access functions More... | |
Public Member Functions | |
| ParallelInteractionStorage_E (AParallelParticleArray *, const typename I::ParameterType &) | |
| virtual void | setUnbreakable (bool) |
| virtual void | exchange () |
| virtual void | rebuild () |
| virtual void | tryInsert (const I &) |
| virtual void | tryInsert (const std::vector< int > &) |
| virtual bool | isIn (const std::vector< int > &) |
| virtual void | setTimeStepSize (double) |
| does nothing More... | |
| virtual void | calcForces () |
Public Member Functions inherited from TParallelInteractionStorage< I > | |
| TParallelInteractionStorage (AParallelParticleArray *ppa) | |
| virtual | ~TParallelInteractionStorage () |
| InteractionIterator | getInnerInteractionIterator () |
| types More... | |
| template<typename P > | |
| vector< pair< Vec3, P > > | forAllInnerInteractionsGetWithPos (P(I::*rdf)() const) |
| template<typename P > | |
| vector< pair< Raw2Data, P > > | forAllInnerInteractionsGetRaw2 (P(I::*rdf)() const) |
| template<typename P > | |
| vector< pair< DataWithID, P > > | forAllInnerInteractionsGetDataWithID (P(I::*rdf)() const) |
| template<typename P > | |
| vector< pair< DataWithPosID, P > > | forAllInnerInteractionsGetDataWithPosID (P(I::*rdf)() const) |
| template<typename P > | |
| void | forAllInnerInteractionsGet (P &, typename P::value_type(I::*rdf)() const) |
| access functions with tags More... | |
| template<typename P > | |
| vector< pair< Vec3, P > > | forAllTaggedInnerInteractionsGetWithPos (P(I::*rdf)() const, int, int) |
| template<typename P > | |
| void | forAllTaggedInnerInteractionsGet (P &, typename P::value_type(I::*rdf)() const, int, int) |
| generate FieldSlave of correct type More... | |
| virtual AFieldSlave * | generateNewScalarFieldSlave (TML_Comm *, const string &, int, int, int, int) |
| virtual AFieldSlave * | generateNewVectorFieldSlave (TML_Comm *, const string &, int, int, int, int) |
| template<typename P > | |
| vector< pair< typename TParallelInteractionStorage< I > ::Raw2Data, P > > | forAllInnerInteractionsGetRaw2 (P(I::*rdf)() const) |
| template<typename P > | |
| vector< pair< typename TParallelInteractionStorage< I > ::DataWithPosID, P > > | forAllInnerInteractionsGetDataWithPosID (P(I::*rdf)() const) |
| template<typename P > | |
| vector< pair< typename TParallelInteractionStorage< I > ::DataWithID, P > > | forAllInnerInteractionsGetDataWithID (P(I::*rdf)() const) |
Public Member Functions inherited from AParallelInteractionStorage | |
| AParallelInteractionStorage (AParallelParticleArray *ppa) | |
| virtual | ~AParallelInteractionStorage () |
| virtual bool | update ()=0 |
| virtual void | calcHeatFrict () |
| virtual void | calcHeatTrans () |
| virtual void | addExIG (AParallelInteractionStorage *) |
| virtual void | saveCheckPointData (std::ostream &) |
| virtual void | loadCheckPointData (std::istream &) |
| virtual void | saveSnapShotData (std::ostream &) |
| virtual bool | willSave () |
Public Member Functions inherited from esys::lsm::CheckPointable | |
| CheckPointable () | |
| virtual | ~CheckPointable () |
Public Attributes | |
| bool | m_unbreakable |
Protected Attributes | |
| TML_CartComm | m_comm |
| set< pair< int, int > > | m_set |
| I::ParameterType | m_param |
Protected Attributes inherited from TParallelInteractionStorage< I > | |
| list< I > | m_interactions |
Protected Attributes inherited from AParallelInteractionStorage | |
| AParallelParticleArray * | m_ppa |
Private Member Functions | |
| void | exchange_boundary (int, int) |
Static Private Attributes | |
| static const int | m_exchg_tag =43 |
parallel interaction storage array with exchange
| typedef TParallelInteractionStorage<I> ParallelInteractionStorage_E< P, I >::Inherited |
| typedef Inherited::InteractionIterator ParallelInteractionStorage_E< P, I >::InteractionIterator |
| ParallelInteractionStorage_E< P, I >::ParallelInteractionStorage_E | ( | AParallelParticleArray * | PPA, |
| const typename I::ParameterType & | param | ||
| ) |
Construct parallel interaction storage
| PPA | a pointer to the particle array |
| param | the interaction parameters |
References ParallelInteractionStorage_E< P, I >::m_unbreakable.
|
virtual |
calculate all forces
Implements AParallelInteractionStorage.
References console, and BasicCon::Debug().

|
virtual |
Implements AParallelInteractionStorage.
|
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().

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

|
virtual |
rebuild all interactions, i.e. set particle pointers according to particle indices
Implements AParallelInteractionStorage.
References console, ParallelParticleArray< T >::getParticlePtrByIndex(), esys::lsm::bpu::iter(), NULL, and BasicCon::XDebug().

|
inlinevirtual |
does nothing
Implements AParallelInteractionStorage.
Reimplemented in ParallelInteractionStorage_ED< P, I >.
|
virtual |
set the interactions "unbreakable" -> turns update into a NO-OP
| b | true -> unbreakable, false -> breakable |
Reimplemented in ParallelInteractionStorage_EB< P, I >.
|
virtual |
Referenced by TSubLattice< T >::addBondedIG(), TSubLattice< T >::addCappedBondedIG(), TRotSubLattice< T >::addRotBondedIG(), TRotSubLattice< T >::addRotThermBondedIG(), and TSubLattice< T >::addShortBondedIG().

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

|
protected |
|
staticprivate |
|
protected |
|
protected |
| bool ParallelInteractionStorage_E< P, I >::m_unbreakable |