magnopy.SpinHamiltonian.add_22#

method

SpinHamiltonian.add_22(alpha: int, beta: int, nu: tuple, parameter, replace=False) None#

Adds a (two spins & two sites) parameter to the Hamiltonian.

Doubles of the bonds are managed automatically (independently of the convention of the Hamiltonian). beta, alpha, -nu, parameter.T is a double of alpha, beta, nu, parameter.

Parameters:
alphaint

Index of an atom from the (0, 0, 0) unit cell.

0 <= alpha < len(spinham.atoms.names).

betaint

Index of an atom from the nu unit cell.

0 <= beta < len(spinham.atoms.names).

nutuple of 3 int

Three relative coordinates with respect to the three lattice vectors, that specify the unit cell for the second atom.

\[\nu = (x_{\boldsymbol{a}_1}, x_{\boldsymbol{a}_2}, x_{\boldsymbol{a}_3})\]
parameter(3, 3) array-like

Value of the parameter (\(3\times3\) matrix).

replacebool, default False

Whether to replace the value of the parameter if the pair of atoms alpha, beta, nu or its double already have a parameter associated with it.

Raises:
ValueError

If an atom already has a parameter associated with it.

See also

p22
remove_22

Notes

If spinham.convention.multiple_counting is True, then this function adds both the bond and its double to the Hamiltonian. It will cause an ValueError to add the double of the bond after the bond is added.

If spinham.convention.multiple_counting is False, then only the primary version of the bond is added to the Hamiltonian.

For the definition of the primary version see Multiple counting.