qmmm_pme.integrators package

Submodules

qmmm_pme.integrators.integrator module

A module for defining the Integrator base class.

class qmmm_pme.integrators.integrator.Integrator(timestep, temperature, system)[source]

Bases: ModifiableIntegrator

An abstract Integrator base class, which also contains implementations for generating velocities and calculating kinetic energies.

Parameters:
  • timestep (float | int) – The timestep that the Simulation propagates with, in femtoseconds.

  • temperature (float | int) – The temperature, in Kelvin.

  • system (System) – The System object to integrate.

compute_kinetic_energy()[source]

Calculate the kinetic energy of the System.

Returns:

The kinetic energy, in kJ/mol.

Return type:

float

Note

Based on the implementation in OpenMM

compute_velocities()[source]

Calculate initial velocities based on the Maxwell-Boltzmann distribution at a given temperature.

Returns:

The sampled velocities, in Angstroms per femtosecond.

Return type:

ndarray[Any, dtype[float64]]

Note

Based on the implementation in ASE.

system: System
temperature: float | int
timestep: float | int
class qmmm_pme.integrators.integrator.ModifiableIntegrator[source]

Bases: ABC

An abstract Integrator base class for interfacing with plugins.

active_plugins()[source]

Get the current list of active plugins.

Returns:

A list of the active plugins being employed by the Integrator.

Return type:

list[str]

abstract compute_kinetic_energy()[source]

Calculate the kinetic energy of the System.

Returns:

The kinetic energy, in kJ/mol.

Return type:

float

Note

Based on the implementation in OpenMM

abstract compute_velocities()[source]

Calculate initial velocities based on the Maxwell-Boltzmann distribution at a given temperature.

Returns:

The sampled velocities, in Angstroms per femtosecond.

Return type:

ndarray[Any, dtype[float64]]

Note

Based on the implementation in ASE.

abstract integrate()[source]

Integrate forces from the System into new positions and velocities.

Returns:

The new positions and velocities of the System, in Angstroms and Angstroms per femtosecond, respectively.

Return type:

tuple[NDArray[np.float64], NDArray[np.float64]]

Note

Based on the implementation of the integrator kernels from OpenMM.

register_plugin(plugin)[source]

Register a Plugin modifying an Integrator routine.

Parameters:

plugin (IntegratorPlugin) – An IntegratorPlugin object.

Return type:

None

system: System
temperature: float | int
timestep: float | int

qmmm_pme.integrators.langevin_integrator module

A module defining the LangevinIntegrator class.

class qmmm_pme.integrators.langevin_integrator.LangevinIntegrator(timestep, temperature, system, friction)[source]

Bases: Integrator

An Integrator based on Langevin dynamics.

Parameters:
  • friction (int | float) – The friction felt by particles as a result of a thermostat, in inverse femtoseconds.

  • timestep (float | int) –

  • temperature (float | int) –

  • system (System) –

friction: int | float
integrate()[source]

Integrate forces from the System into new positions and velocities.

Returns:

The new positions and velocities of the System, in Angstroms and Angstroms per femtosecond, respectively.

Return type:

tuple[NDArray[np.float64], NDArray[np.float64]]

Note

Based on the implementation of the integrator kernels from OpenMM.

qmmm_pme.integrators.velocity_verlet_integrator module

A module defining the VelocityVerletIntegrator class.

class qmmm_pme.integrators.velocity_verlet_integrator.VelocityVerletIntegrator(timestep, temperature, system)[source]

Bases: Integrator

An Integrator based on the Velocity Verlet algorithm.

Warning

This class is not currently implemented

Parameters:
  • timestep (float | int) –

  • temperature (float | int) –

  • system (System) –

integrate()[source]

Integrate forces from the System into new positions and velocities.

Returns:

The new positions and velocities of the System, in Angstroms and Angstroms per femtosecond, respectively.

Return type:

tuple[NDArray[np.float64], NDArray[np.float64]]

Note

Based on the implementation of the integrator kernels from OpenMM.

system: System
temperature: float | int
timestep: float | int

qmmm_pme.integrators.verlet_integrator module

A module defining the VerletIntegrator class.

class qmmm_pme.integrators.verlet_integrator.VerletIntegrator(timestep, temperature, system)[source]

Bases: Integrator

An Integrator based on the Verlet algorithm.

Parameters:
  • timestep (float | int) –

  • temperature (float | int) –

  • system (System) –

integrate()[source]

Integrate forces from the System into new positions and velocities.

Returns:

The new positions and velocities of the System, in Angstroms and Angstroms per femtosecond, respectively.

Return type:

tuple[NDArray[np.float64], NDArray[np.float64]]

Note

Based on the implementation of the integrator kernels from OpenMM.

system: System
temperature: float | int
timestep: float | int

Module contents

A sub-package to define integrators.