1 #ifndef SIMP_ORTHO_BOX_EXTERNAL_H 2 #define SIMP_ORTHO_BOX_EXTERNAL_H 11 #include <simp/boundary/Boundary.h> 12 #include <util/space/Dimension.h> 13 #include <util/param/ParamComposite.h> 117 void set(std::string name,
double value);
122 double get(std::string name)
const;
148 double energy(
double d,
int i)
const;
185 static const int MaxAtomType = 2;
229 if (r3i < 0.129615*sigmaCb_) r3i = 0.129615 * sigmaCb_;
230 r3i = sigmaCb_ / r3i;
231 return coeff_ * (r3i*(r3i*r3i - 7.5) + 7.905694);
242 double d, totalEnergy;
243 Vector halfL = boundaryPtr_->lengths();
246 for (
int i = indConfine_; i <
Dimension; ++i) {
248 if (d > halfL[i]) d = halfL[i] + halfL[i] - d;
249 totalEnergy +=
energy(d, type);
262 if (r3i < 0.129615 * sigmaCb_) r3i = 0.129615 * sigmaCb_;
263 r3i = sigmaCb_ / r3i;
264 return coeff_ * (9.0*r3i*r3i - 22.5) * r3i / d;
276 double d = position[2];
278 Vector halfL = boundaryPtr_->lengths();
281 for (
int i = indConfine_; i <
Dimension; ++i) {
284 d = halfL[i] + halfL[i] - d;
Vector & zero()
Set all elements of a 3D vector to zero.
const int Dimension
Dimensionality of space.
A Vector is a Cartesian vector.
A repulsive 9-3 potential confining particles inside an orthogonal box along directions specified by ...
An orthorhombic periodic unit cell.
double externalParameter() const
Returns external parameter.
File containing preprocessor macros for error handling.
Classes used by all simpatico molecular simulations.
void readParameters(std::istream &in)
Read potential parameters, and initialize other variables.
std::string className() const
Return name string "LJPair" for this evaluator class.
OrthoBoxExternal()
Default constructor.
Saving / output archive for binary ostream.
virtual void save(Serializable::OArchive &ar)
Save internal state to an archive.
Utility classes for scientific computation.
OrthoBoxExternal & operator=(const OrthoBoxExternal &other)
Assignment.
void getForce(const Vector &position, int type, Vector &force) const
Returns force caused by the external potential.
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.
double forceScalar(double d, int i) const
Returns magnitude of the repulsive force.
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.
void setExternalParameter(double externalParameter)
Sets external parameter.