ESyS-Particle  4.0.1
Classes | Public Types | Public Member Functions | Protected Attributes
TParallelInteractionStorage< I > Class Template Reference

templated abstract base class for parallel interaction storage array. Adds the vector of interactions and access functions to AParallelInteractionStorage More...

#include <pi_storage.h>

Inheritance diagram for TParallelInteractionStorage< I >:
Inheritance graph
[legend]
Collaboration diagram for TParallelInteractionStorage< I >:
Collaboration graph
[legend]

List of all members.

Classes

class  InteractionIterator

Public Types

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

Public Member Functions

 TParallelInteractionStorage (AParallelParticleArray *ppa)
InteractionIterator getInnerInteractionIterator ()
 types
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
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
virtual AFieldSlavegenerateNewScalarFieldSlave (TML_Comm *, const string &, int, int, int, int)
virtual AFieldSlavegenerateNewVectorFieldSlave (TML_Comm *, const string &, int, int, int, int)

Protected Attributes

list< I > m_interactions

Detailed Description

template<typename I>
class TParallelInteractionStorage< I >

templated abstract base class for parallel interaction storage array. Adds the vector of interactions and access functions to AParallelInteractionStorage


Member Function Documentation

template<typename I>
template<typename P >
void TParallelInteractionStorage< I >::forAllInnerInteractionsGet ( P &  cont,
typename P::value_type(I::*)() const  rdf 
)

access functions with tags

For all interactions with the lower particle in the inner area of the ntable call a function reading a value and return the results in a container particle ids

the container

Parameters:
rdfthe function
template<typename I>
template<typename P >
vector< pair< typename TParallelInteractionStorage< I >::DataWithID, P > > TParallelInteractionStorage< I >::forAllInnerInteractionsGetDataWithID ( P(I::*)() const  rdf)

For all interactions with the lower particle in the inner area of the ntable call a function reading a value and return the results in a vector of <<ipos,pid1,pid2>,value> groups

Parameters:
rdfthe function
template<typename I>
template<typename P >
vector< pair< typename TParallelInteractionStorage< I >::DataWithPosID, P > > TParallelInteractionStorage< I >::forAllInnerInteractionsGetDataWithPosID ( P(I::*)() const  rdf)

For all interactions with the lower particle in the inner area of the ntable call a function reading a value and return the results in a vector of <<pid1,pid2,pos1,pos2,ipos>,value> groups

Parameters:
rdfthe function
template<typename I>
template<typename P >
vector< pair< typename TParallelInteractionStorage< I >::Raw2Data, P > > TParallelInteractionStorage< I >::forAllInnerInteractionsGetRaw2 ( P(I::*)() const  rdf)

For all interactions with the lower particle in the inner area of the ntable call a function reading a value and return the results in a vector of <<pos1,radius1,pos2,radius2,ipos>,value> groups

Parameters:
rdfthe function
template<typename I>
template<typename P >
vector< pair< Vec3, P > > TParallelInteractionStorage< I >::forAllInnerInteractionsGetWithPos ( P(I::*)() const  rdf)

For all interactions with the lower particle in the inner area of the ntable call a function reading a value and return the results in a vector of <position,vaule> pairs

Parameters:
rdfthe function
template<typename I>
template<typename P >
void TParallelInteractionStorage< I >::forAllTaggedInnerInteractionsGet ( P &  cont,
typename P::value_type(I::*)() const  rdf,
int  tag,
int  mask 
)

generate FieldSlave of correct type

For all interactions with the lower particle in the inner area of the ntable and one of the particles having the specified tag call a function reading a value and return the results in a container

the container

Parameters:
rdfthe function
tagthe tag
maskthe mask used in tag comparison
template<typename I>
template<typename P >
vector< pair< Vec3, P > > TParallelInteractionStorage< I >::forAllTaggedInnerInteractionsGetWithPos ( P(I::*)() const  rdf,
int  tag,
int  mask 
)

For all interactions with the lower particle in the inner area of the ntable and one of the particles having the specified tag call a function reading a value and return the results in a vector of <position,value> pairs

Parameters:
rdfthe function
tagthe tag
maskthe mask used in tag comparison
template<typename I >
AFieldSlave * TParallelInteractionStorage< I >::generateNewScalarFieldSlave ( TML_Comm comm,
const string &  fieldname,
int  is_checked,
int  is_tagged,
int  tag,
int  mask 
) [virtual]

generate new scalar field saver from the PIS

Parameters:
comm
fieldname
is_checked
is_tagged
tag
mask

Implements AParallelInteractionStorage.

template<typename I >
AFieldSlave * TParallelInteractionStorage< I >::generateNewVectorFieldSlave ( TML_Comm comm,
const string &  fieldname,
int  is_checked,
int  is_tagged,
int  tag,
int  mask 
) [virtual]

generate new vector field saver from the PIS

Parameters:
comm
fieldname
is_checked
is_tagged
tag
mask

Implements AParallelInteractionStorage.


The documentation for this class was generated from the following files: