pydft_qmmm.interfaces.interface.MMInterface

class pydft_qmmm.interfaces.interface.MMInterface(system)[source]

Bases: SoftwareInterface

The abstract MM interface base class.

Parameters:

system (System) – The system that will inform the interface to the external software.

theory_level

The level of theory that the software applies in energy and force calculations.

Methods

add_non_elst(atoms[, inclusion])

Add a non-electrostatic interaction for the specified atoms.

add_real_elst(atoms[, const, inclusion])

Add Coulomb interaction for the specified atoms.

get_pme_parameters()

Get the parameters used for PME summation.

zero_charges(atoms)

Remove charges from the specified atoms.

zero_forces(atoms)

Zero forces on the specified atoms.

zero_intermolecular(atoms)

Remove inter-molecular interactions for the specified atoms.

zero_intramolecular(atoms)

Remove intra-molecular interactions for the specified atoms.

abstractmethod add_non_elst(atoms, inclusion=None)[source]

Add a non-electrostatic interaction for the specified atoms.

Parameters:
  • atoms (frozenset[int]) – The indices of atoms for which to add non-electrostatic, non-bonded interactions.

  • inclusion (ndarray[tuple[Any, ...], dtype[float64]] | None, default: None) – An Nx3 array with values that will be applied to the forces of the non-electrostatic interaction through element-wise multiplication.

Return type:

None

abstractmethod add_real_elst(atoms, const=1, inclusion=None)[source]

Add Coulomb interaction for the specified atoms.

Parameters:
  • atoms (frozenset[int]) – The indices of atoms for which to add a Coulomb interaction.

  • const (float | int, default: 1) – A constant to multiply at the beginning of the coulomb expression.

  • inclusion (ndarray[tuple[Any, ...], dtype[float64]] | None, default: None) – An Nx3 array with values that will be applied to the forces of the Coulomb interaction through element-wise multiplication.

Return type:

None

abstractmethod get_pme_parameters()[source]

Get the parameters used for PME summation.

Return type:

tuple[float, tuple[int, int, int], int]

Returns:

The Gaussian width parameter in Ewald summation (\(\mathrm{\mathring(A)^{-1}}\)), the number of grid points to include along each lattice edge, and the order of splines used on the FFT grid.

abstractmethod zero_charges(atoms)[source]

Remove charges from the specified atoms.

Parameters:

atoms (frozenset[int]) – The indices of atoms from which to remove charges.

Return type:

None

abstractmethod zero_forces(atoms)[source]

Zero forces on the specified atoms.

Parameters:

atoms (frozenset[int]) – The indices of atoms for which to zero forces.

Return type:

None

abstractmethod zero_intermolecular(atoms)[source]

Remove inter-molecular interactions for the specified atoms.

Parameters:

atoms (frozenset[int]) – The indices of atoms from which to remove inter-molecular interactions.

Return type:

None

abstractmethod zero_intramolecular(atoms)[source]

Remove intra-molecular interactions for the specified atoms.

Parameters:

atoms (frozenset[int]) – The indices of atoms to from which to remove intra-molecular interactions.

Return type:

None