Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | public | :: | npair | = | -lo_hugeint | ||
integer, | public, | dimension(:), allocatable | :: | i1 | |||
integer, | public, | dimension(:), allocatable | :: | i2 |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
logical, | public | :: | ferromagnetic | = | .false. | ferromagnetic? |
|
logical, | public | :: | coll | = | .false. | collinear or noncollinear |
|
integer, | public | :: | nbin | = | -lo_hugeint | How many bins of different levels of disorder do we want? |
|
integer, | public | :: | nconf | = | -lo_hugeint | How many configurations per bin |
|
integer, | public | :: | nshell | = | -lo_hugeint | number of magnetic coordination shells |
|
type(lo_magdisorder_shell), | public, | dimension(:), allocatable | :: | sh | info about the coordination shells |
||
integer, | public, | dimension(:,:,:), allocatable | :: | collhistory | history of configurations |
||
real(kind=flyt), | public, | dimension(:,:,:,:), allocatable | :: | noncollhistory | |||
integer, | public, | dimension(:), allocatable | :: | initial_collinear_configuration | initial configuration |
||
real(kind=flyt), | public, | dimension(:,:), allocatable | :: | initial_noncollinear_configuration | |||
integer, | public, | dimension(:), allocatable | :: | sites | which sites are switchable? |
procedure, public :: generate | create the structure |
procedure, public :: correlation_function | get the correlation function |
procedure, public :: optimize | generate magnetic sqs |
procedure, public :: dump_configurations | dump to file |
get a sphericall random unit vector
make sure an AFM configuration has net magnetic moment of 0
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=flyt), | intent(inout), | dimension(:,:) | :: | x | ||
logical, | intent(in), | dimension(:) | :: | rel |
write(,) 'iter:',iter,'ss',tochar(flipatoms)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(lo_magdisorder), | intent(in) | :: | mag | shells and stuff |
||
type(lo_forcemap), | intent(in) | :: | map | |||
type(lo_crystalstructure), | intent(in) | :: | uc | |||
type(lo_crystalstructure), | intent(in) | :: | ss | |||
integer, | intent(in) | :: | nsubconf |
calculate the correlation function
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(lo_magdisorder), | intent(in) | :: | mag | list of shells and stuff |
||
integer, | intent(in), | optional | dimension(:) | :: | collconf | current collinear magnetic configuration |
real(kind=flyt), | intent(in), | optional | dimension(:,:) | :: | noncollconf | current noncollinear magnetic configuration |
real(kind=flyt), | intent(out), | dimension(:) | :: | cf | the correlation function per shell |
generate optimized configuration
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(lo_magdisorder), | intent(inout) | :: | mag | shells and stuff |
||
type(lo_crystalstructure), | intent(in) | :: | ss | crystal structure |
||
integer, | intent(in) | :: | nconf | how many configurations do I want in each bin? |
||
integer, | intent(in) | :: | nbin | how many bins? |
set up all the coordination shells and stuff
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(lo_magdisorder), | intent(out) | :: | mag | to keep track of all the coordination shells |
||
type(lo_symlist), | intent(in) | :: | sl | a symmetry table, useful for a bunch of stuff |
||
type(lo_crystalstructure), | intent(in) | :: | uc | unit cell |
||
type(lo_crystalstructure), | intent(in) | :: | ss | supercell |