Mechanics of Defect Evolution Library
Loading...
Searching...
No Matches
model::ParticleSystemParallel< _ParticleType > Class Template Reference

Parallel Version (openMPI + openMP). More...

#include <ParticleSystemParallel.h>

Inheritance diagram for model::ParticleSystemParallel< _ParticleType >:
Collaboration diagram for model::ParticleSystemParallel< _ParticleType >:

Public Types

typedef ParticleSystemBaseType::SpatialCellType SpatialCellType
typedef ParticleSystemBaseType::ParticleContainerType ParticleContainerType
Public Types inherited from model::ParticleSystemBase< _ParticleType >
typedef _ParticleType ParticleType
typedef _ParticleType::PositionType PositionType
typedef SpatialCellObserver< _ParticleType, _ParticleType::dim > SpatialCellObserverType
typedef SpatialCellObserverType::SpatialCellType SpatialCellType
typedef std::deque< _ParticleType > ParticleContainerType

Public Member Functions

 ParticleSystemParallel (int argc, char *argv[])
 ParticleSystemParallel ()
template<typename ... AdditionalConstructorTypes>
ParticleType * addParticle (const typename ParticleSystemBaseType::PositionType &p, const AdditionalConstructorTypes &... args)
template<typename FieldType, typename... OtherSourceTypes>
void computeNeighborField (const OtherSourceTypes &... otherSources)
template<typename OtherParticleType, typename FieldType, typename... OtherSourceTypes>
void computeField (std::deque< OtherParticleType > &fpDeq, const OtherSourceTypes &... otherSources) const
template<typename OtherParticleType, typename FieldType, typename... OtherSourceTypes>
void computeField (OtherParticleType &part, const OtherSourceTypes &... otherSources) const
Public Member Functions inherited from model::ParticleSystemBase< _ParticleType >
template<typename ... AdditionalConstructorTypes>
ParticleType * addParticle (const PositionType &p, const AdditionalConstructorTypes &... args)
void clearParticles ()
const ParticleContainerType & particles () const
const SpatialCellObserverType::CellMapType & cells () const
template<typename OtherParticleType, typename FieldType, typename... OtherSourceTypes>
void computeField (OtherParticleType &part, const OtherSourceTypes &... otherSources) const
Public Member Functions inherited from model::ModelMPIbase
 ModelMPIbase (int argc, char *argv[])
 ModelMPIbase ()
 ~ModelMPIbase ()

Friends

template<class T>
T & operator<< (T &os, const ParticleContainerType &pS)

Additional Inherited Members

Static Public Member Functions inherited from model::ParticleSystemBase< _ParticleType >
static void setCellSize (const double &cellSize)
Static Public Member Functions inherited from model::ModelMPIbase
static void initMPI (int argc, char *argv[])
static const int & mpiRank ()
static const int & mpiProcs ()
static const int & mpiInitialized ()
static const std::string & processorName ()

Detailed Description

template<typename _ParticleType>
class model::ParticleSystemParallel< _ParticleType >

Parallel Version (openMPI + openMP).

Definition at line 44 of file ParticleSystemParallel.h.

Member Typedef Documentation

◆ ParticleContainerType

template<typename _ParticleType>
typedef ParticleSystemBaseType::ParticleContainerType model::ParticleSystemParallel< _ParticleType >::ParticleContainerType

Definition at line 56 of file ParticleSystemParallel.h.

◆ SpatialCellType

template<typename _ParticleType>
typedef ParticleSystemBaseType::SpatialCellType model::ParticleSystemParallel< _ParticleType >::SpatialCellType

Definition at line 55 of file ParticleSystemParallel.h.

Constructor & Destructor Documentation

◆ ParticleSystemParallel() [1/2]

template<typename _ParticleType>
model::ParticleSystemParallel< _ParticleType >::ParticleSystemParallel ( int argc,
char * argv[] )
inline

Definition at line 60 of file ParticleSystemParallel.h.

◆ ParticleSystemParallel() [2/2]

template<typename _ParticleType>
model::ParticleSystemParallel< _ParticleType >::ParticleSystemParallel ( )
inline

Definition at line 67 of file ParticleSystemParallel.h.

Member Function Documentation

◆ addParticle()

template<typename _ParticleType>
template<typename ... AdditionalConstructorTypes>
ParticleType * model::ParticleSystemParallel< _ParticleType >::addParticle ( const typename ParticleSystemBaseType::PositionType & p,
const AdditionalConstructorTypes &... args )
inline

Adds a ParticleType particle with position p and an arbitrary (variadic) number of additional constructor parameters.

Definition at line 74 of file ParticleSystemParallel.h.

◆ computeField() [1/2]

template<typename _ParticleType>
template<typename OtherParticleType, typename FieldType, typename... OtherSourceTypes>
void model::ParticleSystemParallel< _ParticleType >::computeField ( OtherParticleType & part,
const OtherSourceTypes &... otherSources ) const
inline
Parameters
[in]part
[in]otherSourcescomputes the field FieldType for the only particle part, without parallelization

Definition at line 321 of file ParticleSystemParallel.h.

◆ computeField() [2/2]

template<typename _ParticleType>
template<typename OtherParticleType, typename FieldType, typename... OtherSourceTypes>
void model::ParticleSystemParallel< _ParticleType >::computeField ( std::deque< OtherParticleType > & fpDeq,
const OtherSourceTypes &... otherSources ) const
inline

Compute nearest-neighbor particle interaction according to FieldType

Returns
the number of interactions computed

Syncronize FieldType::resultVector among processors

Definition at line 210 of file ParticleSystemParallel.h.

◆ computeNeighborField()

template<typename _ParticleType>
template<typename FieldType, typename... OtherSourceTypes>
void model::ParticleSystemParallel< _ParticleType >::computeNeighborField ( const OtherSourceTypes &... otherSources)
inline

Compute nearest-neighbor particle interaction according to FieldType

Returns
the number of interactions computed

This member function performs the following operations:

-1 Partitioning: -1.1 creates a LPTpartitioner

-1.2 populate the LPTpartitioner using the particles stored in *this

-1.3 partition particles among MPI processes

4- syncronize FieldType::resultVector among processors

Definition at line 109 of file ParticleSystemParallel.h.

◆ operator<<

template<typename _ParticleType>
template<class T>
T & operator<< ( T & os,
const ParticleContainerType & pS )
friend

Operator << use ParticleType specific << operator

Definition at line 332 of file ParticleSystemParallel.h.


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