Loading...
Searching...
No Matches
PLP.h
Go to the documentation of this file.
// ----------------------------------------------------
// $Maintainer: Marcel Schumann $
// $Authors: Jan Fuhrmann, Marcel Schumann $
// ----------------------------------------------------
#ifndef BALL_SCORING_COMPONENTS_PLP_H
#define BALL_SCORING_COMPONENTS_PLP_H
#include <BALL/MOLMEC/COMMON/forceFieldComponent.h>
#include <BALL/MOLMEC/COMMON/forceField.h>
#include <BALL/MOLMEC/COMMON/support.h>
#include <BALL/MOLMEC/MMFF94/MMFF94Parameters.h>
namespace BALL
{
class BALL_EXPORT PLP : public ForceFieldComponent
{
public:
struct NonBondedPairData
{
Size type;
enum Type
{
steric = 0,
hydrogen_bond = 1,
// an atom pair of which both partners are taken from the same ligand molecule in order to evaluate the ligand nonbonded energy
conformation = 2
};
/*
NonBondedPairData();
double eij;
double rij;
double rij_7;
double vdw_energy; // for debugging
// for electrostatics:
bool is_1_4;
double qi;
double qj;
double es_energy; // for debugging
*/
};
#define MMFF94_ES_ENABLED "enable ES"
#define MMFF94_VDW_ENABLED "enable VDW"
BALL_CREATE(PLP)
PLP() throw();
PLP(ForceField& force_field) throw();
PLP(const PLP& MMFF94_non_bonded) throw();
virtual ~PLP() throw();
const PLP& operator = (const PLP& anb) throw();
void setRotatableBonds(std::vector<Bond*>& bonds);
static Size getAtomType(const Atom* atom);
void update(const std::vector<std::pair<Atom*, Atom*> >& atom_vector);
virtual void clear() throw();
bool operator == (const PLP& anb) throw();
bool setup(Options& options);
virtual double updateEnergy() throw();
virtual void updateForces() throw();
virtual void update();
double getVDWEnergy() const;
double getESEnergy() const;
protected:
//_ Value of the electrostatic energy
double es_energy_;
//_ Value of the vdw energy
double vdw_energy_;
static bool isNSp3(const Atom* at);
static bool isSp3(const Atom* at);
private:
struct GhTorsion
{
Atom* at1;
Atom* at2;
Atom* at3;
Atom* at4;
Size type;
};
void e1(double& d, double& e, double& delta);
void e2(double& d, double& e, double& delta);
std::vector<GhTorsion> ghtorsions_;
ForceField::PairVector atom_pair_vector_;
std::vector<NonBondedPairData> non_bonded_data_;
double cut_off_;
double vdw_cut_on_, vdw_cut_off_;
double es_cut_on_, es_cut_off_;
MMFF94VDWParameters vdw_parameters_;
// dielectric constant
double dc_;
// dielectric model exponent
double n_;
bool es_enabled_;
bool vdw_enabled_;
bool enable_es_switch_;
bool enable_vdw_switch_;
double es_d_on2_, es_d_off2_,
es_d_on_, es_d_off_,
es_ac_, es_bc_,
es_cc_, es_dc_, es_denom_, es_con_, es_cover3_, es_dover5_,
es_eadd_, es_eaddr_, es_const_, es_constr_;
std::vector<bool> dismiss_vector_;
std::vector<double> rotgrad_;
};
} //
#endif // BALL_SCORING_COMPONENTS_PLP_H
BALL_EXPORT
#define BALL_EXPORT
Definition COMMON/global.h:50
MMFF94Parameters.h
BALL::Atom
Definition atom.h:90
BALL::Bond
Definition bond.h:57
BALL::ForceFieldComponent::ForceField
friend class ForceField
Definition forceFieldComponent.h:37
BALL::ForceFieldComponent::ForceFieldComponent
ForceFieldComponent()
BALL::ForceField::PairVector
std::vector< std::pair< Atom *, Atom * > > PairVector
Definition forceField.h:99
BALL::MMFF94VDWParameters
Definition MMFF94Parameters.h:460
BALL::Options
Definition options.h:48
BALL::PLP::setRotatableBonds
void setRotatableBonds(std::vector< Bond * > &bonds)
BALL::PLP::vdw_energy_
double vdw_energy_
Definition PLP.h:118
BALL::PLP::PLP
PLP()
Default constructor.
BALL::PLP::updateForces
virtual void updateForces()
Calculates and returns the component's forces.
BALL::PLP::es_energy_
double es_energy_
Definition PLP.h:115
BALL::PLP::isSp3
static bool isSp3(const Atom *at)
BALL::PLP::getVDWEnergy
double getVDWEnergy() const
BALL::PLP::isNSp3
static bool isNSp3(const Atom *at)
BALL::PLP::clear
virtual void clear()
Clear method.
BALL::PLP::updateEnergy
virtual double updateEnergy()
Calculates and returns the component's energy.
BALL::PLP::getAtomType
static Size getAtomType(const Atom *atom)
BALL::PLP::update
void update(const std::vector< std::pair< Atom *, Atom * > > &atom_vector)
BALL::PLP::getESEnergy
double getESEnergy() const
BALL::PLP::setup
bool setup(Options &options)
BALL_CREATE
#define BALL_CREATE(name)
Definition create.h:62
forceFieldComponent.h
forceField.h
BALL
Definition constants.h:13
BALL::Size
BALL_SIZE_TYPE Size
Definition COMMON/global.h:114
BALL::bonds
BALL_EXPORT BondList bonds(const AtomContainer &fragment, bool selected_only=false)
std
STL namespace.
BALL::PLP::NonBondedPairData
Definition PLP.h:22
BALL::PLP::NonBondedPairData::Type
Type
Definition PLP.h:26
BALL::PLP::NonBondedPairData::steric
@ steric
Definition PLP.h:27
BALL::PLP::NonBondedPairData::conformation
@ conformation
Definition PLP.h:30
BALL::PLP::NonBondedPairData::hydrogen_bond
@ hydrogen_bond
Definition PLP.h:28
BALL::PLP::NonBondedPairData::type
Size type
Definition PLP.h:23
support.h