Package src :: Package propagators :: Package classes :: Module RMT :: Class RMT
[hide private]
[frames] | no frames]

Class RMT

source code

??-30 --+
        |
       RMT

This method is based on an extended Hamiltonian with 'm' additional thermostats, or degrees of freedom. The resulting Hamiltonian gives rise to implicit coupling between the variables, requiring implicit symplectic methods. Since this is undesirable a Hamiltonian splitting method is used to produce 2+m Hamiltonian systems which can be solved explicitly. This spliting is described in: http://www.nd.edu/~csweet1/campus/rmtsplit.pdf cf. B. J. Leimkuhlder and C. R. Sweet. Hamiltonian Formulation for Recursive Multiple Thermostats in a Common Timescale. SIAM J. Appl. Dyn. Sys. 4(1):187-216, 2005.

Instance Methods [hide private]
 
init(self, phys, forces, prop)
Initialize propagator.
source code
 
halfUpdtH2(self, typ, phys, forces, prop)
H2 half step.
source code
 
halfUpdtH3j(self, dir, prop)
H3 half step.
source code
 
halfUpdtH31(self, prop)
H31 half step.
source code
 
UpdtH1(self, phys, forces, prop)
H1 full step.
source code
 
totalEnergy(self, typ, phys, forces)
Calculate total energy of the system.
source code
 
prodSs(self, start, end)
Returns cumulative product of S parameters
source code
 
run(self, phys, forces, prop)
Run the propagator.
source code
 
finish(self, phys, forces, prop)
Finalize the propagator.
source code
Instance Variables [hide private]
  Potnl
Potential energy
  gkT
Number of Dof*kT, momentum conserved so number of atoms * 3D - 3
  KEtoT
Convertion of kinetic energy to temperature
  Nf
number of Dof
  kT
Boltzmann constant times Kelvin temperature
  h0
Initial total energy
  stepsdone
Number of steps completed
  avTemp
Average Kelvin temperature
  tempers
Holds pairs of step numbers and average temperatures
  Hamiltonian
Holds pairs of step numbers and total energies
Method Details [hide private]

init(self, phys, forces, prop)

source code 

Initialize propagator.

Parameters:
  • phys (Physical) - The physical system.
  • forces (Forces) - MDL Forces object.
  • prop (Propagator) - MDL Propagator object.

halfUpdtH2(self, typ, phys, forces, prop)

source code 

H2 half step.

Parameters:
  • typ (int) - 0 (first cycle) or 1 (second cycle)
  • phys (Physical) - The physical system.
  • forces (Forces) - MDL Forces object.
  • prop (Propagator) - MDL Propagator object.

halfUpdtH3j(self, dir, prop)

source code 

H3 half step.

Parameters:
  • dir (int) - 0 direction j=1...M, dir=1 direction j=M...1
  • prop (Propagator) - MDL Propagator object.

halfUpdtH31(self, prop)

source code 

H31 half step.

Parameters:
  • prop (Propagator) - MDL Propagator object.

UpdtH1(self, phys, forces, prop)

source code 

H1 full step.

Parameters:
  • phys (Physical) - The physical system.
  • forces (Forces) - MDL Forces object.
  • prop (Propagator) - MDL Propagator object.

totalEnergy(self, typ, phys, forces)

source code 

Calculate total energy of the system.

Parameters:
  • typ (int) - 0 calc h0, 1 calc non time reparam Energy, 2 calc total
  • phys (Physical) - The physical system.
  • forces (Forces) - MDL Forces object.

prodSs(self, start, end)

source code 

Returns cumulative product of S parameters

Parameters:
  • start (int) - Starting index
  • end (int) - Ending index

run(self, phys, forces, prop)

source code 

Run the propagator. Solves for half step in H2,H31,...,H3m then full step in H1 followed by half steps in H3m,...,H31,H2 so that method is time reversible.

Parameters:
  • phys (Physical) - The physical system.
  • forces (Forces) - MDL Forces object.
  • prop (Propagator) - MDL Propagator object.

finish(self, phys, forces, prop)

source code 

Finalize the propagator.

Parameters:
  • phys (Physical) - The physical system.
  • forces (Forces) - MDL Forces object.
  • prop (Propagator) - MDL Propagator object.