OEFFParams

Attention

This API is currently available in C++ and Python.

class OEFFParams

The OEFFParams is an abstract base class. This class defines the interface to retrieve parameters defined by a force field. In addition, simple methods are included for facile extraction of idealized geometric information base on the force field.

The OEFFParams class defines the following public methods:
The following classes derive from this class:

CreateCopy

OEFFParams *CreateCopy() const

This method returns a deep copy of the OEFFParams derived object. The copy of the object returned is in memory owned by the user making the function call. The delete operator must be called for the returned pointer when the copy is no longer needed in order to avoid memory leaks.

GetAtomTypeIndex

unsigned int GetAtomTypeIndex(unsigned int) const

Provides interface to get an atom type index for the atom identified by the force field type passed as an argument. The point is that a number of chemically different atom types in the force field can belong to a single type for which force filed parameters are defined.

GetAtomTypeName

const char *GetAtomTypeName(unsigned int) const

Provides interface to convert the integer force field atom type into a symbolic type.

GetBendParams

bool GetBendParams(OEInteractParams &, const OEChem::OEAtomBase *,
                   const OEChem::OEAtomBase *,
                   const OEChem::OEAtomBase *) const

Defines the interface for retrieving the parameters used in calculating a bond-angle interaction. The central atom of the angle bend must be passed as the third argument to the method (atom2). Overriding methods return true only if valid parameters exist for bond-angle defined by the atoms passed. OEFFParams.PrepMol must be called for the molecule prior to calling prior to using this method.

GetContactDistance

bool GetContactDistance(double &, const OEChem::OEAtomBase *,
                        const OEChem::OEAtomBase *) const

Provides the interface for retrieving the distance between two atoms corresponding to the minimum on their VdW potential curve. The double precision floating point reference passed as the first argument to the method is assigned to the contact distance for the two atoms if it is defined by the force field. The method returns true only if a valid force field parameter for the interaction exists. OEFFParams.PrepMol must be called for the molecule prior to using this method.

GetCoulombParams

bool GetCoulombParams(OEInteractParams &, const OEChem::OEAtomBase *,
                      const OEChem::OEAtomBase *) const

Defines the interface for retrieving the parameters used in calculating an electrostatic interaction for two atoms. Overriding methods return true only if valid parameters exist for the atoms passed as the second and third arguments, otherwise they return false. OEFFParams.PrepMol must be called for the molecule prior to using this method.

GetEquilibriumAngle

bool GetEquilibriumAngle(double &, const OEChem::OEAtomBase *,
                         const OEChem::OEAtomBase *,
                         const OEChem::OEAtomBase *) const

This method is used to retrieve the equilibrium bond angle for the three atoms passed to it. The second atom passed to the method (atom2) must be the central atom of the requested bond angle. The double precision floating point reference passed as the first argument to the method is assigned to the equilibrium bond angle if it is defined by the force field. The method returns true only if a valid force field parameter for the interaction exists. OEFFParams.PrepMol must be called for the molecule prior to using this method.

GetEquilibriumBondLength

bool GetEquilibriumBondLength(double &, const OEChem::OEBondBase *) const

This method is used to retrieve the equilibrium bond length for the bond passed as the second argument. The double precision floating point reference passed as the first argument to the method is assigned to the equilibrium bond length if it is defined by the force field. The method returns true only if a valid force field parameter for the bond exists. OEFFParams.PrepMol must be called for the molecule prior to using this method.

GetOutOfPlaneParams

bool GetOutOfPlaneParams(OEInteractParams &, const OEChem::OEAtomBase *,
                         const OEChem::OEAtomBase *, const OEChem::OEAtomBase *,
                         const OEChem::OEAtomBase *) const

Defines the interface for retrieving the parameters used in calculating an improper-torsion angle (out of plane) interaction. The atoms which define the improper-torsion are passed as the second, third, fourth, and fifth arguments, with the central atom of the torsion passed as the third argument. Overriding methods return true only if valid parameters exist for the atoms passed to them. Overriding methods return false if force field parameters do not exist for the interaction. OEFFParams.PrepMol must be called for the molecule prior to using this method.

GetStretchBendParams

bool GetStretchBendParams(OEInteractParams &, const OEChem::OEAtomBase *,
                          const OEChem::OEAtomBase *,
                          const OEChem::OEAtomBase *) const

Defines the interface for retrieving the parameters used in calculating a stretch-bend interaction. The central atom of the bond-angle must be passed as the third argument to the method. Overriding methods return true only if valid parameters exist for the atoms passed as arguments, otherwise they should return false. OEFFParams.PrepMol must be called for the molecule prior to using this method.

GetStretchParams

bool GetStretchParams(OEInteractParams &, const OEChem::OEBondBase *) const

Defines the interface for retrieving the parameters used in calculating a bond stretch interaction. Overriding methods return true only if valid parameters exist for the bond passed as the second argument, otherwise they should return false. OEFFParams.PrepMol must be called for the molecule prior to using this method.

GetTorsionParams

bool GetTorsionParams(OEInteractParams &, const OEChem::OEAtomBase *,
                      const OEChem::OEAtomBase *, const OEChem::OEAtomBase *,
                      const OEChem::OEAtomBase *) const

Defines the interface for retrieving the parameters used in calculating a torsion angle interaction. The atoms which define the torsion angle are to be passed in order from one end of the torsion to the other as the second, third, fourth, and fifth arguments, respectively. Overriding methods return true only if valid parameters exist for the atoms passed to them, otherwise they should return false. OEFFParams.PrepMol must be called for the molecule prior to using this method.

GetVdwParams

bool GetVdwParams(OEInteractParams &, const OEChem::OEAtomBase *,
                  const OEChem::OEAtomBase *) const

Defines the interface for retrieving the parameters used in calculating a VdW interaction for two atoms. Overriding methods return true only if valid parameters exist for the atoms passed as the second and third arguments, otherwise they should return false. OEFFParams.PrepMol must be called for the molecule prior to using this method.

GetVdwRadius

bool GetVdwRadius(double &, const OEChem::OEAtomBase *atm) const

Defines the interface for retrieving the VdW radius for an atom. Overriding methods return true only if a VdW radius can be calculated or retrieved for an atom, false otherwise. OEFFParams.PrepMol must be called for the molecule prior to using this method.

PrepMol

bool PrepMol(OEChem::OEMolBase &mol, bool sweep=true, bool warnOK=true) const

Defines the interface for preparing a molecule for force field parameter retrieval. Atom types, names, partial charges, and indices stored within the molecule may be modified by overriding methods. The second argument to the method specifies whether a call to OEMolBase.Sweep is allowed during the preparation. By default, sweeping a molecule is allowed by the method. A return value of true indicates a successful preparation, however, if the method returns false calculations with the resultant modified molecule should not be attempted. The return value of this method should always be checked before use with its associated force field and components.