52#ifndef BRAINS_DATASTORAGE_HPP
53#define BRAINS_DATASTORAGE_HPP
76 dslAngularMomentum = 16,
81 dslFunctionalDerivative = 512,
84 dslElectricField = 4096,
85 dslSkippedCharge = 8192,
86 dslFlucQPosition = 16384,
87 dslFlucQVelocity = 32768,
88 dslFlucQForce = 65536,
89 dslSitePotential = 131072
93 DataStorage(std::size_t size,
int storageLayout = 0);
100 void resize(std::size_t newSize);
109 void reserve(std::size_t size);
121 void copy(
int source, std::size_t num, std::size_t target);
129 vector<Vector3d> position;
152 RealType* internalGetArrayPointer(vector<Vector3d>& v);
153 RealType* internalGetArrayPointer(vector<Mat3x3d>& v);
154 RealType* internalGetArrayPointer(vector<RealType>& v);
157 void internalResize(std::vector<T>& v, std::size_t newSize);
160 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.