|
ESyS-Particle
2.3.4
|
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 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 |
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
References console, and Console::Debug().

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

|
virtual |
References console, and Console::Debug().

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

|
inlinevirtual |
does nothing
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.
| cpids | the particle Ids |
References console, ParallelParticleArray< T >::getParticlePtrByIndex(), esys::lsm::bpu::iter(), NULL, and Console::XDebug().

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