meshi.energy.simpleEnergyTerms.angle
Class AngleEnergy
java.lang.Object
meshi.energy.AbstractEnergy
meshi.energy.simpleEnergyTerms.SimpleEnergyTerm
meshi.energy.simpleEnergyTerms.angle.AngleEnergy
- All Implemented Interfaces:
- Attributable, Updateable
public class AngleEnergy
- extends SimpleEnergyTerm
Angle energy term.
Has the general form E = SIGMAi(Ki(Ti-D0i)^2)
where Ti
is the angle between three consecutive atoms, D0i
is their expected average angle (depends on their types) and Ki
is a force constant that again, depends on the atom types.
This class is used for both calculating the angle-energy term of an energy function
and for updating the forces on each atom accordingly.
It is assumed that the list of angles is constant during the simulation.
The numerical method was addapted from Ron Elber's Moil.
Important Note: This energy term has a non-continous point at angle values of 0 or Pi.
In order to circumvent these discontinuites we modified the regular parabolic form of this
term near the problematic values. At about ~10 degrees (the exact value is hard coded in class
AngleEnergyElement) from both 0 and PI the energy starts to climb very steeply so that energetic
values of infinity are set to the discontinuous points. We thus hope the simulation could never
reach them. On very rare starting condition, however, these problems might never the less be
encountered.
| Methods inherited from class meshi.energy.AbstractEnergy |
addAttribute, comment, getAttribute, handleMissingParameters, isOn, off, on, toArray, toArray, toArray, toArray, toString, update |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
angleList
protected AngleList angleList
- The list of angles that needs to be evaluated.
distanceMatrix
protected DistanceMatrix distanceMatrix
AngleEnergy
public AngleEnergy(AngleList angleList,
DistanceMatrix distanceMatrix,
AngleParametersList parametersList,
double weight)
createElement
public EnergyElement createElement(java.lang.Object baseElement,
Parameters parameters)
- Specified by:
createElement in class SimpleEnergyTerm