AtomLeafAgentManager.AgentSource<IntegratorHard.Agent>
, BoxEventListener
, INeighborListListener
IntegratorHardMDMC
, IntegratorHardPiston
public class IntegratorHard extends IntegratorMD implements INeighborListListener, AtomLeafAgentManager.AgentSource<IntegratorHard.Agent>
Modifier and Type | Class | Description |
---|---|---|
static class |
IntegratorHard.Agent |
Agent defined by this integrator.
|
protected static class |
IntegratorHard.CollisionHandlerUp |
|
static interface |
IntegratorHard.CollisionListener |
Integrator.Forcible, Integrator.Torquable
IntegratorMD.ThermostatType, IntegratorMD.VectorSource
Modifier and Type | Field | Description |
---|---|---|
protected AtomLeafAgentManager<IntegratorHard.Agent> |
agentManager |
|
protected double |
collisionTimeStep |
|
protected IteratorDirective |
downList |
|
protected TreeList |
eventList |
|
protected AtomArrayList |
listToUpdate |
|
protected IteratorDirective |
upList |
eventManager, initialized, interval, stepCount
box, currentPotentialEnergy, isothermal, meterPE, potentialMaster, space, temperature
alwaysScaleMomenta, atomActionRandomizeVelocity, currentKineticEnergy, currentTime, integratorMC, mcSteps, meterKE, meterTemperature, momentum, nAccepted, nRejected, oldEnergy, oldPositionAgentManager, oldPotentialEnergy, random, temperatureVec, thermostat, thermostatCount, thermostatInterval, thermostatNoDrift, thermostatting, timeStep
Constructor | Description |
---|---|
IntegratorHard(PotentialMaster potentialMaster,
IRandom random,
double timeStep,
double temperature,
Box box) |
|
IntegratorHard(Simulation sim,
PotentialMaster potentialMaster,
Box box) |
Modifier and Type | Method | Description |
---|---|---|
void |
addCollisionListener(IntegratorHard.CollisionListener cl) |
Registers an object that implements the CollisionListener interface.
|
protected void |
advanceAcrossTimeStep(double tStep) |
Advances all atom coordinates by tStep, without any intervening collisions.
|
void |
boxMoleculeAdded(BoxMoleculeEvent e) |
Called when a molecule is added to the box.
|
protected void |
doStepInternal() |
Steps all atoms across time interval timeStep, handling all intervening collisions.
|
long |
getCollisionCount() |
|
IntegratorHard.Agent |
getLastColliderAgent() |
|
PotentialHard |
getNullPotential(AtomType atomType) |
|
IntegratorHard.Agent |
makeAgent(IAtom a,
Box agentBox) |
Produces the Agent for this integrator.
|
void |
neighborListNeighborsUpdated() |
|
protected void |
processReverseList() |
Recalculate collision times (up) for any atoms atoms in the "reverse"
list of atoms that thought they would collide with an atom that's
changed.
|
protected void |
randomizeMomenta() |
Updates collision times appropriately after randomizing momenta
as part of the Andersen thermostat.
|
protected void |
randomizeMomentum(IAtomKinetic atom) |
Updates collision time appropriately after randomizing momentum
as part of the Andersen thermostat.
|
protected void |
randomizeTotalKE() |
Updates collision times appropriately after randomizing momenta
as part of the Andersen scaling thermostat.
|
void |
releaseAgent(IntegratorHard.Agent agent,
IAtom atom,
Box agentBox) |
This informs the agent source that the agent is going away and that
the agent source should disconnect the agent from other elements.
|
void |
removeCollisionListener(IntegratorHard.CollisionListener cl) |
De-registers an object from the list of collision listeners.
|
void |
reset() |
Performs superclass reset actions and recalculated currentPotentialEnergy
|
void |
resetStepCount() |
This method resets the step counter.
|
protected void |
scaleMomenta() |
Updates collision times appropriately after scaling momenta.
|
void |
setNullPotential(PotentialHard nullPotential,
AtomType type) |
Sets the "null" potential for the given AtomType.
|
void |
setTemperature(double temperature) |
|
protected void |
updateAtom(IAtom a) |
updates collision time for a single atom (and any atom that might a
collision with the atom)
|
protected void |
updateAtoms(AtomPair colliders) |
Updates collision times/partners for collider and partner, and
for atoms that were to collide with one of them.
|
doStep, getEventInterval, getEventManager, getStepCount, isInitialized, setEventInterval
getBox, getMeterPotentialEnergy, getPotentialEnergy, getPotentialMaster, getTemperature, getTemperatureDimension, isIsothermal, setBox, setMeterPotentialEnergy
boxAtomLeafIndexChanged, boxGlobalAtomLeafIndexChanged, boxMoleculeIndexChanged, boxMoleculeRemoved, boxNumberMolecules, doThermostat, doThermostatInternal, getAlwaysScaleRandomizedMomenta, getCurrentTime, getHybridAcceptance, getIntegratorMC, getKineticEnergy, getMeterTemperature, getThermostat, getThermostatInterval, getTimeStep, isThermostatNoDrift, resetHybridAcceptance, scaleMomenta, setAlwaysScaleRandomizedMomenta, setIntegratorMC, setIsothermal, setMeterTemperature, setThermostat, setThermostatInterval, setThermostatNoDrift, setTimeStep, setup, shiftMomenta
protected final IteratorDirective upList
protected final IteratorDirective downList
protected final AtomArrayList listToUpdate
protected final TreeList eventList
protected double collisionTimeStep
protected final AtomLeafAgentManager<IntegratorHard.Agent> agentManager
public IntegratorHard(Simulation sim, PotentialMaster potentialMaster, Box box)
public IntegratorHard(PotentialMaster potentialMaster, IRandom random, double timeStep, double temperature, Box box)
public void setTemperature(double temperature)
setTemperature
in class IntegratorMD
temperature
- the new temperaturepublic IntegratorHard.Agent getLastColliderAgent()
protected void doStepInternal()
doStepInternal
in class IntegratorMD
public void resetStepCount()
Integrator
resetStepCount
in class IntegratorMD
public long getCollisionCount()
protected void updateAtoms(AtomPair colliders)
protected void updateAtom(IAtom a)
protected void processReverseList()
protected void advanceAcrossTimeStep(double tStep)
public void reset()
IntegratorBox
reset
in class IntegratorMD
public void neighborListNeighborsUpdated()
neighborListNeighborsUpdated
in interface INeighborListListener
public void boxMoleculeAdded(BoxMoleculeEvent e)
BoxEventListener
boxMoleculeAdded
in interface BoxEventListener
boxMoleculeAdded
in class IntegratorMD
e
- the event, which contains the added molecule and the box to
which it was added.protected void scaleMomenta()
scaleMomenta
in class IntegratorMD
protected void randomizeMomenta()
randomizeMomenta
in class IntegratorMD
protected void randomizeTotalKE()
randomizeTotalKE
in class IntegratorMD
protected void randomizeMomentum(IAtomKinetic atom)
randomizeMomentum
in class IntegratorMD
atom
- whose momenta is be randomizedpublic void addCollisionListener(IntegratorHard.CollisionListener cl)
public void removeCollisionListener(IntegratorHard.CollisionListener cl)
public PotentialHard getNullPotential(AtomType atomType)
public void setNullPotential(PotentialHard nullPotential, AtomType type)
public IntegratorHard.Agent makeAgent(IAtom a, Box agentBox)
makeAgent
in interface AtomLeafAgentManager.AgentSource<IntegratorHard.Agent>
agentBox
- TODOpublic void releaseAgent(IntegratorHard.Agent agent, IAtom atom, Box agentBox)
AtomLeafAgentManager.AgentSource
releaseAgent
in interface AtomLeafAgentManager.AgentSource<IntegratorHard.Agent>