STORMM Source Documentation
Loading...
Searching...
No Matches
stormm::namelist::ForceFieldElement Class Reference

A versatile object for collecting the parameters and scope of applicability of any molecular mechanics force field term. This relies on enumerations to inform whether the term applies to atom types or atom and residue names and the nature of the term. More...

#include <forcefield_element.h>

Public Member Functions

ParameterKind getKind () const
 Get the force field parameter kind.
 
char4 getNameOfAtom (char atom_rank='I') const
 Get the atom name of the I atom in the term.
 
char4 getTypeOfAtom (char atom_rank='I') const
 Get the atom type of atom I in the term.
 
char4 getNameOfResidue (char atom_rank='I') const
 Get the resiude name of atom I in the term.
 
double getCharge () const
 Get the charge of an atom with a given atom name and residue nam.
 
double getSigma () const
 Get the Lennard-Jones sigma parameter of an atom.
 
double getEpsilon () const
 Get the Lennard-Jones epsilon parameter of an atom.
 
double getRho () const
 Get the Lennard-Jones rho parameter of an atom (the third parameter, for 12-6-4 potentials)
 
double getStiffnessConstant () const
 Get the stiffness constant of a bond, angle, Urey-Bradley, or CHARMM improper term.
 
double getEquilibriumConstant () const
 Get the equilibrium constant of a bond, angle, or Urey-Bradley term.
 
double getAmplitude () const
 Get the amplitude of a cosine-based dihedral term.
 
double getPhaseAngle () const
 Get the phase angle of a cosine-based dihedral or CHARMM improper dihedral term.
 
double getPeriodicity () const
 Get the periodicity of a cosine-based dihedral term.
 
double getElectrostaticScaling () const
 Get the electrostatic scaling factor for an attenuated 1:4 non-bonded interaction.
 
double getVanDerWaalsScaling () const
 Get the van-der Waals scaling factor for an attenuated 1:4 non-bonded interaction.
 
TorsionKind getTorsionKind () const
 Get the torsion kind, indicating whether these four atoms describe a proper or improper torsion interaction.
 
std::vector< double > getSurfaceValues () const
 Get the surface value edits associated with a CMAP term.
 
std::vector< int2getSurfaceIndices () const
 Get the locations of point edits on a CMAP term's energy surface.
 
VirtualSiteKind getVirtualSiteFrameType () const
 Get the virtual site frame type.
 
bool testSigmaModification () const
 Test whether the sigma value of a van-der Waals parameter is being modified.
 
bool testEpsilonModification () const
 Test whether the epsilon value of a van-der Waals parameter is being modified.
 
bool testRhoModification () const
 Test whether the rho value of a van-der Waals parameter is being modified.
 
bool testStiffnessModification () const
 Test whether the stiffness constant of a valence parameter is being modified.
 
bool testEquilibriumModification () const
 Test whether the equilibrium constant of a valence parameter is being modified.
 
bool testAmplitudeModification () const
 Test whether the amplitude of a dihedral parameter is being modified.
 
bool testPhaseAngleModification () const
 Test whether the phase angle of a dihedral or improper dihedral is being modified.
 
bool testPeriodicityModification () const
 Test whether the periodicity of a dihedral parameter is being modified.
 
void setStiffness (double stiffness_in)
 Set the stiffness property of one of the valence terms.
 
void setEquilibrium (double equilbrium_in)
 Set the equilibrium property of one of the valence terms.
 
void setPhaseAngle (double phase_angle_in)
 Set the phase angle property of one of the valence terms.
 
void setAmplitude (double amplitude_in)
 Set the amplitude of a cosine-based dihedral term.
 
void setPeriodicity (double periodicity_in)
 Set the periodicity of a cosine-based dihedral term.
 
void setChargeScaling (double scaling_in)
 Set the electrostatic scaling factor for an attenuated 1:4 interaction.
 
void setVanDerWaalsScaling (double scaling_in)
 Set the van-der Waals scaling factor for an attenuated 1:4 interaction.
 
void setCharge (double charge_in)
 Set the charge parameter of an atom.
 
