| 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 |