Skip to content

mm

Molecular mechanics systems and force-field parameter assignment.

import mlx_atomistic.mm

class AngleParameter
def __init__(atom_types: tuple[str, str, str], k: float, angle: float)

Harmonic angle parameter for a reversible atom-type triplet.

Parameters

NameTypeDefaultDescription
atom_typestuple[str, str, str]
kfloat
anglefloat
class AtomType
def __init__(name: str, mass: float)

Atom type definition.

Parameters

NameTypeDefaultDescription
namestr
massfloat
class BondParameter
def __init__(atom_types: tuple[str, str], k: float, length: float)

Harmonic bond parameter for an unordered atom-type pair.

Parameters

NameTypeDefaultDescription
atom_typestuple[str, str]
kfloat
lengthfloat
class DihedralParameter
def __init__(atom_types: tuple[str, str, str, str], k: float, periodicity: float, phase: float = 0.0)

Periodic dihedral parameter for a reversible atom-type quartet.

Parameters

NameTypeDefaultDescription
atom_typestuple[str, str, str, str]
kfloat
periodicityfloat
phasefloat0.0
class ForceField
def __init__(atom_types: Sequence[AtomType], nonbonded: Sequence[NonbondedParameter], bonds: Sequence[BondParameter] = (), angles: Sequence[AngleParameter] = (), dihedrals: Sequence[DihedralParameter] = (), impropers: Sequence[ImproperParameter] = (), lj_one_four_scale: float = 1.0, coulomb_one_four_scale: float = 1.0, cutoff: float | None = 2.5, lj_shift: bool = True, coulomb_shift: bool = False, switch_distance: float | None = None, coulomb_constant: float = 1.0)

Small programmatic force-field parameter set.

Parameters

NameTypeDefaultDescription
atom_typesSequence[AtomType]
nonbondedSequence[NonbondedParameter]
bondsSequence[BondParameter]()
anglesSequence[AngleParameter]()
dihedralsSequence[DihedralParameter]()
impropersSequence[ImproperParameter]()
lj_one_four_scalefloat1.0
coulomb_one_four_scalefloat1.0
cutofffloat | None2.5
lj_shiftboolTrue
coulomb_shiftboolFalse
switch_distancefloat | NoneNone
coulomb_constantfloat1.0

Properties

  • atom_type_masses dict[str, float] — Atom-type masses by type name.

Methods

def build_force_terms(system: MMSystem) -> list

Build force terms for a typed molecular mechanics system.

Parameters

NameTypeDefaultDescription
systemMMSystem

Returns

  • list
def masses_for(atom_types: Sequence[str]) -> tuple[float, ...]

Return masses for atom type names.

Parameters

NameTypeDefaultDescription
atom_typesSequence[str]

Returns

  • tuple[float, ...]
class ImproperParameter(DihedralParameter)
def __init__(atom_types: tuple[str, str, str, str], k: float, periodicity: float, phase: float = 0.0)

Periodic improper torsion parameter for a reversible atom-type quartet.

Parameters

NameTypeDefaultDescription
atom_typestuple[str, str, str, str]
kfloat
periodicityfloat
phasefloat0.0
class MMSystem
def __init__(symbols: Sequence[str], atom_names: Sequence[str], atom_types: Sequence[str], masses: object, charges: object | None, positions: object, topology: Topology, velocities: object | None = None, cell: Cell | None = None, virtual_sites: object | None = None)

A typed molecular mechanics system.

Parameters

NameTypeDefaultDescription
symbolsSequence[str]
atom_namesSequence[str]
atom_typesSequence[str]
massesobject
chargesobject | None
positionsobject
topologyTopology
velocitiesobject | NoneNone
cellCell | NoneNone
virtual_sitesobject | NoneNone

Properties

  • atom_count int — Number of atoms.

Methods

def from_sequences(*, symbols: Sequence[str], positions: Sequence[Sequence[float]], topology: Topology, atom_types: Sequence[str], atom_names: Sequence[str] | None = None, masses: Sequence[float] | None = None, charges: Sequence[float] | None = None, velocities: Sequence[Sequence[float]] | None = None, cell: Cell | None = None, atom_type_masses: Mapping[str, float] | None = None, virtual_sites: object | None = None) -> MMSystem

Create an MM system from Python data.

Parameters

NameTypeDefaultDescription
symbolsSequence[str]
positionsSequence[Sequence[float]]
topologyTopology
atom_typesSequence[str]
atom_namesSequence[str] | NoneNone
massesSequence[float] | NoneNone
chargesSequence[float] | NoneNone
velocitiesSequence[Sequence[float]] | NoneNone
cellCell | NoneNone
atom_type_massesMapping[str, float] | NoneNone
virtual_sitesobject | NoneNone

Returns

  • MMSystem
class NonbondedParameter
def __init__(atom_type: str, sigma: float, epsilon: float)

Per-type nonbonded parameters.

Parameters

NameTypeDefaultDescription
atom_typestr
sigmafloat
epsilonfloat