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


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)


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
getEnergyGradient(coords) coords is a list of (theta, phi) spherical coordinates of the spins
getEnergyGradientHessian(coords) return the energy, gradient, and Hessian at the given coordinates
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

Previous topic


Next topic