Skip to content

Commit

Permalink
Merge pull request #2 from johanhellsvik/editsjan2024
Browse files Browse the repository at this point in the history
Correction of typos
  • Loading branch information
johanhellsvik authored Feb 1, 2024
2 parents 2be3ec9 + 40ba5e5 commit 8fa65f1
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 34 deletions.
2 changes: 1 addition & 1 deletion content/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
# -- Project information -----------------------------------------------------

project = "UppASD Manual"
copyright = "2017-2022, Uppsala University"
copyright = "2017-2024, Uppsala University"
author = "J. Hellsvik, L. Bergqvist, A. Bergman, J. Chico, et al"
github_user = "UppASD"
github_repo_name = "UppASD-manual" # auto-detected from dirname if blank
Expand Down
18 changes: 9 additions & 9 deletions content/input.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ inpsd.dat

A file with the hardcoded name ``inpsd.dat`` is the main input file necessary to run UppASD. Contained in this file are also the names of the files containing the exchange interactions, the atomic positions, and the atomic moments. Although the names of these files are arbitrary, in this manual they are referred to as the ``jfile``, ``posfile`` and ``momfile``, respectively. Other optional files containing information such as the uniaxial anisotropy and the Dzyaloshinskii-Moriya vectors may also be included, as described below.

The input format is keyword based. The code is programmed to search for given keywords, and then read in the values that follow. If no keyword is given, a default value is set. As an example of a standard ``inpsd.dat`` file layout, input for a Fe in bcc lattice is shown below (as found in the examples directory). More advanced examples like supercells and random alloys follows later, but let's keep things simple for now::
The input format is keyword based. The code is programmed to search for given keywords, and then read in the values that follow. If no keyword is given, a default value is set. As an example of a standard ``inpsd.dat`` file layout, input for Fe in body centered cube (bcc) structure is shown below (as found in the examples directory). More advanced examples like supercells and random alloys follows later, but let's keep things simple for now::

simid bccFe100
ncell 12 12 12 System size
Expand Down Expand Up @@ -124,7 +124,7 @@ This file lists the exchange couplings within the system. The content and length

1 1 -0.500 -0.500 -0.500 1.359407144 0.866

The first two entries indicate the sites, which corresponds to the types that one whishes to map, :math:`i` and :math:`j`. In this case as both atoms have the same type, one can indicate the interactions between atoms in site 1 and 2, as 1-1. An example on how to deal with more atom types in the unit cell will be presented afterwards.
The first two entries indicate the sites, which corresponds to the types that one whishes to map, :math:`i` and :math:`j`. In this case as both atoms have the same type, one can indicate the interactions between atoms in site 1 and 2, as 1-1. An example on how to deal with more atom types in the unit cell will be presented later in the manual.

The third, fourth and fifth entries specify the interaction vector between the atoms and depending on choice of the maptype, it has different meaning. Using maptype 1, the vector is specified in Cartesian coordinates. If the SPR-KKR software is used, this corresponds to columns eight, nine and ten in the exchange parameter outfile.
If instead maptype 2 is used, the coordination vector is specified in lattice coordinates and the first line in jfile modifies to::
Expand Down Expand Up @@ -184,7 +184,7 @@ Now that both the cell and magnetic moments on each site are specified, what is
Remember that the ``types`` of atoms that the exchange interactions is valid for, are given in the first two columns of the jfile which specify the ``sites`` :math:`i` and :math:`j`. The sites correspond to the information given in the posfile. First line then specifies a Fe-Fe interaction, second line Fe-Co, third line Co-Fe and fourth line Co-Co.

