quench optimization of magnetic structure
Syntax
optm = optmagsteep(obj,Name,Value)
Description
optm = optmagsteep(obj,Name,Value)
determines the lowest energy
magnetic configuration within a given magnetic supercell and previously
fixed propagation (and normal) vector (see spinw.optmagk). It
iteratively rotates each spin towards the local magnetic field thus
achieving local energy minimum. Albeit not guaranteed this method often
finds the global energy minimum. The methods works best for small
magnetic cells and non-frustrated structures. Its execution is roughly
equivalent to a thermal quenching from the paramagnetic state.
Input Arguments
obj
- spinw object.
Name-Value Pair Arguments
'nRun'
- Number of iterations, default value is 100 (it is usually enough). Each
spin will be quenched
nRun
times or until convergence is reached. 'boundary'
- Boundary conditions of the magnetic cell, string with allowed values:
'free'
Free, interactions between extedned unit cells are omitted.'per'
Periodic, interactions between extended unit cells are retained.
Default value is
{'per' 'per' 'per'}
. 'nExt'
- The size of the magnetic cell in number of crystal unit cells.
Default value is taken from
obj.mag_str.nExt
. 'fSub'
- Function that defines non-interacting sublattices for parallelization.
It has the following header:
cGraph = fSub(conn,nExt)
, wherecGraph
is a row vector with number of elements,conn
is a matrix with dimensions of size matrix and is equal to thenExt
parameter. Default value is@sw_fsub
. 'subLat'
- Vector that assigns all magnetic moments into non-interacting
sublattices, contains a single index for every magnetic
moment in a row vector with number of elements. If
undefined, the function defined in
fSub
will be used to partition the lattice. 'random'
- If
true
random initial spin orientations will be used (paramagnet), if initial spin configuration is undefined (obj.mag_str.F
is empty) the initial configuration will be always random. Default value isfalse
. 'TolX'
- Minimum change of the magnetic moment necessary to reach convergence.
'saveAll'
- Save moment directions for every loop, default value is
false
. 'Hmin'
- Minimum field value on the spin that moves the spin. If the molecular field absolute value is below this, the spin won’t be turned. Default is 0.
'plot'
- If true, the magnetic structure in plotted in real time. Default value
is
false
. 'pause'
- Time in second to pause after every optimization loop to slow down plot movie. Default value is 0.
'fid'
- Defines whether to provide text output. The default value is determined
by the
fid
preference stored in swpref. The possible values are:0
No text output is generated.1
Text output in the MATLAB Command Window.fid
File ID provided by thefopen
command, the output is written into the opened file stream.
Output Arguments
optm
- Struct type variable with the following fields:
obj
spinw object that contains the optimised magnetic structure.M
Magnetic moment directions with dimensions , ifsaveAll
parameter istrue
, it contains the magnetic structure after every loop in a matrix with dimensions .dM
The change of magnetic moment vector averaged over all moments in the last loop.e
Energy per spin in the optimised structure.param
Input parameters, stored in a struct.nRun
Number of loops executed.datestart
Starting time of the function.dateend
End time of the function.title
Title of the simulation, given in the input.
See Also
spinw | spinw.anneal | sw_fsub | sw_fstat