8#ifndef SRC_PARTICLECONTAINER_FULLPARTICLECELL_H_
9#define SRC_PARTICLECONTAINER_FULLPARTICLECELL_H_
14#include "particleContainer/ParticleCellBase.h"
15#include "particleContainer/adapter/CellDataSoA.h"
16#include "SingleCellIterator.h"
76 bool deleteMoleculeByIndex(
size_t index)
override;
89 void preUpdateLeavingMolecules()
override;
93 void postUpdateLeavingMolecules()
override;
95 void getRegion(
double lowCorner[3],
double highCorner[3],
96 std::vector<Molecule*> &particlePtrs,
bool removeFromContainer =
false)
override;
98 void buildSoACaches()
override;
100 void increaseMoleculeStorage(
size_t numExtraMols)
override;
102 virtual size_t getMoleculeVectorDynamicSize()
const override {
103 return _molecules.capacity() *
sizeof(
Molecule) + _leavingMolecules.capacity() *
sizeof(
Molecule);
107 void moleculesAtNew(
size_t i,
Molecule *& multipurposePointer)
override {
108 multipurposePointer = & _molecules.at(i);
111 void moleculesAtConstNew(
size_t i,
Molecule *& multipurposePointer)
const override {
112 multipurposePointer =
const_cast<Molecule*
>(& _molecules.at(i));
124 std::vector<Molecule> _molecules;
129 std::vector<Molecule> _leavingMolecules;
Structure of Arrays for vectorized force calculation.
Definition: CellDataSoA.h:22
FullMolecule modeled as LJ sphere with point polarities.
Definition: FullMolecule.h:18
FullParticleCell data structure. Renamed from ParticleCell.
Definition: FullParticleCell.h:49
void deallocateAllParticles() override
removes and deallocates all elements
Definition: FullParticleCell.cpp:29
bool addParticle(Molecule &particle, bool checkWhetherDuplicate=false) override
insert a single molecule into this cell
Definition: FullParticleCell.cpp:50
int getMoleculeCount() const override
return the number of molecules contained in this cell
Definition: FullParticleCell.cpp:77
bool findMoleculeByID(size_t &index, unsigned long molid) const override
Find the index of a molecule in a cell based on its molecule ID.
Definition: FullParticleCell.cpp:33
CellDataSoA & getCellDataSoA()
Get the structure of arrays for VectorizedCellProcessor.
Definition: FullParticleCell.h:85
FullParticleCell()
Initialize data pointers to 0.
Definition: FullParticleCell.cpp:19
bool isEmpty() const override
Check if current cell contains no molecules.
Definition: FullParticleCell.cpp:73
~FullParticleCell()
Destructor.
Definition: FullParticleCell.cpp:23
ParticleCellBase defines the interface for cells used by the LinkedCells data structure to store mole...
Definition: ParticleCellBase.h:23
Definition: SingleCellIterator.h:14