1 #ifndef MCMD_MD_SPME_POTENTIAL_H 2 #define MCMD_MD_SPME_POTENTIAL_H 11 #include <mcMd/potentials/coulomb/MdCoulombPotential.h> 12 #include <mcMd/potentials/coulomb/EwaldRSpaceAccumulator.h> 13 #include <mcMd/chemistry/AtomType.h> 15 #include <simp/interaction/coulomb/EwaldInteraction.h> 16 #include <simp/boundary/Boundary.h> 18 #include <util/space/IntVector.h> 19 #include <util/space/Vector.h> 20 #include <util/space/Tensor.h> 21 #include <util/containers/Pair.h> 22 #include <util/containers/GArray.h> 23 #include <util/containers/GridArray.h> 24 #include <util/misc/Setable.h> 25 #include <util/containers/Array.h> 36 typedef std::complex<double> DCMPLX;
72 virtual void readParameters(std::istream& in);
98 void set(std::string name,
double value);
105 double get(std::string name)
const;
114 virtual void makeWaves();
119 virtual int nWave()
const;
124 virtual void addForces();
129 virtual void computeEnergy();
134 virtual void computeStress();
141 {
return rSpaceAccumulator_; }
144 {
return ewaldInteraction_; }
196 fftw_plan forward_plan;
199 fftw_plan xfield_backward_plan, yfield_backward_plan, zfield_backward_plan;
210 void setGridDimensions();
220 double bfactor(
double m ,
int dim);
225 void assignCharges();
230 double basisSpline(
double x);
Coulomb potential for an Md simulation.
An orthorhombic periodic unit cell.
A set of interacting Molecules enclosed by a Boundary.
Array container class template.
Classes used by all simpatico molecular simulations.
The main object in a simulation, which coordinates others.
Saving / output archive for binary ostream.
Implementation of r-space and k-space Ewald Coulomb interactions.
Utility classes for scientific computation.
Utility class to store r-space Coulomb energy and stress.
Smooth Particle-Mesh Ewald Coulomb potential for MD simulations.
Saving archive for binary istream.
Single-processor Monte Carlo (MC) and molecular dynamics (MD).
An IntVector is an integer Cartesian vector.