29 #ifndef CDPL_SHAPE_GAUSSIANSHAPEFUNCTION_HPP
30 #define CDPL_SHAPE_GAUSSIANSHAPEFUNCTION_HPP
48 class GaussianProductList;
49 class ExactGaussianShapeOverlapFunction;
50 class FastGaussianShapeOverlapFunction;
56 static constexpr std::size_t DEF_MAX_PRODUCT_ORDER = 6;
57 static constexpr
double DEF_DISTANCE_CUTOFF = 0.0;
107 const GaussianProductList* getProductList()
const;
109 typedef std::unique_ptr<GaussianProductList> ProductListPtr;
113 ProductListPtr prodList;
Definition of matrix data types.
Definition of the preprocessor macro CDPL_SHAPE_API.
#define CDPL_SHAPE_API
Tells the compiler/linker which classes, functions and variables are part of the library API.
Definition of the class CDPL::Math::VectorArray.
Definition of vector data types.
Definition: ExactGaussianShapeOverlapFunction.hpp:47
Definition: FastGaussianShapeOverlapFunction.hpp:47
Definition: GaussianShapeFunction.hpp:53
void getElementPositions(Math::Vector3DArray &coords) const
void setShape(const GaussianShape &shape)
double calcVolume() const
void transform(const Math::Matrix4D &xform)
double getDistanceCutoff() const
GaussianShapeFunction(const GaussianShape &shape)
const Math::Vector3D & getElementPosition(std::size_t idx) const
GaussianShapeFunction(const GaussianShapeFunction &func)
std::size_t getMaxOrder() const
GaussianShapeFunction & operator=(const GaussianShapeFunction &func)
void setMaxOrder(std::size_t max_order)
double calcDensity(const Math::Vector3D &pos) const
const GaussianShape * getShape() const
std::shared_ptr< GaussianShapeFunction > SharedPointer
Definition: GaussianShapeFunction.hpp:59
void setDistanceCutoff(double cutoff)
void calcCentroid(Math::Vector3D &ctr) const
double calcSurfaceArea(std::size_t elem_idx) const
void calcQuadrupoleTensor(const Math::Vector3D &ctr, Math::Matrix3D &quad_tensor) const
double calcSurfaceArea() const
A data type for the descripton of arbitrary shapes composed of spheres approximated by gaussian funct...
Definition: GaussianShape.hpp:51
VectorArray< Vector3D > Vector3DArray
An array of Math::Vector3D objects.
Definition: VectorArray.hpp:84
CVector< double, 3 > Vector3D
A bounded 3 element vector holding floating point values of type double.
Definition: Vector.hpp:1637
CMatrix< double, 3, 3 > Matrix3D
A bounded 3x3 matrix holding floating point values of type double.
Definition: Matrix.hpp:1849
The namespace of the Chemical Data Processing Library.