ObjCryst++  1.5CVS
Public Member Functions | Private Attributes
ObjCryst::MolDihedralAngle Class Reference

Dihedral angle restraint between 4 atoms. More...

Inheritance diagram for ObjCryst::MolDihedralAngle:
ObjCryst::Restraint

List of all members.

Public Member Functions

 MolDihedralAngle (MolAtom &atom1, MolAtom &atom2, MolAtom &atom3, MolAtom &atom4, const REAL angle, const REAL sigma, const REAL delta, Molecule &parent)
 Constructor.
virtual ~MolDihedralAngle ()
 Destructor.
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.
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 mAngle
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.
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).

Detailed Description

Dihedral angle restraint between 4 atoms.

The atoms involved need not be bonded.


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.

   
virtual ObjCryst::MolDihedralAngle::~MolDihedralAngle ( )
virtual

Destructor.

   

Member Function Documentation

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

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

Parameters:
m,:this 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.

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)

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} $


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