35 Eigen::Vector3d
position = Eigen::Vector3d::Zero();
39 Eigen::Vector3d
dipole = Eigen::Vector3d::Zero();
40 Eigen::Vector3d
position = Eigen::Vector3d::Zero();
44 Eigen::Vector3d
G = Eigen::Vector3d::Zero();
58 throw std::runtime_error(
"Ewald eta must be positive");
68 void addCharge(
double q,
const Eigen::Vector3d& pos) {
79 void addDipole(
const Eigen::Vector3d& mu,
const Eigen::Vector3d& pos) {
91 const std::complex<double>& coeff) {
size_t numDipoles() const
const std::vector< PointDipole > & dipoles() const
Eigen::Vector4d & shapeFactors()
const Eigen::Vector4d & shapeFactors() const
size_t numCharges() const
const std::vector< ReciprocalTerm > & reciprocalTerms() const
std::vector< PointDipole > dipoles_
std::vector< ReciprocalTerm > reciprocal_terms_
size_t numReciprocalTerms() const
std::vector< PointCharge > & charges()
std::vector< PointCharge > charges_
void addReciprocalTerm(const Eigen::Vector3d &G, const std::complex< double > &coeff)
std::vector< PointDipole > & dipoles()
const double nm_inv_to_bohr_inv
PotentialData(double eta)
std::vector< ReciprocalTerm > & reciprocalTerms()
Eigen::Vector4d shape_factors_
void addDipole(const Eigen::Vector3d &mu, const Eigen::Vector3d &pos)
const std::vector< PointCharge > & charges() const
void addCharge(double q, const Eigen::Vector3d &pos)
double totalCharge() const
void setShapeFactors(Eigen::Vector4d vector)
Charge transport classes.
Provides a means for comparing floating point numbers.
std::complex< double > coefficient