**FeCo random alloy**
UppASD has the capability to deal with chemical disorder in one or several sublattices of a system. Taking Fe-Co as example, it is natually occuring in the bcc lattice (for Co concentrations less than :math:`\approx 70\%` with random arrangement of the Fe and Co atoms. Internally within the program, a supercell is created with the target composition set by the user. The required input files needs some modifications that are discussed here. First of all, the flag do_ralloy in the inpsd.dat file needs to set to 1. Then, as ususal, the Bravais lattice needs to be specified and in this case we are using the primitive bcc lattice with its lattice vectors::
UppASD has the capability to deal with chemical disorder in one or several sublattices of a system. Taking Fe-Co as example, it is natually occuring in the bcc lattice (for Co concentrations less than :math:`\approx 70\%` with random arrangement of the Fe and Co atoms. Internally within the program, a supercell is created with the target composition set by the user. The required input files needs some modifications that are discussed here. First of all, the flag do_ralloy in the inpsd.dat file needs to be set to 1. Then, as ususal, the Bravais lattice needs to be specified and in this case we are using the primitive bcc lattice with its lattice vectors::

cell -0.5000000 0.5000000 0.5000000
0.5000000 -0.5000000 0.5000000
Expand All @@ -195,7 +195,7 @@ So far, the setup is not any different from a non-random system. However, the po
1 1 1 0.500 0.000000 0.000000 0.000000
1 1 2 0.500 0.000000 0.000000 0.000000

Compare to non-random systems, the posfile now has two additional columns. The third column specify the chemical type (Fe or Co), each with its concentration (fourth column). The concentrations do not need to add up to 1, if smaller then the system becomes diluted with random voids (vacancies) in it. In the present example, Fe (chemical type 1) and Co (chemical type 2) both have 50\% concentration. Next, we need to specify the magnetic moments on each sublattice and for each chemical type. The corresponding momfile::
Compare to non-random systems, the posfile now has two additional columns. The third column specify the chemical type (Fe or Co), each with its concentration (fourth column). The concentrations do not need to add up to 100%, if smaller then the system becomes diluted with random voids (vacancies) in it. In the present example, Fe (chemical type 1) and Co (chemical type 2) both have 50\% concentration. Next, we need to specify the magnetic moments on each sublattice and for each chemical type. The corresponding momfile::

1 1 2.4850 0.0 0.0 1.0
1 2 1.7041 0.0 0.0 1.0
Expand All @@ -210,10 +210,10 @@ The first column always specifies the site number (same as column 1 in the posfi
The first and second columns are the same as the jfile for non random systems and specifies the *sites* :math:`i` and :math:`j` and thus their corresponding atomic (sublattice) *types*. In this case, we only have one sublattice so it is 1 for all interactions. The third and fourth columns specifies the chemical types of the atoms on that particular sublattice and from top to bottom in this example that means Fe-Fe, Fe-Co,Co-Fe and Co-Co interactions.


Input Entries
-------------
inpsd.dat keywords
------------------

The following entries are currently implemented in UppASD. Where applicable, the default entry setting is underlined.
UppASD features more than 300 keywords for the ``inpsd.dat`` file. In the following some of the keywords are described. Where applicable, the default value for the keyword is underlined.

.. this is subset of the more relevant flags available for inpsd.dat
Expand Down Expand Up @@ -521,7 +521,7 @@ Measurement phase parameters
+---------------+--------------------------------------------------------------------------------------------------------+
| mcnstep | Number of Monte Carlo sweeps (MCS) over the system if mode=M or H. |
+---------------+--------------------------------------------------------------------------------------------------------+
| damping | Damping parameter $\alpha$ for SD measurement phase. Default value is 0.05. |
| damping | Damping parameter :math:`\alpha` for SD measurement phase. Default value is 0.05. |
+---------------+--------------------------------------------------------------------------------------------------------+
| timestep | Time step between SD iterations. Unless ``aunits Y``, this should typically be set to a value |
| | between :math:`10^{-17}` and :math:`10^{-15}` seconds, depending on the system and SDE solver. |
Expand Down Expand Up @@ -605,7 +605,7 @@ Parameters for measuring of correlation functions
C^k (\mathbf{r}-\mathbf{r'},t) = \langle m^k_{\mathbf{r}}(t) m^k_{\mathbf{r'}}(0) \rangle - \langle m^k_{\mathbf{r}}(t) \rangle \langle m^k_{\mathbf{r'}}(0) \rangle,
\label{eqn:cf}
where the angular brackets signify an ensemble average and $k$ the Cartesian component. The dynamical structure factor is then obtained by Fourier transforming :math:`C(\mathbf{r},t)` as
where the angular brackets signify an ensemble average and :math:`k` the Cartesian component. The dynamical structure factor is then obtained by Fourier transforming :math:`C(\mathbf{r},t)` as

.. math::
Expand Down
10 changes: 5 additions & 5 deletions content/introduction.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Introduction
Theoretical overview
--------------------

This user guide describes the essential features of Uppsala Atomistic Spin Dynamics program (UppASD). The emphasis is on the input files necessary to run calculations using UppASD and the output files it generates. Some information concerning the analysis of data generated by the code is also given. The ASD method and our implementation of it is described in the article by Skubic *et al* [Skubic2008]_. The underlying theory is described in the articles by Antropov *et al.* [Antropov1996]_ and García-Palacios and Lázaro [Garcia-Palacios1998]_. An old, yet remarkably lucid overview is also given by Watson *et al.* [Watson1969]_. A thorough review of the method and relevant applications is given in the book by Eriksson *et al.* [Eriksson2017]_.
This user guide describes the essential features of the Uppsala Atomistic Spin Dynamics program (UppASD). The emphasis is on the input files necessary to run calculations using UppASD and the output files it generates. Some information concerning the analysis of data generated by the code is also given. The ASD method and our implementation of it is described in the article by Skubic *et al* [Skubic2008]_. The underlying theory is described in the articles by Antropov *et al.* [Antropov1996]_ and García-Palacios and Lázaro [Garcia-Palacios1998]_. An old, yet remarkably lucid overview is also given by Watson *et al.* [Watson1969]_. A thorough review of the method and relevant applications is given in the book by Eriksson *et al.* [Eriksson2017]_.

The program evolves the equations of motion for atomic magnetic moments in a solid. These take the form of the Landau-Lifshitz-Gilbert (LLG) equation

Expand All @@ -28,7 +28,7 @@ where :math:`\mathcal{H}` is the spin Hamiltonian that takes all relevant intera
.. Eqn. :ref:`test <effectivefield>`: .
.. math::
\mathcal{H}=-\sum_{i,j} J_{ij}\mathbf{e}_i \cdot \mathbf{e}_j - \sum_{i,j} \mathbf{D}_{ij}\mathbf{e}_i \times \mathbf{e}_j-\sum_i K_i (\hat{\mathbf{e}}_i \cdot \mathbf{e}_i^K)^2-\sum_i \mathbf{B}^{ext}\cdot\mathbf{e}_i + \ldots
\mathcal{H}=-\sum_{i,j} J_{ij}\mathbf{e}_i \cdot \mathbf{e}_j - \sum_{i,j} \mathbf{D}_{ij}\cdot(\mathbf{e}_i \times \mathbf{e}_j)-\sum_i K_i (\hat{\mathbf{e}}_i \cdot \mathbf{e}_i^K)^2-\sum_i \mathbf{B}^{ext}\cdot\mathbf{e}_i + \ldots
This is consistent with most electronic structure codes that output :math:`J_{ij}` and other exchange interactions but care should be taken since in many other models found in the litterature, the Hamiltonian depends explicitly of :math:`\mathbf{m}_i` instead. The most important contribution to the Hamiltonian is typically given by the Heisenberg exchange Hamiltonian, given by the first term in the spin Hamiltonian. There, :math:`i` and :math:`j` are atomic indices, and :math:`J_{ij}` is the strength of the exchange interaction. These exchange interactions can be obtained from first-principles calculations, or alternatively be inferred from experiments. It is also possible (and in many cases even essential) to include other terms to the Hamiltonian, including Dzyaloshinskii-Moriya exchange, magnetic anisotropies and external magnetic fields, as are also exemplified in the spin Hamiltonian. There are currently several other interactions available in the UppASD code and additional interactions can be implemented quite straightforwardly. Please note that the format of the Hamiltonian can be defined differently regarding prefactors, inclusion of moment magnitudes, summation convention and more. The input format in UppASD is conformal with most commonly used electronic structure codes that have the capability of calculating :math:`J_{ij}` (and sometimes :math:`\mathbf{D}_{ij}`), *i.e.* following the same convention of the Heisenberg Hamiltonian as Liechtenstein *et al.* [Lichtenstein1987]_.
Expand All @@ -50,9 +50,9 @@ The source code is distributed on https://github.com/UppASD/UppASD along with do

- Obtain the code, by downloading and unpacking a release::

wget https://github.com/UppASD/UppASD/archive/refs/tags/v6.0.1.tar.gz
tar xvzf v6.0.1.tar.gz
cd UppASD
wget https://github.com/UppASD/UppASD/archive/refs/tags/v6.0.2.tar.gz
tar xvzf v6.0.2.tar.gz
cd UppASD-6.0.2

or by cloning the git repository::

Expand Down
9 changes: 4 additions & 5 deletions content/output.rst
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ where the three first entries are the direction of the anisotropy axis.
**coord.simid.out** is written if ``do_prnstruct`` is switched on. Prints out the coordinates of each moment in the system.

**dmdata.simid.out** is written if the DM interaction is defined. Prints out the DM coupling for each atom.
.. % and their strengths for each atom.

**dmstruct.simid.out** is written if the DM interaction is defined and ``do_prnstruct`` is switched on. Prints out the coupling list for the DM vector of the system. Similar to the data presented in **struct.simid.out**.

Expand Down Expand Up @@ -51,9 +50,9 @@ where :math:`step` is the simulation time expressed in terms of the number of ti

.. math::
cumulants.simid.out: step, <M>, <M>^2, <M>^4, U_4, \chi, C_v
cumulants.simid.out: step, \langle M \rangle, \langle M \rangle^2, \langle M \rangle^4, U_4, \chi, C_v
where, brackets denote time averaged quantities and :math:`U_4=1-\frac{1 <M>^4}{3 <M>^2}` is the fourth order Binder cumulant, useful for estimating transition temperatures [Binder2009]_, :math:`\chi` is the magnetic susceptibility, and :math:`C_V` is the heat capacity.
where, brackets denote time averaged quantities and :math:`U_4=1-\frac{1 \langle M \rangle^4}{3 \langle M \rangle^2}` is the fourth order Binder cumulant, useful for estimating transition temperatures [Binder2009]_, :math:`\chi` is the magnetic susceptibility, and :math:`C_V` is the heat capacity.

.. **mcinitial.simid.out** is written if initial phase is set to MC mode. Prints out the final iterations of the MC initial phase.
.. , in the format
Expand Down Expand Up @@ -105,13 +104,13 @@ if the number ``ntraj`` is also defined to be greater than 1, the code prints ou
sqt0.simid.out:step,nq,q_x,q_y,q_z,S^x(\mathbf{q}),S^y(\mathbf{q}),S^z(\mathbf{q}),S(\mathbf{q})
**sra.simid.out** is written if the \rkeyword{do_sc} flag is C. Prints out the static correlation function in real space :math:`S(r)` in the format
**sra.simid.out** is written if the ``do_sc`` flag is C. Prints out the static correlation function in real space :math:`S(r)` in the format

.. math::
sra.simid.out: |r|,S^x(r),S^y(r),S^z(r),S(r)
**sqt.simid.out** is written of the \rkeyword{do_sc} flag is switched on. Prints out the time-resolved structure factor :math:`S(q,t)` in the format
**sqt.simid.out** is written of the ``do_sc`` flag is switched on. Prints out the time-resolved structure factor :math:`S(q,t)` in the format

.. math::
Expand Down
Loading

0 comments on commit 8fa65f1

Please sign in to comment.