ls1-MarDyn
ls1-MarDyn molecular dynamics code
Public Member Functions | Protected Attributes | List of all members
CellProcessor Class Referenceabstract

#include <CellProcessor.h>

Inheritance diagram for CellProcessor:
FlopCounter LegacyCellProcessor ODFCellProcessor PositionCellProcessorRMM RDFCellProcessor ResortCellProcessorSliced VCP1CLJRMM VectorizedCellProcessor VelocityCellProcessorRMM bhfmm::VectorizedLJP2PCellProcessor

Public Member Functions

 CellProcessor (const double cutoffRadius, const double LJCutoffRadius)
 
virtual ~CellProcessor ()
 
double getCutoffRadius () const
 
double getLJCutoffRadius () const
 
void setCutoffRadius (const double c)
 
void setLJCutoffRadius (const double ljc)
 
double getCutoffRadiusSquare () const
 
double getLJCutoffRadiusSquare () const
 
void setCutoffRadiusSquare (const double c)
 
void setLJCutoffRadiusSquare (const double ljc)
 
virtual void initTraversal ()=0
 
virtual void preprocessCell (ParticleCell &cell)=0
 
virtual void processCellPair (ParticleCell &cell1, ParticleCell &cell2, bool sumAll=false)=0
 
virtual void processCell (ParticleCell &cell)=0
 
virtual double processSingleMolecule (Molecule *m1, ParticleCell &cell2)=0
 
virtual void postprocessCell (ParticleCell &cell)=0
 
virtual void endTraversal ()=0
 

Protected Attributes

double _cutoffRadiusSquare
 
double _LJCutoffRadiusSquare
 

Detailed Description

Interface for traversal of cells to allow a cell-wise treatment of molecules.

As depicted in the picture, cells are traversed in a first-in-first-out (FIFO) order, e.g. cell 26 is searched for interacting particles before cell 27 is ever considered, and similarily cell no. 26 will become the "current" cell before cell no. 27.

The grey cells are the ones which may e.g. be searched for interacting particles, so they are called active cells. Before a cell will be handed to the method processCell() or processCellPair() for the first time during an iteration, preprocessCell will be called to allow preparatory stuff. PostprocessCell is called analogously after a cell has been considered for the last time. In between, processCell and processCellPair are called.

Author
eckhardw

Constructor & Destructor Documentation

◆ ~CellProcessor()

virtual CellProcessor::~CellProcessor ( )
inlinevirtual

virtual destructor

Member Function Documentation

◆ endTraversal()

virtual void CellProcessor::endTraversal ( )
pure virtual

◆ initTraversal()

virtual void CellProcessor::initTraversal ( )
pure virtual

◆ postprocessCell()

virtual void CellProcessor::postprocessCell ( ParticleCell cell)
pure virtual

◆ preprocessCell()

virtual void CellProcessor::preprocessCell ( ParticleCell cell)
pure virtual

◆ processCell()

virtual void CellProcessor::processCell ( ParticleCell cell)
pure virtual

◆ processCellPair()

virtual void CellProcessor::processCellPair ( ParticleCell cell1,
ParticleCell cell2,
bool  sumAll = false 
)
pure virtual

Called for each cell pair within the cutoff radius. Called exactly once per pair (i.e. pairs are not ordered).

Note
will not be called for empty cells. Sum up all macroscopic values (e.g. for hs) or only half of them (e.g. for fs)

Implemented in ResortCellProcessorSliced, bhfmm::VectorizedLJP2PCellProcessor, FlopCounter, ODFCellProcessor, PositionCellProcessorRMM, VelocityCellProcessorRMM, LegacyCellProcessor, RDFCellProcessor, VCP1CLJRMM, and VectorizedCellProcessor.


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