pele.potentials.HeisenbergModel#

class pele.potentials.HeisenbergModel(dim=None, field_disorder=1.0, fields=None)[source]#

The classical Heisenberg Model of 3d spins on a lattice.

Parameters:
dim: list

an array giving the dimensions of the lattice

field_disorder: float

the magnitude of the randomness in the fields

fields: array

use this to explicitly set the values of the field disorder

Notes

The Hamiltonian is:

H = - sum_ij J dot( s_i, s_j )

where s_i are normalized 3d vectors.

This can be generalized for disordered systems to:

H = - sum_ij J_ij dot( s_i, s_j )  - sum_i dot( h_i, s_i )

where h_i are quenched random variables. (h_i is a vector)

Methods

NumericalDerivative(coords[, eps])

return the gradient calculated numerically

NumericalHessian(coords[, eps])

return the Hessian matrix of second derivatives computed numerically

getEnergy(coords)

coords is a list of (theta, phi) spherical coordinates of the spins where phi is the azimuthal angle (angle to the z axis)

getEnergyGradient(coords)

coords is a list of (theta, phi) spherical coordinates of the spins where phi is the azimuthal angle (angle to the z axis)

getEnergyGradientHessian(coords)

return the energy, gradient, and Hessian at the given coordinates

getEnergyGradientNumerical(coords)

getGradient(coords)

return the gradient at the given coordinates

getHessian(coords)

return the hessian

test_potential(coords[, eps])

print some information testing whether the analytical gradients are correct

Attributes