1 #ifndef MD_COULOMB_POTENTIAL_H 2 #define MD_COULOMB_POTENTIAL_H 11 #include <util/param/ParamComposite.h> 12 #include <mcMd/potentials/coulomb/EwaldRSpaceAccumulator.h> 13 #include <util/misc/Setable.h> 14 #include <util/space/Tensor.h> 54 virtual void set(std::string name,
double value);
62 virtual double get(std::string name)
const;
75 virtual void makeWaves() = 0;
87 virtual int nWave()
const = 0;
96 virtual void addForces() = 0;
101 virtual void computeEnergy() = 0;
106 virtual void unsetEnergy();
113 double kSpaceEnergy();
120 double rSpaceEnergy();
137 virtual void computeStress() = 0;
142 virtual void unsetStress();
171 void computeStress(
Tensor& stress);
176 void computeStress(
Vector& pressures);
188 void computeStress(
double& pressure);
217 {
return hasWaves_; }
Coulomb potential for an Md simulation.
Setable< double > kSpaceEnergy_
K-space part of Coulomb energy.
A Vector is a Cartesian vector.
bool isInitialized_
Have parameters been set?
A Tensor represents a Cartesian tensor.
Setable< Tensor > kSpaceStress_
K-space part of Coulomb stress.
EwaldRSpaceAccumulator rSpaceAccumulator_
Short-range real space energy and stress contributions.
Utility classes for scientific computation.
Utility class to store r-space Coulomb energy and stress.
Single-processor Monte Carlo (MC) and molecular dynamics (MD).
bool hasWaves_
Are waves and k-space potential up to date? Unset if boundary or parameters change.
An object that can read multiple parameters from file.
bool hasWaves()
Are wavevectors and k-space influence function up to date?