ls1-MarDyn
ls1-MarDyn molecular dynamics code
src
particleContainer
adapter
CellProcessor.h
1
2
#ifndef CELLPROCESSOR_H_
3
#define CELLPROCESSOR_H_
4
5
#include <cstddef>
6
#include <cmath>
7
8
#include "molecules/MoleculeForwardDeclaration.h"
9
#include "particleContainer/ParticleCellForwardDeclaration.h"
10
29
class
CellProcessor
{
30
protected
:
31
double
_cutoffRadiusSquare;
32
double
_LJCutoffRadiusSquare;
33
34
public
:
35
CellProcessor
(
const
double
cutoffRadius,
const
double
LJCutoffRadius) :
36
_cutoffRadiusSquare(cutoffRadius * cutoffRadius),
37
_LJCutoffRadiusSquare(LJCutoffRadius * LJCutoffRadius) {}
41
virtual
~CellProcessor
() {}
42
43
double
getCutoffRadius()
const
{
return
sqrt(_cutoffRadiusSquare);}
44
double
getLJCutoffRadius()
const
{
return
sqrt(_LJCutoffRadiusSquare);}
45
void
setCutoffRadius(
const
double
c) {_cutoffRadiusSquare = c * c;}
46
void
setLJCutoffRadius(
const
double
ljc) {_LJCutoffRadiusSquare = ljc * ljc;}
47
48
49
double
getCutoffRadiusSquare()
const
{
return
_cutoffRadiusSquare;}
50
double
getLJCutoffRadiusSquare()
const
{
return
_LJCutoffRadiusSquare;}
51
void
setCutoffRadiusSquare(
const
double
c) {_cutoffRadiusSquare = c;}
52
void
setLJCutoffRadiusSquare(
const
double
ljc) {_LJCutoffRadiusSquare = ljc;}
53
54
60
virtual
void
initTraversal
() = 0;
61
65
virtual
void
preprocessCell
(
ParticleCell
& cell) = 0;
66
74
virtual
void
processCellPair
(
ParticleCell
& cell1,
ParticleCell
& cell2,
bool
sumAll =
false
) = 0;
75
81
virtual
void
processCell
(
ParticleCell
& cell) = 0;
82
83
virtual
double
processSingleMolecule(
Molecule
* m1,
ParticleCell
& cell2) = 0;
84
88
virtual
void
postprocessCell
(
ParticleCell
& cell) = 0;
89
93
virtual
void
endTraversal
() = 0;
94
};
95
96
97
#endif
CellProcessor
Definition:
CellProcessor.h:29
CellProcessor::~CellProcessor
virtual ~CellProcessor()
Definition:
CellProcessor.h:41
CellProcessor::processCell
virtual void processCell(ParticleCell &cell)=0
CellProcessor::endTraversal
virtual void endTraversal()=0
CellProcessor::postprocessCell
virtual void postprocessCell(ParticleCell &cell)=0
CellProcessor::processCellPair
virtual void processCellPair(ParticleCell &cell1, ParticleCell &cell2, bool sumAll=false)=0
CellProcessor::preprocessCell
virtual void preprocessCell(ParticleCell &cell)=0
CellProcessor::initTraversal
virtual void initTraversal()=0
FullMolecule
FullMolecule modeled as LJ sphere with point polarities.
Definition:
FullMolecule.h:18
FullParticleCell
FullParticleCell data structure. Renamed from ParticleCell.
Definition:
FullParticleCell.h:49
Generated on Thu Oct 21 2021 02:54:36 for ls1-MarDyn by
1.9.2