8#ifndef SRC_BHFMM_CONTAINERS_PARTICLECELLPOINTERS_H_
9#define SRC_BHFMM_CONTAINERS_PARTICLECELLPOINTERS_H_
13#include "particleContainer/Cell.h"
14#include "particleContainer/adapter/CellDataSoA.h"
16#include "molecules/MoleculeForwardDeclaration.h"
19#include "quicksched.h"
37 qsched_res_t _resourceId;
38 qsched_task_t _preprocessId;
39 qsched_task_t _postprocessId;
64 return *_molecules.at(i);
81 taskData& getTaskData(){
84 void setResourceId(qsched_res_t
id){
85 _taskData._resourceId =
id;
87 void setP2PId(qsched_res_t
id){
88 _taskData._P2PId =
id;
90 void setPreprocessId(qsched_res_t
id){
91 _taskData._preprocessId =
id;
93 void setPostprocessId(qsched_res_t
id){
94 _taskData._postprocessId =
id;
98 void assignCellToHaloRegion() { haloCell =
true; }
99 void assignCellToBoundaryRegion() { boundaryCell =
true; }
100 void assignCellToInnerRegion() { innerCell =
true; }
101 void assignCellToInnerMostAndInnerRegion() { innerCell =
true; innerMostCell =
true; }
103 void skipCellFromHaloRegion() { haloCell =
false; }
104 void skipCellFromBoundaryRegion() { boundaryCell =
false; }
105 void skipCellFromInnerRegion() { innerCell =
false; }
106 void skipCellFromInnerMostRegion() { innerMostCell =
false; }
108 bool isHaloCell()
const {
return haloCell; }
109 bool isBoundaryCell()
const {
return boundaryCell; }
110 bool isInnerCell()
const {
return innerCell; }
111 bool isInnerMostCell()
const {
return innerMostCell; }
113 double getBoxMin(
int d)
const {
return _boxMin[d]; }
114 double getBoxMax(
int d)
const {
return _boxMax[d]; }
115 void setBoxMin(
const double b[3]) {
for (
int d = 0; d < 3; ++d) { _boxMin[d] = b[d]; } }
116 void setBoxMax(
const double b[3]) {
for (
int d = 0; d < 3; ++d) { _boxMax[d] = b[d]; } }
135 std::vector<Molecule *> _molecules;
144 struct taskData _taskData;
Structure of Arrays for vectorized force calculation.
Definition: CellDataSoA.h:22
FullMolecule modeled as LJ sphere with point polarities.
Definition: FullMolecule.h:18
Definition: ParticleCellPointers.h:44
void removeAllParticles()
removes all elements from the list molecules without deallocating them
Definition: ParticleCellPointers.cpp:35
int getMoleculeCount() const
return the number of molecules contained in this cell
Definition: ParticleCellPointers.cpp:55
ParticleCellPointers()
Initialize data pointers to 0.
Definition: ParticleCellPointers.cpp:19
~ParticleCellPointers()
Destructor.
Definition: ParticleCellPointers.cpp:29
bool addParticle(Molecule *particle_ptr)
insert a single molecule into this cell
Definition: ParticleCellPointers.cpp:39
CellDataSoA & getCellDataSoA()
Get the structure of arrays for VectorizedCellProcessor.
Definition: ParticleCellPointers.h:76
Definition: L2PCellProcessor.cpp:15
::xsd::cxx::tree::id< char, ncname > id
C++ type corresponding to the ID XML Schema built-in type.
Definition: vtk-punstructured.h:322