Antiferromagnets

M. E. Mauel
AP1601

Introduction

In this notebook, we illustrate the behavior of the Ising lattice when the sign of the microscopic interaction energy changes. The energy of each lattice site is minimum when the spin is opposite  of the direction of its nearest neighbors. The energy is maximum when the spin is aligned with its nearest neighbors. The behavior of the lattice resembles an anti-ferromagnet. Maganese Oxide (MnO) is an example of an antiferromagnet. At low temperatures (and for low magnetic fields), the material is exhibits (essentially) no response to an applied magnetic field. In other words, it's interior has (approximately) the same magnetic field as found in a vacuum. At higher temperatures, this effect disappears. The critical temperature above which the lattice sites are no longer anti-parallel is called the Néel temperature.

Definitions

We will modify our previous simulation module to include the sign of the spin-spin interaction.

IsingJ[n_,m_,p_,T_,B_,J_:1,l_:0]:=
Module[{energyDiff,initConfig,flip,flipList},



energyDiff[1,4]=2 (4 J+B);
energyDiff[1,2]=2 (2 J+B);
energyDiff[1,0]=2 (0+B);
energyDiff[1,-2]=2 (-2 J+B);
energyDiff[1,-4]=2 (-4 J+B);

energyDiff[-1,4]=-2 (4 J+B);
energyDiff[-1,2]=-2 (2 J+B);
energyDiff[-1,0]=-2 (0+B);
energyDiff[-1,-2]=-2 (-2 J+B);
energyDiff[-1,-4]=-2 (-4 J+B);


initConfig=If[MatchQ[l,_List],l,Table[2 Floor[p+RandomReal[]]-1,{n},{n}]];


flip=(lat=#1;{i1,i2}=RandomInteger[{1,n},2];If[i1==n,dn=1,dn=i1+1];If[i2==n,rt=1,rt=i2+1];If[i1==1,up=n,up=i1-1];If[i2==1,lt=n,lt=i2-1];nnvalsum=lat[[dn,i2]]+lat[[up,i2]]+lat[[i1,rt]]+lat[[i1,lt]];If[energyDiff[lat[[i1,i2]],nnvalsum]<0||RandomReal[]<Exp[-((energyDiff[lat[[i1,i2]],nnvalsum])/T)],lat[[i1,i2]]=-lat[[i1,i2]];lat,lat])&;


flipList=NestList[flip,initConfig,m (n^2)];
flipList[[Range[1,m (n^2),(n^2)]]]
]

magnetization[lat_List] := 
(Plus @@ Flatten[lat])/Length[lat]^2 // N

energy[lat_List, B_, J_:1] := 
Module[{neighbors},
neighbors =Plus @@ (RotateRight[lat, #]& /@ {{1,0}, {-1, 0}, {0,1}, {0,-1}});
-(Plus @@ Flatten[lat (J neighbors + B)])/Length[lat]^2 // N]

correlation[lat_List, direction_] := 
(Plus @@ Flatten[lat RotateRight[lat,direction]])/Length[lat]^2 // N

Examples

nSize = 20;

temperatures = Table[t, {t, 1.0, 5.0, 0.5}];

Ferromagnet (as before...)

latList1=IsingJ[nSize,25,0.75,1.5,0,1];
ListDensityPlot[Last[latList1]]

correlation[Last[latList1],#]& /@ {{1,0}, {2,0}, {3,0}, {4,0}, {5,0}}

iSims = ( IsingJ[nSize,100,0.75,#,0,1][[Range[51,100]]] )&/@ temperatures;

avgMagnet = Plus @@@ Map[magnetization, iSims, {2}]/50 // N

avgEnergy = Plus @@@ Map[energy[#,0,1]&, iSims, {2}]/50 // N

ListPlot[Transpose[{temperatures,avgMagnet}],PlotStyle->{PointSize[0.02`]},PlotRange->{-1,1},PlotLabel->"Magnetization vs Temperature"]

ListPlot[Transpose[{temperatures,avgEnergy}],PlotStyle->{PointSize[0.02`]},PlotRange->{-4,0},PlotLabel->"Energy vs Temperature"]

Anti-Ferromagnet

latList2=IsingJ[nSize,25,0.75,1.5,0,-1];
ListDensityPlot[Last[latList2]]

correlation[Last[latList2],#]& /@ {{1,0}, {2,0}, {3,0}, {4,0}, {5,0}}

iSims = ( IsingJ[nSize,100,0.75,#,0,-1][[Range[51,100]]] )&/@ temperatures;

avgMagnet = Plus @@@ Map[magnetization, iSims, {2}]/50 // N

avgEnergy = Plus @@@ Map[energy[#,0,-1]&, iSims, {2}]/50 // N

ListPlot[Transpose[{temperatures,avgMagnet}],PlotStyle->{PointSize[0.02`]},PlotRange->{-1,1},PlotLabel->"Magnetization vs Temperature"]

ListPlot[Transpose[{temperatures,avgEnergy}],PlotStyle->{PointSize[0.02`]},PlotRange->{-4,0},PlotLabel->"Energy vs Temperature"]

Applying Field below the Curie temperature

As we know, the Ising lattice can exhibit hysteresis. The following program keeps a record of the magnetization as B slowing increases or decreases. We observe no hysteresis for an anti-ferromagnet.

magneticfields = Table[B, {B, -3.5, 3.5, 0.5}]

temp= 1.0;

Increasing magnetic field

Timing[iSims={};lastLattice=Table[2 Floor[0.5+RandomReal[]]-1,{nSize},{nSize}];Do[iSims=Append[iSims,IsingJ[nSize,100,0.5,temp,magneticfields[[i]],-1,lastLattice][[Range[51,100]]]];lastLattice=Last[Last[iSims]],{i,1,Length[magneticfields]}];]

avgMagnet = Plus @@@ Map[magnetization, iSims, {2}]/50 // N;

mIncreasing=ListPlot[Transpose[{magneticfields,avgMagnet}],PlotStyle->{RGBColor[1,0,0]},PlotRange->{-0.5,0.5},Joined->True]

Decreasing magnetic field

magneticfields = Reverse[magneticfields]

(iSims = {};
Do[iSims = Append[iSims , IsingJ[nSize,100,0.5,temp, magneticfields[[i]],-1,lastLattice][[Range[51,100]]] ];
lastLattice = Last[Last[iSims]],{i, 1, Length[magneticfields]}
];) // Timing

avgMagnet = Plus @@@ Map[magnetization, iSims, {2}]/50 // N;

Show[mIncreasing,ListPlot[Transpose[{magneticfields,avgMagnet}],PlotStyle->{RGBColor[0,0,1]},PlotRange->{-0.5,0.5},Joined->True,DisplayFunction->Identity],PlotLabel->"Anti-Magnetization vs Applied B (T = "<>ToString[temp]<>")"]

Applying Field above the Curie temperature

As we know, the Ising lattice can exhibit hysteresis. The following program keeps a record of the magnetization as B slowing increases or decreases.

magneticfields = Table[B, {B, -3.5, 3.5, 0.5}]

temp= 4.5;

Increasing magnetic field

Timing[iSims={};lastLattice=Table[2 Floor[0.5+RandomReal[]]-1,{nSize},{nSize}];Do[iSims=Append[iSims,IsingJ[nSize,100,0.5,temp,magneticfields[[i]],-1,lastLattice][[Range[51,100]]]];lastLattice=Last[Last[iSims]],{i,1,Length[magneticfields]}];]

avgMagnet = Plus @@@ Map[magnetization, iSims, {2}]/50 // N;

mIncreasing=ListPlot[Transpose[{magneticfields,avgMagnet}],PlotStyle->{RGBColor[1,0,0]},PlotRange->{-0.5,0.5},Joined->True,PlotLabel->"Anti-Magnetization vs Applied B (T = "<>ToString[temp]<>")"]

Summary

In this notebook, we have compared the behavior of the Ising model when the interaction energy changes sign. This illustrates the differences between an anti-ferromagnet and a ferromagnet. Below the Néel temperature, an antiferromagnetic has approximate order with anti-parallel (checker-board) spin alignment. At low temperatures, the antiferromagnet has very little magnetic response. At higher temperatures, it amplifies the magnetic field but it does can not be "permanently magnetized".