55#ifndef BRAINS_DATASTORAGE_HPP
56#define BRAINS_DATASTORAGE_HPP
79 dslAngularMomentum = 16,
84 dslFunctionalDerivative = 512,
87 dslElectricField = 4096,
88 dslSkippedCharge = 8192,
89 dslFlucQPosition = 16384,
90 dslFlucQVelocity = 32768,
91 dslFlucQForce = 65536,
92 dslSitePotential = 131072
96 DataStorage(std::size_t size,
int storageLayout = 0);
103 void resize(std::size_t newSize);
112 void reserve(std::size_t size);
124 void copy(
int source, std::size_t num, std::size_t target);
132 vector<Vector3d> position;
155 RealType* internalGetArrayPointer(vector<Vector3d>& v);
156 RealType* internalGetArrayPointer(vector<Mat3x3d>& v);
157 RealType* internalGetArrayPointer(vector<RealType>& v);
160 void internalResize(std::vector<T>& v, std::size_t newSize);
163 void internalCopy(std::vector<T>& v,
int source, std::size_t num,
void copy(int source, std::size_t num, std::size_t target)
Copies data inside DataStorage class.
vector< RealType > functional
electron density
int getStorageLayout()
Returns the storage layout.
void resize(std::size_t newSize)
Changes the size of this DataStorage.
vector< RealType > flucQFrc
fluctuating charge velocities
vector< RealType > particlePot
torque array
vector< RealType > sitePotential
fluctuating charge forces
vector< Mat3x3d > quadrupole
space-frame dipole vector
vector< RealType > functionalDerivative
density functional
vector< RealType > flucQPos
charge skipped during normal pairwise calculation
vector< Vector3d > velocity
position array
vector< RotMat3x3d > aMat
force array
vector< RealType > density
particle potential arrray
vector< RealType > skippedCharge
local electric field
void setStorageLayout(int layout)
Sets the storage layout.
std::size_t getSize()
return the size of this DataStorage.
static std::size_t getBytesPerStuntDouble(int layout)
electrostatic site potentials
vector< RealType > flucQVel
fluctuating charges
vector< Vector3d > torque
angular momentum array (body-fixed)
vector< Vector3d > force
velocity array
vector< Vector3d > electricField
space-frame quadrupole tensor
void reserve(std::size_t size)
Reallocates memory manually.
vector< Vector3d > dipole
derivative of functional
vector< Vector3d > angularMomentum
rotation matrix array
RealType * getArrayPointer(int whichArray)
Returns the pointer of internal array.
This basic Periodic Table class was originally taken from the data.cpp file in OpenBabel.