FOX/ObjCryst++
1.10.X (development)

Atoms moved between two other atoms, using a "twist" of their positions  only small twists of their positions are allowed to avoid breaking restraints too much. More...
Public Member Functions  
StretchModeTwist (MolAtom &at1, MolAtom &at2)  
Constructor If pDihedralAngle!=0, the dihedral angle length restraint is respected.  
virtual void  CalcDeriv (const bool derivllk=true) const 
Calculate the derivative of the Molecule's Log(likelihood) and atomic positions versus a change of the bond length. More...  
virtual void  Print (ostream &os, bool full=true) const 
Print oneline list of atoms moved.  
virtual void  Stretch (const REAL change, const bool keepCenter=true) 
Move the atoms according to this mode.  
virtual void  RandomStretch (const REAL amplitude, const bool keepCenter=true) 
Move the atoms according to this mode, randomly.  
Public Attributes  
MolAtom *  mpAtom1 
The first atom.  
MolAtom *  mpAtom2 
The second atom.  
set< MolAtom * >  mvRotatedAtomList 
The set of atoms that are to be rotated around at1at2.  
Public Attributes inherited from ObjCryst::StretchMode  
std::map< const MolBond *, REAL >  mvpBrokenBond 
List of bond restraints affected by this mode The key is the restraint, the value is the derivative of the LLK associated.  
std::map< const MolBondAngle *, REAL >  mvpBrokenBondAngle 
List of bond angle restraints modified by this mode The key is the restraint, the value is the derivative of the LLK associated.  
std::map< const MolDihedralAngle *, REAL >  mvpBrokenDihedralAngle 
List of dihedral angle restraints modified by this mode The key is the restraint, the value is the derivative of the LLK associated.  
REAL  mLLKDeriv 
Derivative of the Molecule's Log(likelihood) versus a change of the bond length.  
std::map< const MolAtom *, XYZ >  mDerivXYZ 
Derivative of the atomic positions versus a change of the bond length.  
Molecule *  mpMol 
The Molecule corresponding to this stretch mode.  
REAL  mBaseAmplitude 
The recommended change amplitude, for a base global optimization displacement, to obtain an average 0.1 Angstroem displacement. More...  
Atoms moved between two other atoms, using a "twist" of their positions  only small twists of their positions are allowed to avoid breaking restraints too much.
Also, the atoms in the middle between the two reference atoms are more displaced than the one closer, to help avoid breaking restraints.
Definition at line 658 of file Molecule.h.

virtual 
Calculate the derivative of the Molecule's Log(likelihood) and atomic positions versus a change of the bond length.
The result is stored in mLLKDeriv and mLLKDerivXYZ, as well as in the various lists of restraints broken by this mode.
derivllk  if false, the derivative of the overall llk will not be computed, only the derivative of the atomic positions. 
Implements ObjCryst::StretchMode.
Definition at line 1775 of file Molecule.cpp.