potential terms to restrain values of Da NOTE: these are not fully tested! These were developed to restrain the orientational .VarTensor Da values to be close to oneanother (but not necessarily identical). CosRatioPot 1/2 * scale * (cos(theta1) - ratio*cos(theta2))^2 where theta1 is one bond angle, theta2 is a second bond angle, and scale and ratio are constants. use: from potCosAngleRatio import CosAngleRatioPot term = CosRatioPot("name", AtomSel("atom 01"), AtomSel("atom a1"), AtomSel("atom b1"), AtomSel("atom 02"), AtomSel("atom a2"), AtomSel("atom b2"), [simulation]) theta1 is given by the angle a1 - 01 - b1 theta2 is given by the angle a2 - 02 - b2 [simulation is an optional simulation parameter - usually not needed.] to set the scale factor: term.scale = 100 to set the constant ratio: term.ratio = 0.2 remember to add this to the terms to be evaluated: simulation.addPot(term) ################################################## Cos2RatioPot potential term #2: 1/2 * scale * (cos(theta1)*cos(theta4) - cos(theta2)*cos(theta3))^2 where theta1, theta2, theta3, and theta4 are bond angles, and scale is a constant. Note that the minimum of this potential occurs when cos(theta1)/cos(theta2) = cos(theta3)/cos(theta4) use: from potCosAngleRatio import CosAngleRatioPot term = Cos2RatioPot("name", AtomSel("atom 01"), AtomSel("atom a1"), AtomSel("atom b1"), AtomSel("atom 02"), AtomSel("atom a2"), AtomSel("atom b2"), AtomSel("atom 03"), AtomSel("atom a3"), AtomSel("atom b3"), AtomSel("atom 04"), AtomSel("atom a4"), AtomSel("atom b4"), [simulation]) theta1 is given by the angle a1 - 01 - b1 theta2 is given by the angle a2 - 02 - b2 [simulation is an optional simulation parameter - usually not needed.] to set the scale factor: term.scale = 100 to set the constant ratio: term.ratio = 0.2