void setSigma (double sigma_in)
 Set the sigma parameter of an atom.
 
void setEpsilon (double epsilon_in)
 Set the epsilon parameter of an atom.
 
void setRho (double rho_in)
 Set the rho parameter of an atom.
 
void apply (AtomGraph *ag, ExceptionResponse policy=ExceptionResponse::SILENT) const
 Apply these force field parameters to any terms found in a specific topology.
 
 ForceFieldElement (ParameterKind kind_in=ParameterKind::NONE)
 A variety of constructors can load one or more atoms and their properties.
 
 ForceFieldElement (ParameterKind kind_in, char4 atom_i_in)
 
 ForceFieldElement (ParameterKind kind_in, char4 atom_i_in, char4 atom_j_in)
 
 ForceFieldElement (ParameterKind kind_in, char4 atom_i_in, char4 atom_j_in, char4 atom_k_in)
 
 ForceFieldElement (ParameterKind kind_in, char4 atom_i_in, char4 atom_j_in, char4 atom_k_in, char4 atom_l_in, TorsionKind tkind_in=TorsionKind::PROPER)
 
 ForceFieldElement (ParameterKind kind_in, VirtualSiteKind frame_type_in, char4 atom_i_in, char4 atom_j_in, char4 atom_k_in, char4 residue_i_in, char4 residue_j_in, char4 residue_k_in)
 
 ForceFieldElement (ParameterKind kind_in, VirtualSiteKind frame_type_in, char4 atom_i_in, char4 atom_j_in, char4 atom_k_in, char4 atom_l_in, char4 residue_i_in, char4 residue_j_in, char4 residue_k_in, char4 residue_l_in)
 
 ForceFieldElement (ParameterKind kind_in, VirtualSiteKind frame_type_in, char4 atom_i_in, char4 atom_j_in, char4 atom_k_in, char4 atom_l_in, char4 atom_m_in, char4 residue_i_in, char4 residue_j_in, char4 residue_k_in, char4 residue_l_in, char4 residue_m_in)
 
 ForceFieldElement (ParameterKind kind_in, char4 atom_i_in, char4 atom_j_in, char4 atom_k_in, char4 atom_l_in, char4 atom_m_in, char4 residue_i_in, char4 residue_j_in, char4 residue_k_in, char4 residue_l_in, char4 residue_m_in, const std::vector< double > &surface_in, const std::vector< int2 > &locations_in)
 

Detailed Description

A versatile object for collecting the parameters and scope of applicability of any molecular mechanics force field term. This relies on enumerations to inform whether the term applies to atom types or atom and residue names and the nature of the term.

Constructor & Destructor Documentation

◆ ForceFieldElement()

stormm::modeling::ForceFieldElement::ForceFieldElement ( ParameterKind kind_in = ParameterKind::NONE)

A variety of constructors can load one or more atoms and their properties.

Overloaded:

  • Create an empty element with only a ParameterKind (default NONE)
  • Load non-bonded terms describing a specific atom
  • Load valence terms describing a bond, angle, dihedral, Urey-Bradley, or CHARMM improper
  • Load an entire CMAP surface
  • Load a virtual site with frame specifications
Parameters
kind_inThe kind of force field parameter, obligatory for every constructor
atom_i_inName or type of atom I in the term
atom_j_inName or type of atom J in the term
atom_k_inName or type of atom K in the term
atom_l_inName or type of atom L in the term
atom_m_inName or type of atom M in the term
resi_i_inName or type of residue I in the term
resi_j_inName or type of residue J in the term
resi_k_inName or type of residue K in the term
resi_l_inName or type of residue L in the term
resi_m_inName or type of residue M in the term
surface_inSurface values for an entire CMAP
frame_type_inFrame type of the virtual site, if that is what this object contains

Member Function Documentation

◆ apply()

void stormm::modeling::ForceFieldElement::apply ( AtomGraph * ag,
ExceptionResponse policy = ExceptionResponse::SILENT ) const

Apply these force field parameters to any terms found in a specific topology.

Parameters
agThe topology to modify
policyThe way to respond if the topology has no such parameters

The documentation for this class was generated from the following files: