Chemical Data Processing Library C++ API - Version 1.2.0
Namespaces | Functions
MMFF94GradientFunctions.hpp File Reference

Functions for the calculation of MMFF94 interaction energy gradients. More...

#include <algorithm>
#include "CDPL/ForceField/MMFF94BondStretchingInteraction.hpp"
#include "CDPL/ForceField/MMFF94AngleBendingInteraction.hpp"
#include "CDPL/ForceField/MMFF94StretchBendInteraction.hpp"
#include "CDPL/ForceField/MMFF94OutOfPlaneBendingInteraction.hpp"
#include "CDPL/ForceField/MMFF94TorsionInteraction.hpp"
#include "CDPL/ForceField/MMFF94VanDerWaalsInteraction.hpp"
#include "CDPL/ForceField/MMFF94ElectrostaticInteraction.hpp"
#include "CDPL/ForceField/UtilityFunctions.hpp"

Go to the source code of this file.

Namespaces

 CDPL
 The namespace of the Chemical Data Processing Library.
 
 CDPL::ForceField
 Contains classes and functions related to molecular force fields.
 

Functions

template<typename ValueType , typename Iter , typename CoordsArray , typename GradVector >
ValueType CDPL::ForceField::calcMMFF94BondStretchingGradient (Iter beg, const Iter &end, const CoordsArray &coords, GradVector &grad)
 
template<typename ValueType , typename CoordsArray , typename GradVector >
ValueType CDPL::ForceField::calcMMFF94BondStretchingGradient (const MMFF94BondStretchingInteraction &iaction, const CoordsArray &coords, GradVector &grad)
 
template<typename ValueType , typename CoordsVec , typename GradVec >
ValueType CDPL::ForceField::calcMMFF94BondStretchingGradient (const CoordsVec &atom1_pos, const CoordsVec &atom2_pos, GradVec &atom1_grad, GradVec &atom2_grad, const ValueType &force_const, const ValueType &ref_length)
 Calculates the bond stretching interaction energy gradient \( \nabla EB_{ij} \) for the bond i-j. More...
 
template<typename ValueType , typename Iter , typename CoordsArray , typename GradVector >
ValueType CDPL::ForceField::calcMMFF94AngleBendingGradient (Iter beg, const Iter &end, const CoordsArray &coords, GradVector &grad)
 
template<typename ValueType , typename CoordsArray , typename GradVector >
ValueType CDPL::ForceField::calcMMFF94AngleBendingGradient (const MMFF94AngleBendingInteraction &iaction, const CoordsArray &coords, GradVector &grad)
 
template<typename ValueType , typename CoordsVec , typename GradVec >
ValueType CDPL::ForceField::calcMMFF94AngleBendingGradient (const CoordsVec &term_atom1_pos, const CoordsVec &ctr_atom_pos, const CoordsVec &term_atom2_pos, GradVec &term_atom1_grad, GradVec &ctr_atom_grad, GradVec &term_atom2_grad, bool linear, const ValueType &force_const, const ValueType &ref_angle)
 Calculates the angle bending interaction energy gradient \( \nabla EA_{ijk} \) for two bonds i-j and j-k. More...
 
template<typename ValueType , typename Iter , typename CoordsArray , typename GradVector >
ValueType CDPL::ForceField::calcMMFF94StretchBendGradient (Iter beg, const Iter &end, const CoordsArray &coords, GradVector &grad)
 
template<typename ValueType , typename CoordsArray , typename GradVector >
ValueType CDPL::ForceField::calcMMFF94StretchBendGradient (const MMFF94StretchBendInteraction &iaction, const CoordsArray &coords, GradVector &grad)
 
template<typename ValueType , typename CoordsVec , typename GradVec >
ValueType CDPL::ForceField::calcMMFF94StretchBendGradient (const CoordsVec &term_atom1_pos, const CoordsVec &ctr_atom_pos, const CoordsVec &term_atom2_pos, GradVec &term_atom1_grad, GradVec &ctr_atom_grad, GradVec &term_atom2_grad, const ValueType &ijk_force_const, const ValueType &kji_force_const, const ValueType &ref_angle, const ValueType &ref_length1, const ValueType &ref_length2)
 Calculates the stretch-bend interaction energy gradient \( \nabla EBA_{ijk} \) for two bonds i-j and j-k. More...
 
template<typename ValueType , typename Iter , typename CoordsArray , typename GradVector >
ValueType CDPL::ForceField::calcMMFF94OutOfPlaneBendingGradient (Iter beg, const Iter &end, const CoordsArray &coords, GradVector &grad)
 
template<typename ValueType , typename CoordsArray , typename GradVector >
ValueType CDPL::ForceField::calcMMFF94OutOfPlaneBendingGradient (const MMFF94OutOfPlaneBendingInteraction &iaction, const CoordsArray &coords, GradVector &grad)
 
template<typename ValueType , typename CoordsVec , typename GradVec >
ValueType CDPL::ForceField::calcMMFF94OutOfPlaneBendingGradient (const CoordsVec &term_atom1_pos, const CoordsVec &ctr_atom_pos, const CoordsVec &term_atom2_pos, const CoordsVec &oop_atom_pos, GradVec &term_atom1_grad, GradVec &ctr_atom_grad, GradVec &term_atom2_grad, GradVec &oop_atom_grad, const ValueType &force_const)
 Calculates the out-of-plane bending interaction energy gradient \( \nabla EOOP_{ijk;l} \) for the bond j-l and the plane i-j-k. More...
 
template<typename ValueType , typename Iter , typename CoordsArray , typename GradVector >
ValueType CDPL::ForceField::calcMMFF94TorsionGradient (Iter beg, const Iter &end, const CoordsArray &coords, GradVector &grad)
 
template<typename ValueType , typename CoordsArray , typename GradVector >
ValueType CDPL::ForceField::calcMMFF94TorsionGradient (const MMFF94TorsionInteraction &iaction, const CoordsArray &coords, GradVector &grad)
 
template<typename ValueType , typename CoordsVec , typename GradVec >
ValueType CDPL::ForceField::calcMMFF94TorsionGradient (const CoordsVec &term_atom1_pos, const CoordsVec &ctr_atom1_pos, const CoordsVec &ctr_atom2_pos, const CoordsVec &term_atom2_pos, GradVec &term_atom1_grad, GradVec &ctr_atom1_grad, GradVec &ctr_atom2_grad, GradVec &term_atom2_grad, const ValueType &tor_param1, const ValueType &tor_param2, const ValueType &tor_param3)
 Calculates the torsion interaction energy gradient \( \nabla ET_{ijkl} \) for the central bond j-k and the connected bonds i-j and k-l. More...
 
template<typename ValueType , typename Iter , typename CoordsArray , typename GradVector >
ValueType CDPL::ForceField::calcMMFF94ElectrostaticGradient (Iter beg, const Iter &end, const CoordsArray &coords, GradVector &grad)
 
template<typename ValueType , typename CoordsArray , typename GradVector >
ValueType CDPL::ForceField::calcMMFF94ElectrostaticGradient (const MMFF94ElectrostaticInteraction &iaction, const CoordsArray &coords, GradVector &grad)
 
template<typename ValueType , typename CoordsVec , typename GradVec >
ValueType CDPL::ForceField::calcMMFF94ElectrostaticGradient (const CoordsVec &atom1_pos, const CoordsVec &atom2_pos, GradVec &atom1_grad, GradVec &atom2_grad, const ValueType &atom1_chg, const ValueType &atom2_chg, const ValueType &scale_fact, const ValueType &de_const, const ValueType &dist_expo)
 Calculates the electrostatic interaction energy gradient \( \nabla EQ_{ij} \) for the atom pair i-j. More...
 
template<typename ValueType , typename Iter , typename CoordsArray , typename GradVector >
ValueType CDPL::ForceField::calcMMFF94VanDerWaalsGradient (Iter beg, const Iter &end, const CoordsArray &coords, GradVector &grad)
 
template<typename ValueType , typename CoordsArray , typename GradVector >
ValueType CDPL::ForceField::calcMMFF94VanDerWaalsGradient (const MMFF94VanDerWaalsInteraction &iaction, const CoordsArray &coords, GradVector &grad)
 
template<typename ValueType , typename CoordsVec , typename GradVec >
ValueType CDPL::ForceField::calcMMFF94VanDerWaalsGradient (const CoordsVec &atom1_pos, const CoordsVec &atom2_pos, GradVec &atom1_grad, GradVec &atom2_grad, const ValueType &e_IJ, const ValueType &r_IJ, const ValueType &r_IJ_7)
 Calculates the van der Waals interaction energy gradient \( \nabla E_{vdW_{ij}} \) for the atom pair i-j. More...
 

Detailed Description

Functions for the calculation of MMFF94 interaction energy gradients.