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
 
MoleculempMol
 Parent Molecule.
 
REAL mLLK
 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 
)

Constructor.

Definition at line 930 of file Molecule.cpp.

ObjCryst::MolDihedralAngle::~MolDihedralAngle ( )
virtual

Destructor.

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.

Parameters
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
mutableprivate

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
mutableprivate

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: