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
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
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

Previous topic

pele.potentials.XYModel.test_potential

Next topic

pele.potentials.HeisenbergModel.NumericalDerivative