Loading...
Searching...
No Matches
MMFF94Torsion.h
Go to the documentation of this file.
// -*- Mode: C++; tab-width: 2; -*-
// vi: set ts=2:
//
// $Id: MMFF94Torsion.h,v 1.1.8.1 2007/03/25 21:25:19 oliver Exp $
//
#ifndef BALL_MOLMEC_MMFF94_MMFF94TORSION_H
#define BALL_MOLMEC_MMFF94_MMFF94TORSION_H
#ifndef BALL_MOLMEC_COMMON_FORCEFIELDCOMPONENT_H
# include <BALL/MOLMEC/COMMON/forceFieldComponent.h>
#endif
#ifndef BALL_MOLMEC_COMMON_FORCEFIELD_H
# include <BALL/MOLMEC/COMMON/forceField.h>
#endif
#ifndef BALL_MOLMEC_MMFF94_MMFF94PARAMETERS_H
# include <BALL/MOLMEC/MMFF94/MMFF94Parameters.h>
#endif
namespace BALL
{
class BALL_EXPORT MMFF94Torsion
: public ForceFieldComponent
{
public:
struct BALL_EXPORT Torsion
{
Torsion();
Index type;
Atom* atom1;
Atom* atom2;
Atom* atom3;
Atom* atom4;
double v1, v2, v3;
// for debugging:
double energy;
double angle;
bool heuristic;
};
#define MMFF94_TORSIONS_ENABLED "enable Torsions"
BALL_CREATE(MMFF94Torsion)
MMFF94Torsion();
MMFF94Torsion(ForceField& force_field);
MMFF94Torsion(const MMFF94Torsion& MMFF94_stretch);
virtual ~MMFF94Torsion();
virtual bool setup();
virtual double updateEnergy();
virtual void updateForces();
Position getTorsionType(const vector<Atom*>& atoms) const;
const vector<Torsion>& getTorsions() const { return torsions_;}
protected:
// Add a double precision TVector3 to a single precision Vector3
inline void AddDV3_(Vector3& f3, const TVector3<double> d3);
double getU_(Position e);
double getV_(Position e);
bool calculateHeuristic_(const Atom& aj, const Atom& ak, double& v1, double& v2, double& v3);
vector<Torsion> torsions_;
MMFF94TorsionParameters parameters_;
};
} // namespace BALL
#endif // BALL_MOLMEC_MMFF94_MMFF94TORSION_H
BALL_EXPORT
#define BALL_EXPORT
Definition COMMON/global.h:50
MMFF94Parameters.h
BALL::Atom
Definition atom.h:90
BALL::ForceFieldComponent::ForceField
friend class ForceField
Definition forceFieldComponent.h:37
BALL::ForceFieldComponent::ForceFieldComponent
ForceFieldComponent()
BALL::MMFF94TorsionParameters
Definition MMFF94Parameters.h:368
BALL::MMFF94Torsion::calculateHeuristic_
bool calculateHeuristic_(const Atom &aj, const Atom &ak, double &v1, double &v2, double &v3)
BALL::MMFF94Torsion::AddDV3_
void AddDV3_(Vector3 &f3, const TVector3< double > d3)
BALL::MMFF94Torsion::getTorsionType
Position getTorsionType(const vector< Atom * > &atoms) const
BALL::MMFF94Torsion::updateForces
virtual void updateForces()
BALL::MMFF94Torsion::MMFF94Torsion
MMFF94Torsion()
BALL::MMFF94Torsion::torsions_
vector< Torsion > torsions_
Definition MMFF94Torsion.h:119
BALL::MMFF94Torsion::getV_
double getV_(Position e)
BALL::MMFF94Torsion::getTorsions
const vector< Torsion > & getTorsions() const
Definition MMFF94Torsion.h:106
BALL::MMFF94Torsion::getU_
double getU_(Position e)
BALL::MMFF94Torsion::setup
virtual bool setup()
BALL::MMFF94Torsion::parameters_
MMFF94TorsionParameters parameters_
Definition MMFF94Torsion.h:120
BALL::MMFF94Torsion::updateEnergy
virtual double updateEnergy()
BALL::TVector3
Definition vector3.h:71
BALL_CREATE
#define BALL_CREATE(name)
Definition create.h:62
forceFieldComponent.h
forceField.h
BALL::atoms
BALL_EXPORT AtomList atoms(const AtomContainer &fragment, const String &expression=String())
BALL
Definition constants.h:13
BALL::Position
BALL_SIZE_TYPE Position
Definition COMMON/global.h:140
BALL::Vector3
TVector3< float > Vector3
Definition vector3.h:1084
BALL::Index
BALL_INDEX_TYPE Index
Definition COMMON/global.h:105
BALL::MMFF94Torsion::Torsion
see MMFFTOR.PAR
Definition MMFF94Torsion.h:34
BALL::MMFF94Torsion::Torsion::atom1
Atom * atom1
Definition MMFF94Torsion.h:38
BALL::MMFF94Torsion::Torsion::heuristic
bool heuristic
Definition MMFF94Torsion.h:46
BALL::MMFF94Torsion::Torsion::angle
double angle
Definition MMFF94Torsion.h:45
BALL::MMFF94Torsion::Torsion::atom2
Atom * atom2
Definition MMFF94Torsion.h:39
BALL::MMFF94Torsion::Torsion::v1
double v1
Definition MMFF94Torsion.h:42
BALL::MMFF94Torsion::Torsion::v2
double v2
Definition MMFF94Torsion.h:42
BALL::MMFF94Torsion::Torsion::energy
double energy
Definition MMFF94Torsion.h:44
BALL::MMFF94Torsion::Torsion::v3
double v3
Definition MMFF94Torsion.h:42
BALL::MMFF94Torsion::Torsion::atom4
Atom * atom4
Definition MMFF94Torsion.h:41
BALL::MMFF94Torsion::Torsion::type
Index type
Definition MMFF94Torsion.h:37
BALL::MMFF94Torsion::Torsion::Torsion
Torsion()
BALL::MMFF94Torsion::Torsion::atom3
Atom * atom3
Definition MMFF94Torsion.h:40