ls1-MarDyn
ls1-MarDyn molecular dynamics code
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
30protected:
31 double _cutoffRadiusSquare;
32 double _LJCutoffRadiusSquare;
33
34public:
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
Definition: CellProcessor.h:29
virtual ~CellProcessor()
Definition: CellProcessor.h:41
virtual void processCell(ParticleCell &cell)=0
virtual void endTraversal()=0
virtual void postprocessCell(ParticleCell &cell)=0
virtual void processCellPair(ParticleCell &cell1, ParticleCell &cell2, bool sumAll=false)=0
virtual void preprocessCell(ParticleCell &cell)=0
virtual void initTraversal()=0
FullMolecule modeled as LJ sphere with point polarities.
Definition: FullMolecule.h:18
FullParticleCell data structure. Renamed from ParticleCell.
Definition: FullParticleCell.h:49