18#ifndef VOTCA_CSG_BEAD_H
19#define VOTCA_CSG_BEAD_H
92 void setVel(
const Eigen::Vector3d &r);
98 const Eigen::Vector3d &
getVel()
const;
107 void setU(
const Eigen::Vector3d &u);
124 const Eigen::Vector3d &
getU()
const;
133 void setV(
const Eigen::Vector3d &v);
146 const Eigen::Vector3d &
getV()
const;
155 void setW(
const Eigen::Vector3d &w);
167 const Eigen::Vector3d &
getW()
const;
175 "Cannot access velocity, it has not been set.");
183 Eigen::Vector3d &
U() {
184 assert(
bU_ &&
"Cannot access bead orientation u, has not been set.");
192 Eigen::Vector3d &
V() {
193 assert(
bV_ &&
"Cannot access bead orientation v, has not been set.");
201 Eigen::Vector3d &
W() {
202 assert(
bW_ &&
"Cannot access bead orientation w, has not been set.");
210 Eigen::Vector3d &
F() {
211 assert(
bead_force_set_ &&
"Cannot access bead force, has not been set.");
219 void setF(
const Eigen::Vector3d &bead_force);
229 const Eigen::Vector3d &
getF()
const;
297 Index resnr,
double m,
double q)
322 "Cannot access bead velocity, has not been set.");
332 assert(
bU_ &&
"Cannot access bead orientation u, has not been set.");
352 assert(
bW_ &&
"Cannot access bead orientation w, has not been set.");
362 assert(
bead_force_set_ &&
"Cannot access bead force, has not been set.");
information about a base bead
virtual void setMass(const double &m) noexcept
void setName(std::string name)
Sets the name of the bead.
void setId(const Index &id) noexcept
Sets the id of the bead.
virtual void setType(const std::string &type) noexcept
bool HasU() const noexcept
const Eigen::Vector3d & getU() const
get first orientation (normal vector) vector of bead
const Eigen::Vector3d & getF() const
get the force acting on the bead
void ClearParentBeads()
Clears out all parent beads.
const Index & getResnr() const
void setU(const Eigen::Vector3d &u)
set first orientation (normal vector) vector of bead
bool HasF() const noexcept
void setF(const Eigen::Vector3d &bead_force)
const Eigen::Vector3d & getW() const
get third orientation vector of bead
bool HasVel() const noexcept
bool HasV() const noexcept
void setW(const Eigen::Vector3d &w)
set third orientation vector of bead
void setVel(const Eigen::Vector3d &r)
const std::vector< Index > & ParentBeads()
void AddParentBead(Index parent_bead_id)
Adds the id of a parent bead.
const Eigen::Vector3d & getV() const
get second orientation vector of bead
virtual void setQ(const double &q)
Eigen::Vector3d velocity_
Eigen::Vector3d bead_force_
const Eigen::Vector3d & getVel() const
virtual const double & getQ() const
void setV(const Eigen::Vector3d &v)
set second orientation vector of bead
Symmetry getSymmetry() const
Symmetry
get the symmetry of the bead
bool HasW() const noexcept
Bead(Index id, std::string type, Symmetry symmetry, std::string name, Index resnr, double m, double q)
constructor
std::vector< Index > parent_beads_
information about molecules
topology of the whole system
base class for all analysis tools