pele.potentials.heisenberg_spin#
- pele.potentials.heisenberg_spin.make3dVector()[source]
-
def make3dVector(u):make a 3d unit vector from (theta, phi)
- pele.potentials.heisenberg_spin.make2dVector()[source]
-
def make2dVector(u):make (theta, phi) from a 3d vector
- class pele.potentials.heisenberg_spin.HeisenbergModel[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]
-
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)