IMLCV.base.MdEngine#

MD engine class peforms MD simulations in a given NVT/NPT ensemble.

Currently, the MD is done with YAFF/OpenMM

Module Contents#

Classes#

StaticTrajectoryInfo

TrajectoryInfo

MDEngine

Base class for MD engine.

class IMLCV.base.MdEngine.StaticTrajectoryInfo[source]#
property masses[source]#
property thermostat[source]#
property barostat[source]#
_attr = ['timestep', 'r_cut', 'timecon_thermo', 'T', 'P', 'timecon_baro', 'write_step', 'equilibration',...[source]#
_arr = ['atomic_numbers'][source]#
timestep: float[source]#
T: float[source]#
timecon_thermo: float[source]#
atomic_numbers: jax.Array[source]#
r_cut: float | None[source]#
P: float | None[source]#
timecon_baro: float | None[source]#
write_step: int = 100[source]#
equilibration: float | None[source]#
screen_log: int = 1000[source]#
max_grad: float | None[source]#
__post_init__()[source]#
_save(hf: h5py.File)[source]#
save(filename: str | Path)[source]#
static _load(hf: h5py.File) StaticTrajectoryInfo[source]#
static load(filename) StaticTrajectoryInfo[source]#
class IMLCV.base.MdEngine.TrajectoryInfo[source]#
property sp: IMLCV.base.CV.SystemParams[source]#
property positions: Array | None[source]#
property cell: Array | None[source]#
property volume[source]#
property charges: Array | None[source]#
property e_pot: Array | None[source]#
property e_pot_gpos: Array | None[source]#
property e_pot_vtens: Array | None[source]#
property e_bias: Array | None[source]#
property e_bias_gpos: Array | None[source]#
property e_bias_vtens: Array | None[source]#
property cv: Array | None[source]#
property T: Array | None[source]#
property P: Array | None[source]#
property err: Array | None[source]#
property t: Array | None[source]#
property shape[source]#
property CV: CV | None[source]#
_positions: jax.Array[source]#
_cell: Array | None[source]#
_charges: Array | None[source]#
_e_pot: Array | None[source]#
_e_pot_gpos: Array | None[source]#
_e_pot_vtens: Array | None[source]#
_e_bias: Array | None[source]#
_e_bias_gpos: Array | None[source]#
_e_bias_vtens: Array | None[source]#
_cv: Array | None[source]#
_T: Array | None[source]#
_P: Array | None[source]#
_err: Array | None[source]#
_t: Array | None[source]#
_items_scal = ['_t', '_e_pot', '_e_bias', '_T', '_P', '_err'][source]#
_items_vec = ['_positions', '_cell', '_e_pot_gpos', '_e_pot_vtens', '_e_bias_gpos', '_e_bias_vtens',...[source]#
_capacity: int[source]#
_size: int[source]#
__post_init__()[source]#
__getitem__(slices)[source]#

gets slice from indices. the output is truncated to the to include only items wihtin _size

__add__(ti: TrajectoryInfo)[source]#
_expand_capacity()[source]#
_shrink_capacity()[source]#
save(filename: str | Path)[source]#
_save(hf: h5py.File)[source]#
static load(filename) TrajectoryInfo[source]#
static _load(hf: h5py.File)[source]#
class IMLCV.base.MdEngine.MDEngine(bias: IMLCV.base.bias.Bias, energy: IMLCV.base.bias.Energy, static_trajectory_info: StaticTrajectoryInfo, trajectory_file=None, sp: SystemParams | None = None)[source]#

Bases: abc.ABC

Base class for MD engine.

class YaffSys[source]#
class YaffCell[source]#
property rvecs[source]#
property nvec[source]#
property volume[source]#
_ener: IMLCV.base.bias.Energy[source]#
update_rvecs(rvecs)[source]#
property numbers[source]#
property masses[source]#
property charges[source]#
property cell[source]#
property pos[source]#
property natom[source]#
_ener: IMLCV.base.bias.Energy[source]#
_tic: StaticTrajectoryInfo[source]#
__post_init__()[source]#
property sp: IMLCV.base.CV.SystemParams[source]#
property nl: NeighbourList | None[source]#
property yaff_system: MDEngine[source]#
keys = ['bias', 'energy', 'static_trajectory_info', 'trajectory_file'][source]#
save(file)[source]#
__getstate__()[source]#
__setstate__(state)[source]#
static load(file, **kwargs) MDEngine[source]#
new_bias(bias: IMLCV.base.bias.Bias, **kwargs) MDEngine[source]#
run(steps)[source]#

run the integrator for a given number of steps.

Parameters:

steps – number of MD steps

abstract _run(steps)[source]#
get_trajectory() TrajectoryInfo[source]#
save_step(T=None, P=None, t=None, err=None)[source]#
get_energy(gpos: bool = False, vtens: bool = False) IMLCV.base.bias.EnergyResult[source]#
get_bias(gpos: bool = False, vtens: bool = False) tuple[IMLCV.base.CV.CV, IMLCV.base.bias.EnergyResult][source]#