1 #ifndef SIMP_BOX_EXTERNAL_H 2 #define SIMP_BOX_EXTERNAL_H 11 #include <simp/boundary/Boundary.h> 12 #include <util/space/Dimension.h> 13 #include <util/param/ParamComposite.h> 113 void set(std::string name,
double value);
118 double get(std::string name)
const;
144 double energy(
double d,
int i)
const;
181 static const int MaxAtomType = 2;
222 if (r3i < 0.129615*sigmaCb_) r3i = 0.129615 * sigmaCb_;
223 r3i = sigmaCb_ / r3i;
224 return coeff_ * (r3i*(r3i*r3i - 7.5) + 7.905694);
235 double d, totalEnergy;
236 Vector halfL = boundaryPtr_->lengths();
241 if (d > halfL[i]) d = halfL[i] + halfL[i] - d;
242 totalEnergy +=
energy(d, type);
255 if (r3i < 0.129615 * sigmaCb_) r3i = 0.129615 * sigmaCb_;
256 r3i = sigmaCb_ / r3i;
257 return coeff_ * (9.0*r3i*r3i - 22.5) * r3i / d;
269 double d = position[2];
271 Vector halfL = boundaryPtr_->lengths();
276 d = halfL[i] + halfL[i] - d;
double forceScalar(double d, int i) const
Returns magnitude of the repulsive force.
const int Dimension
Dimensionality of space.
A Vector is a Cartesian vector.
virtual void loadParameters(Serializable::IArchive &ar)
Load internal state from an archive.
double energy(double d, int i) const
Returns external potential energy of a particle of type i.
An orthorhombic periodic unit cell.
void readParameters(std::istream &in)
Read potential parameters, and initialize other variables.
void setExternalParameter(double externalParameter)
Sets external parameter.
File containing preprocessor macros for error handling.
Classes used by all simpatico molecular simulations.
BoxExternal & operator=(const BoxExternal &other)
Assignment.
Saving / output archive for binary ostream.
std::string className() const
Return name string "LJPair" for this evaluator class.
virtual void save(Serializable::OArchive &ar)
Save internal state to an archive.
BoxExternal()
Default constructor.
Utility classes for scientific computation.
double externalParameter() const
Returns external parameter.
A repulsive 9-3 potential confining particles within a box.
Saving archive for binary istream.
void setNAtomType(int nAtomType)
Set nAtomType value.
void setBoundary(Boundary &boundary)
Set pointer to Boundary.
An object that can read multiple parameters from file.
void getForce(const Vector &position, int type, Vector &force) const
Returns force caused by the external potential.