17#ifndef VOTCA_CSG_BOUNDARYCONDITION_H
18#define VOTCA_CSG_BOUNDARYCONDITION_H
54 virtual std::unique_ptr<BoundaryCondition>
Clone()
const = 0;
60 void setBox(
const Eigen::Matrix3d &box)
noexcept {
box_ = box; };
66 const Eigen::Matrix3d &
getBox() const noexcept {
return box_; };
80 virtual double BoxVolume() const noexcept;
87 const
Eigen::Vector3d &r_i, const
Eigen::Vector3d &r_j) const = 0;
Class keeps track of how the boundaries of the system are handled.
virtual double BoxVolume() const noexcept
void setBox(const Eigen::Matrix3d &box) noexcept
virtual ~BoundaryCondition()=default
double getShortestBoxDimension() const
Self explanatory gets the shortest dimension of the boundary conditions.
virtual Eigen::Vector3d BCShortestConnection(const Eigen::Vector3d &r_i, const Eigen::Vector3d &r_j) const =0
const Eigen::Matrix3d & getBox() const noexcept
virtual std::unique_ptr< BoundaryCondition > Clone() const =0
Safe way to allow child classes to be copied.
virtual eBoxtype getBoxType() const noexcept=0
base class for all analysis tools