pele.potentials.heisenberg_spin#

pele.potentials.heisenberg_spin.make3dVector()[source]

Source

def make3dVector(u):

make a 3d unit vector from (theta, phi)

pele.potentials.heisenberg_spin.make2dVector()[source]

Source

def make2dVector(u):

make (theta, phi) from a 3d vector

class pele.potentials.heisenberg_spin.HeisenbergModel[source]

Source

class HeisenbergModel(BasePotential):

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)

HeisenbergModel.getEnergy()[source]

Source

def getEnergy(self, coords):

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

HeisenbergModel.getEnergyGradient()[source]

Source

def getEnergyGradient(self, coords):

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