ls1-MarDyn
ls1-MarDyn molecular dynamics code
|
#include <CellProcessor.h>
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 |
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.
|
inlinevirtual |
virtual destructor
|
pure virtual |
Called after the traversal finished.
Implemented in bhfmm::VectorizedLJP2PCellProcessor, PositionCellProcessorRMM, VelocityCellProcessorRMM, FlopCounter, LegacyCellProcessor, RDFCellProcessor, VCP1CLJRMM, VectorizedCellProcessor, ResortCellProcessorSliced, and ODFCellProcessor.
|
pure virtual |
called before the traversal starts.
numCells | number of cells in window |
Implemented in bhfmm::VectorizedLJP2PCellProcessor, PositionCellProcessorRMM, VelocityCellProcessorRMM, FlopCounter, LegacyCellProcessor, RDFCellProcessor, VCP1CLJRMM, VectorizedCellProcessor, ResortCellProcessorSliced, and ODFCellProcessor.
|
pure virtual |
Called after the cell has been considered for the last time during the traversal.
Implemented in bhfmm::VectorizedLJP2PCellProcessor, LegacyCellProcessor, RDFCellProcessor, VCP1CLJRMM, VectorizedCellProcessor, ResortCellProcessorSliced, PositionCellProcessorRMM, VelocityCellProcessorRMM, FlopCounter, and ODFCellProcessor.
|
pure virtual |
Called before a cell is touched for the first time during an interation.
Implemented in bhfmm::VectorizedLJP2PCellProcessor, LegacyCellProcessor, RDFCellProcessor, VCP1CLJRMM, VectorizedCellProcessor, ResortCellProcessorSliced, PositionCellProcessorRMM, VelocityCellProcessorRMM, FlopCounter, and ODFCellProcessor.
|
pure virtual |
Called when this cell is the current cell.
Implemented in bhfmm::VectorizedLJP2PCellProcessor, PositionCellProcessorRMM, VelocityCellProcessorRMM, FlopCounter, LegacyCellProcessor, RDFCellProcessor, VCP1CLJRMM, VectorizedCellProcessor, ResortCellProcessorSliced, and ODFCellProcessor.
|
pure virtual |
Called for each cell pair within the cutoff radius. Called exactly once per pair (i.e. pairs are not ordered).
Implemented in ResortCellProcessorSliced, bhfmm::VectorizedLJP2PCellProcessor, FlopCounter, ODFCellProcessor, PositionCellProcessorRMM, VelocityCellProcessorRMM, LegacyCellProcessor, RDFCellProcessor, VCP1CLJRMM, and VectorizedCellProcessor.