ls1-MarDyn
ls1-MarDyn molecular dynamics code
Public Member Functions | List of all members
ParticleCellRMM Class Reference
Inheritance diagram for ParticleCellRMM:
ParticleCellBase Cell

Public Member Functions

 ParticleCellRMM (const ParticleCellRMM &other)=default
 
SingleCellIterator< ParticleCellRMMiterator ()
 
void deallocateAllParticles () override
 
bool addParticle (Molecule &particle, bool checkWhetherDuplicate=false) override
 Add a particle to the cell. More...
 
bool isEmpty () const override
 Check if current cell contains no molecules. More...
 
bool deleteMoleculeByIndex (size_t index) override
 
int getMoleculeCount () const override
 
void preUpdateLeavingMolecules () override
 
void updateLeavingMoleculesBase (ParticleCellBase &otherCell) override
 
void postUpdateLeavingMolecules () override
 
void getRegion (double lowCorner[3], double highCorner[3], std::vector< Molecule * > &particlePtrs, bool removeFromContainer=false) override
 
void buildSoACaches () override
 
void increaseMoleculeStorage (size_t numExtraMols) override
 
int countInRegion (double lowCorner[3], double highCorner[3]) const
 
void swapAndAppendToCell (ParticleCellRMM &other)
 
void swapMolecules (int i, ParticleCellRMM &other, int j)
 
CellDataSoARMMgetCellDataSoA ()
 
size_t getMoleculeVectorDynamicSize () const override
 
void prefetchForForce () const override
 
void getLeavingMolecules (std::vector< Molecule > &appendBuffer) override
 
bool findMoleculeByID (size_t &index, unsigned long molid) const override
 Find the index of a molecule in a cell based on its molecule ID. More...
 
void moleculesAtNew (size_t i, Molecule *&multipurposePointer) override
 
void moleculesAtConstNew (size_t i, Molecule *&multipurposePointer) const override
 
- Public Member Functions inherited from ParticleCellBase
bool isNotEmpty () const
 Check if current cell contains molecules. More...
 
bool deleteMoleculeByID (unsigned long molid)
 Remove moleulce from the cell based on molecule ID. More...
 
virtual bool testPointInCell (const double point[3]) const
 
virtual bool testInBox (const Molecule &particle) const
 
unsigned long initCubicGrid (std::array< unsigned long, 3 > numMoleculesPerDimension, std::array< double, 3 > simBoxLength, Random &RNG)
 
bool isHaloCell () const final
 
bool isBoundaryCell () const final
 
bool isInnerCell () const final
 
bool isInnerMostCell () const final
 
void assignCellToHaloRegion ()
 
void assignCellToBoundaryRegion ()
 
void assignCellToInnerRegion ()
 
void assignCellToInnerMostAndInnerRegion ()
 
void skipCellFromHaloRegion ()
 
void skipCellFromBoundaryRegion ()
 
void skipCellFromInnerRegion ()
 
void skipCellFromInnerMostRegion ()
 
double getBoxMin (int d) const
 
double getBoxMax (int d) const
 
std::array< double, 3 > getBoxMinArray () const
 
std::array< double, 3 > getBoxMaxArray () const
 
void setBoxMin (const double b[3])
 
void setBoxMax (const double b[3])
 
- Public Member Functions inherited from Cell
unsigned long getCellIndex () const
 
void setCellIndex (unsigned long cellIndex)
 

Additional Inherited Members

- Static Public Attributes inherited from ParticleCellBase
static CellBorderAndFlagManager _cellBorderAndFlagManager
 
- Protected Attributes inherited from Cell
unsigned long _cellIndex
 the index of a cell. On one process every index must be unique.
 

Member Function Documentation

◆ addParticle()

bool ParticleCellRMM::addParticle ( Molecule particle,
bool  checkWhetherDuplicate = false 
)
overridevirtual

Add a particle to the cell.

Parameters
particlethe particle to be added
checkWhetherDuplicateif true, check if a molecule with the same molecule IDs already exists in the cell
Returns
true, if inserted

Implements ParticleCellBase.

◆ buildSoACaches()

void ParticleCellRMM::buildSoACaches ( )
inlineoverridevirtual

Implements ParticleCellBase.

◆ deallocateAllParticles()

void ParticleCellRMM::deallocateAllParticles ( )
overridevirtual

Implements ParticleCellBase.

◆ deleteMoleculeByIndex()

bool ParticleCellRMM::deleteMoleculeByIndex ( size_t  index)
overridevirtual

Implements ParticleCellBase.

◆ findMoleculeByID()

bool ParticleCellRMM::findMoleculeByID ( size_t &  index,
unsigned long  molid 
) const
overridevirtual

Find the index of a molecule in a cell based on its molecule ID.

Parameters
indexindex of the molecule in the cell data structure
molidmolecule ID of the molecule to be searched in the cell
Returns
true if molecule was found

Implements ParticleCellBase.

◆ getLeavingMolecules()

void ParticleCellRMM::getLeavingMolecules ( std::vector< Molecule > &  appendBuffer)
overridevirtual

Reimplemented from ParticleCellBase.

◆ getMoleculeCount()

int ParticleCellRMM::getMoleculeCount ( ) const
overridevirtual

Implements ParticleCellBase.

◆ getMoleculeVectorDynamicSize()

size_t ParticleCellRMM::getMoleculeVectorDynamicSize ( ) const
inlineoverridevirtual

Implements ParticleCellBase.

◆ getRegion()

void ParticleCellRMM::getRegion ( double  lowCorner[3],
double  highCorner[3],
std::vector< Molecule * > &  particlePtrs,
bool  removeFromContainer = false 
)
overridevirtual

Implements ParticleCellBase.

◆ increaseMoleculeStorage()

void ParticleCellRMM::increaseMoleculeStorage ( size_t  numExtraMols)
overridevirtual

Implements ParticleCellBase.

◆ isEmpty()

bool ParticleCellRMM::isEmpty ( ) const
overridevirtual

Check if current cell contains no molecules.

Returns
true if no molecules are in the cell, false otherwise

Implements ParticleCellBase.

◆ moleculesAtConstNew()

void ParticleCellRMM::moleculesAtConstNew ( size_t  i,
Molecule *&  multipurposePointer 
) const
overridevirtual

Implements ParticleCellBase.

◆ moleculesAtNew()

void ParticleCellRMM::moleculesAtNew ( size_t  i,
Molecule *&  multipurposePointer 
)
overridevirtual

Implements ParticleCellBase.

◆ postUpdateLeavingMolecules()

void ParticleCellRMM::postUpdateLeavingMolecules ( )
inlineoverridevirtual

Implements ParticleCellBase.

◆ prefetchForForce()

void ParticleCellRMM::prefetchForForce ( ) const
overridevirtual

Reimplemented from ParticleCellBase.

◆ preUpdateLeavingMolecules()

void ParticleCellRMM::preUpdateLeavingMolecules ( )
inlineoverridevirtual

Implements ParticleCellBase.

◆ updateLeavingMoleculesBase()

void ParticleCellRMM::updateLeavingMoleculesBase ( ParticleCellBase otherCell)
overridevirtual

Implements ParticleCellBase.


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