FOX/ObjCryst++  1.10.X (development)
ObjCryst::MolDihedralAngle Class Reference

Dihedral angle restraint between 4 atoms. More...

+ Inheritance diagram for ObjCryst::MolDihedralAngle:
+ Collaboration diagram for ObjCryst::MolDihedralAngle:

Public Member Functions

 MolDihedralAngle (MolAtom &atom1, MolAtom &atom2, MolAtom &atom3, MolAtom &atom4, const REAL angle, const REAL sigma, const REAL delta, Molecule &parent)
 Constructor. More...
virtual ~MolDihedralAngle ()
 Destructor. More...
const MoleculeGetMolecule () const
MoleculeGetMolecule ()
string GetName () const
virtual void XMLOutput (ostream &os, int indent=0) const
virtual void XMLInput (istream &is, const XMLCrystTag &tag)
virtual REAL GetLogLikelihood () const
 Get -ln(likelihood) for this restraint.
REAL GetLogLikelihood (const bool calcDeriv, const bool recalc) const
REAL GetDeriv (const std::map< const MolAtom *, XYZ > &m, const bool llk=false) const
 Get the derivative of the Angle, given the derivatives of the atom positions This requires that GetLogLikelihood(calcDeriv=true) be called first If llk=true, this will return the derivative of the llk rather than the derivative of the length or angle.
void CalcGradient (std::map< MolAtom *, XYZ > &m) const
 Calc log(likelihood) gradient - versus all atomic coordinates. More...
REAL GetAngle () const
REAL & Angle0 ()
REAL & AngleDelta ()
REAL & AngleSigma ()
REAL GetAngle0 () const
REAL GetAngleDelta () const
REAL GetAngleSigma () const
void SetAngle0 (const REAL angle)
void SetAngleDelta (const REAL delta)
void SetAngleSigma (const REAL sigma)
const MolAtomGetAtom1 () const
const MolAtomGetAtom2 () const
const MolAtomGetAtom3 () const
const MolAtomGetAtom4 () const
void SetAtom1 (MolAtom &at)
void SetAtom2 (MolAtom &at)
void SetAtom3 (MolAtom &at)
void SetAtom4 (MolAtom &at)
MolAtomGetAtom1 ()
MolAtomGetAtom2 ()
MolAtomGetAtom3 ()
MolAtomGetAtom4 ()
- Public Member Functions inherited from ObjCryst::Restraint
 Restraint ()
 Default constructor, sets RefParType to gpRefParTypeObjCryst.
 Restraint (const RefParType *type)
 constructor specifying the type
virtual const RefParTypeGetType () const
virtual void SetType (const RefParType *type)

Private Attributes

vector< MolAtom * > mvpAtom
 The vector of the 4 atoms involved in the bond angle.
REAL mAngle0
REAL mDelta
REAL mSigma
 Parent Molecule.
 Stored log(likelihood)
XYZ mDerivAtom1
 Partial derivatives of the angle with respect to the coordinates of the atoms. More...
XYZ mDerivAtom2
XYZ mDerivAtom3
XYZ mDerivAtom4
REAL mDerivLLKCoeff
 The factor used to change the derivative of the length/angle, to the derivative of the log(likelihood). More...

Detailed Description

Dihedral angle restraint between 4 atoms.

The atoms involved need not be bonded.

Definition at line 346 of file Molecule.h.

Constructor & Destructor Documentation

ObjCryst::MolDihedralAngle::MolDihedralAngle ( MolAtom atom1,
MolAtom atom2,
MolAtom atom3,
MolAtom atom4,
const REAL  angle,
const REAL  sigma,
const REAL  delta,
Molecule parent 


Definition at line 930 of file Molecule.cpp.

ObjCryst::MolDihedralAngle::~MolDihedralAngle ( )


Definition at line 951 of file Molecule.cpp.

Member Function Documentation

void ObjCryst::MolDihedralAngle::CalcGradient ( std::map< MolAtom *, XYZ > &  m) const

Calc log(likelihood) gradient - versus all atomic coordinates.

mthis map should have been initialized by adding all possible atom pointers as keys, with all XYZ values equal to zeros. On return, the derivative of the log(likelihood) vs each atomic coordinates will added to each coordinate of the corresponding atoms.

Definition at line 1213 of file Molecule.cpp.

Member Data Documentation

XYZ ObjCryst::MolDihedralAngle::mDerivAtom1

Partial derivatives of the angle with respect to the coordinates of the atoms.

The derivatives are calculated in MolBondAngle::GetLogLikelihood(true)

Definition at line 413 of file Molecule.h.

REAL ObjCryst::MolDihedralAngle::mDerivLLKCoeff

The factor used to change the derivative of the length/angle, to the derivative of the log(likelihood).

e.g. (for mDelta=0) $ mDerivLLKCoeff = \frac{L-L_0}{\sigma^2} $

Definition at line 417 of file Molecule.h.

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