Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

ObjCryst::MolBondAngle Class Reference

Bond angle restraint between 3 atoms. More...

Inheritance diagram for ObjCryst::MolBondAngle:

Inheritance graph
[legend]
Collaboration diagram for ObjCryst::MolBondAngle:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 MolBondAngle (MolAtom &atom1, MolAtom &atom2, MolAtom &atom3, const REAL angle, const REAL sigma, const REAL delta, Molecule &parent)
 Constructor.

virtual ~MolBondAngle ()
 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.

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
void SetAtom1 (MolAtom &at)
void SetAtom2 (MolAtom &at)
void SetAtom3 (MolAtom &at)
MolAtomGetAtom1 ()
MolAtomGetAtom2 ()
MolAtomGetAtom3 ()
bool IsFlexible () const
void SetFlexible (const bool isInRing)

Private Attributes

vector< MolAtom * > mvpAtom
 The vector of the 3 atoms involved in the bond angle.

REAL mAngle0
REAL mDelta
REAL mSigma
MoleculempMol
 Parent Molecule.

bool mIsFlexible
 When using the user-chosen flexibility model, this allows some flexibility for this bond angle, i.e.

REAL mLLK
 Stored log(likelihood).

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

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

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

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


Detailed Description

Bond angle restraint between 3 atoms.

The atoms involved need not be bonded.


Constructor & Destructor Documentation

ObjCryst::MolBondAngle::MolBondAngle MolAtom atom1,
MolAtom atom2,
MolAtom atom3,
const REAL  angle,
const REAL  sigma,
const REAL  delta,
Molecule parent
 

Constructor.

virtual ObjCryst::MolBondAngle::~MolBondAngle  )  [virtual]
 

Destructor.


Member Function Documentation

REAL& ObjCryst::MolBondAngle::Angle0  ) 
 

REAL& ObjCryst::MolBondAngle::AngleDelta  ) 
 

REAL& ObjCryst::MolBondAngle::AngleSigma  ) 
 

REAL ObjCryst::MolBondAngle::GetAngle  )  const
 

REAL ObjCryst::MolBondAngle::GetAngle0  )  const
 

REAL ObjCryst::MolBondAngle::GetAngleDelta  )  const
 

REAL ObjCryst::MolBondAngle::GetAngleSigma  )  const
 

MolAtom& ObjCryst::MolBondAngle::GetAtom1  ) 
 

const MolAtom& ObjCryst::MolBondAngle::GetAtom1  )  const
 

MolAtom& ObjCryst::MolBondAngle::GetAtom2  ) 
 

const MolAtom& ObjCryst::MolBondAngle::GetAtom2  )  const
 

MolAtom& ObjCryst::MolBondAngle::GetAtom3  ) 
 

const MolAtom& ObjCryst::MolBondAngle::GetAtom3  )  const
 

REAL ObjCryst::MolBondAngle::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.

REAL ObjCryst::MolBondAngle::GetLogLikelihood const bool  calcDeriv,
const bool  recalc
const
 

virtual REAL ObjCryst::MolBondAngle::GetLogLikelihood  )  const [virtual]
 

Get -ln(likelihood) for this restraint.

Reimplemented from ObjCryst::Restraint.

Molecule& ObjCryst::MolBondAngle::GetMolecule  ) 
 

const Molecule& ObjCryst::MolBondAngle::GetMolecule  )  const
 

string ObjCryst::MolBondAngle::GetName  )  const
 

bool ObjCryst::MolBondAngle::IsFlexible  )  const
 

void ObjCryst::MolBondAngle::SetAngle0 const REAL  angle  ) 
 

void ObjCryst::MolBondAngle::SetAngleDelta const REAL  delta  ) 
 

void ObjCryst::MolBondAngle::SetAngleSigma const REAL  sigma  ) 
 

void ObjCryst::MolBondAngle::SetAtom1 MolAtom at  ) 
 

void ObjCryst::MolBondAngle::SetAtom2 MolAtom at  ) 
 

void ObjCryst::MolBondAngle::SetAtom3 MolAtom at  ) 
 

void ObjCryst::MolBondAngle::SetFlexible const bool  isInRing  ) 
 

virtual void ObjCryst::MolBondAngle::XMLInput istream &  is,
const XMLCrystTag tag
[virtual]
 

virtual void ObjCryst::MolBondAngle::XMLOutput ostream &  os,
int  indent = 0
const [virtual]
 


Member Data Documentation

REAL ObjCryst::MolBondAngle::mAngle0 [private]
 

REAL ObjCryst::MolBondAngle::mDelta [private]
 

XYZ ObjCryst::MolBondAngle::mDerivAtom1 [mutable, private]
 

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

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

XYZ ObjCryst::MolBondAngle::mDerivAtom2 [mutable, private]
 

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

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

XYZ ObjCryst::MolBondAngle::mDerivAtom3 [mutable, private]
 

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

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

REAL ObjCryst::MolBondAngle::mDerivLLKCoeff [mutable, private]
 

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

bool ObjCryst::MolBondAngle::mIsFlexible [private]
 

When using the user-chosen flexibility model, this allows some flexibility for this bond angle, i.e.

the bond angle does not remain strictly rigid, and is still restrained.

REAL ObjCryst::MolBondAngle::mLLK [mutable, private]
 

Stored log(likelihood).

Molecule* ObjCryst::MolBondAngle::mpMol [private]
 

Parent Molecule.

REAL ObjCryst::MolBondAngle::mSigma [private]
 

vector<MolAtom*> ObjCryst::MolBondAngle::mvpAtom [private]
 

The vector of the 3 atoms involved in the bond angle.


The documentation for this class was generated from the following file:
Generated on Tue Nov 14 15:03:57 2006 for ObjCryst++ by doxygen 1.3.6