Next: , Previous: Installation, Up: Top


6 Example; The antiferromagnet on a triangular lattice.

Here we will walk through most features of the program with the help of an example, the antiferromagnet on a triangular lattice. Once you have worked through this tutorial it should be straightforward to carry out more complicated simulations using the examples provided and the reference.

6.1 A basic input file

The input file 'tria_6x6.in' for a simple simulation of a antiferromagnet on a triangular lattice may look as follows

     #First the lattice is defined
     lattice-params = 1 1 1 90 90 60
     #add one atom per unit cell with spin 1 and g=2 and occupancy (f) 1.
     add-atom = Fe 0 0 0 1 2 1
     
     #We want to simulate Heisenberg spins.
     spin-dimension = 3
     
     #Only include super-exchange in hamiltonain
     Hamiltonian = "super-exchange"
     
     #This is the maximum distance of our interactions.
     #NB: Failing to set the cut-off variable to a sensible value
     #will result in very slow running simulations!
     cut-off = 1.1
     
     #These are the axes along which periodic boundary conditions are applied.
     periodic-axes= a b
     
     #The number of unit cells along each axis:
     La=6
     Lb=6
     Lc=1
     #The strength of the magnetic super exchange coupling.
     J1 = 1
     
     #The number of Monte-Carlo sweeps per temperature.
     sweeps = 10000
     #A list of temperatures.
     T = 10 8 6 4 3 2 1 0.1

6.2 Running a simulation and collecting the data.

More example input files are included with the program. For more complicated systems it can be usefull to specify the generic system parameters in a separative file, which can be included in the main input file with the line 'lattice=”name of paramter file here” '. To run the simulation type:

     spinner tria_6x6.in -E

Spinner will construct the lattice and will give diagnostics like the number of bonds for each atom/ion in the unit cell, the number of spins, the Hamiltonian, etc. The system will be thermalised and the progress of the simulation is reported. Data will be written to the file 'tria_6x6.dat'.This data can be viewed using for example gnuplot. Because we have given the command-line option '-E' the final structure generated will be saved to the file 'tria_6x6.state'. With the program respin we can extract some usefull information from the last generated structure;

     respin tria_6x6.state -c 20 -v

respin returns now returns two files; 'tria_6x6.CF' which contains the spin-spin correlation function (the last collumn in this file can be ignored), and 'tria_6x6.vect'. The latter can be read into geomview to view the magnetic structure directly. The option '-c' takes one argument which specifies the maximum length over which the spin-spin correlation function must be calculated. It depends on the amount of RAM available on your computer what the maximum is here.

6.3 Extracting the chiral and nematic ordering and correlation functions

respin can also be used to calculate the chiral structure and the nematic correlations. However, Respin cannot work out for itself for which triangles the chirality should be calculated, so we need another parameter file: 'tria.Xcell'

     S1.site = 0
     S1.cell = 0 0 0
     S2.site = 0
     S2.cell = 1 0 0
     S3.site = 0
     S3.cell = 0 1 0

This file defines the relative positions of the three spins needed to calculate the chirality, and respin can be run again:

     respin tria_6x6.state -x tria.Xcell

The program returns a file called 'tria_6x6_X.state'. In this file the spins are replaced with vectors representing the chirality of each triangle. The chiral and nematic correlation lengths can now be calculated using

     respin tria_6x6_X.state -c 20

The output in 'tria_6x6_X.CF' containts the chiral correlation function in the second collumn, and the nematic correlation function in the third collumn, both as a function of distance, listed in the first collumn.

6.4 Adding more datapoints

We may find that we actually need some more points at lower temperature, with higher accuracy, so we change the last two entries in the 'tria_6x6.in';

     sweeps 40000
     T = 0.1 0.08 0.06 0.05 0.04 0.03 0.02 0.01

We can start straight from where we left off in the calculation, using the well equilibrated final state 'tria_6x6.state'

     spinner tria_6x6.in -I (or --inport-state) --no-thermalise

Now the simulation will carry on using the previous state. We do not want to thermalise this state, because we know it is a good state for the last temperature that was simulated, T=0.1. The resulting data will be added to the old data file, but a new header line will be inserted. Note that the program assumes that the old '.state' file has the same prefix as the input file, in this case 'tria_6x6'.

You can find all the possible options by using ‘spinner -h’ or ‘respin -h’.