|
21 | 21 | "metadata": {}, |
22 | 22 | "source": [ |
23 | 23 | "## CGS to SI\n", |
24 | | - "`Ubermag` uses SI units for all of the system parameters. Experimentally, material parameters are can often be measured in CGS units SI units, or a mixture of the two. Firstly, we show a convinent way of converting from CGS to SI units and other useful quantities.\n", |
| 24 | + "`Ubermag` uses SI units for all of the system parameters. Experimentally, material parameters can often be measured in CGS units, SI units, or a mixture of the two. Firstly, we show a convenient way of converting from CGS to SI units and other useful quantities.\n", |
25 | 25 | "\n", |
26 | 26 | "To do this, we make use of `astropy.units`, a package aimed at the astrophysics community for its unit converting functionality. `astropy` is not installed by default. We can install it (e.g. with `pip`) directly from the notebook. Generally, you will not install `astropy` from inside the notebook (using either `pip` or `conda`) but for the sake of demonstration we run the command in here." |
27 | 27 | ] |
|
44 | 44 | "name": "stdout", |
45 | 45 | "output_type": "stream", |
46 | 46 | "text": [ |
47 | | - "Requirement already satisfied: astropy in /home/mlang/miniconda3/envs/ubermagdev310/lib/python3.10/site-packages (5.3.4)\n", |
48 | | - "Requirement already satisfied: numpy<2,>=1.21 in /home/mlang/miniconda3/envs/ubermagdev310/lib/python3.10/site-packages (from astropy) (1.26.0)\n", |
49 | | - "Requirement already satisfied: pyerfa>=2.0 in /home/mlang/miniconda3/envs/ubermagdev310/lib/python3.10/site-packages (from astropy) (2.0.1)\n", |
50 | | - "Requirement already satisfied: PyYAML>=3.13 in /home/mlang/miniconda3/envs/ubermagdev310/lib/python3.10/site-packages (from astropy) (6.0.1)\n", |
51 | | - "Requirement already satisfied: packaging>=19.0 in /home/mlang/miniconda3/envs/ubermagdev310/lib/python3.10/site-packages (from astropy) (23.1)\n" |
| 47 | + "Requirement already satisfied: astropy in /home/zulfigak/anaconda3/envs/ubermagdev3/lib/python3.8/site-packages (5.2.2)\n", |
| 48 | + "Requirement already satisfied: numpy>=1.20 in /home/zulfigak/anaconda3/envs/ubermagdev3/lib/python3.8/site-packages (from astropy) (1.24.3)\n", |
| 49 | + "Requirement already satisfied: pyerfa>=2.0 in /home/zulfigak/anaconda3/envs/ubermagdev3/lib/python3.8/site-packages (from astropy) (2.0.0.3)\n", |
| 50 | + "Requirement already satisfied: PyYAML>=3.13 in /home/zulfigak/anaconda3/envs/ubermagdev3/lib/python3.8/site-packages (from astropy) (6.0.1)\n", |
| 51 | + "Requirement already satisfied: packaging>=19.0 in /home/zulfigak/anaconda3/envs/ubermagdev3/lib/python3.8/site-packages (from astropy) (23.2)\n" |
52 | 52 | ] |
53 | 53 | } |
54 | 54 | ], |
|
230 | 230 | "$0.001 \\; \\mathrm{m^{2}\\,A}$" |
231 | 231 | ], |
232 | 232 | "text/plain": [ |
233 | | - "<Quantity 0.001 m2 A>" |
| 233 | + "<Quantity 0.001 A m2>" |
234 | 234 | ] |
235 | 235 | }, |
236 | 236 | "execution_count": 7, |
|
247 | 247 | "id": "e6ac0a10", |
248 | 248 | "metadata": {}, |
249 | 249 | "source": [ |
250 | | - "If we wish to detach the numervical value for its units, we can do this using `.value`" |
| 250 | + "If we wish to detach the numerical value for its units, we can do this using `.value`" |
251 | 251 | ] |
252 | 252 | }, |
253 | 253 | { |
|
278 | 278 | "source": [ |
279 | 279 | "### Equivalencies\n", |
280 | 280 | "\n", |
281 | | - "The `astropy.units` also enables conversions of units with different equivalencies i.e. temperature and energy. To use this we can create a variable with the relevant units of temperature and use the `to` function to convert to the relevant units with the relevant equivalency.\n", |
| 281 | + "`astropy.units` also enables conversions of units with different equivalencies such as temperature and energy. To use this we can create a variable with the relevant units of temperature and use the `to` function to convert to the relevant units with the relevant equivalency.\n", |
282 | 282 | "\n", |
283 | 283 | "For example, if an exchange interaction has a temperature of 4.15 K we can calculate the equivalent energy in J." |
284 | 284 | ] |
|
313 | 313 | "id": "3b9b4a7a", |
314 | 314 | "metadata": {}, |
315 | 315 | "source": [ |
316 | | - "While `astropy` handles a variety of units and conversions, it does not currently have an equivalency for magnetic induction and magnetic field strength i.e. B to H . As this is a very useful for the magnetism community, we have provided the conversion here." |
| 316 | + "While `astropy` handles a variety of units and conversions, it does not currently have an equivalency for magnetic induction and magnetic field strength i.e. B to H . As this is very useful for the magnetism community, we have provided the conversion here." |
317 | 317 | ] |
318 | 318 | }, |
319 | 319 | { |
|
380 | 380 | "J = \\frac{3k_\\text{B}T_\\text{C}}{\\epsilon z},\n", |
381 | 381 | "\\end{equation}\n", |
382 | 382 | "where $k_\\text{B}$ is the Boltzmann constant, $z$ is the number of nearest neighbours, and $\\epsilon$ is\n", |
383 | | - "a structural depended correction factor. The values of this correction factor has been calculated in Table I of [Garanin 1996](https://doi.org/10.1103/PhysRevB.53.11593)." |
| 383 | + "a structurally dependent correction factor. The values of this correction factor have been calculated in Table I of [Garanin 1996](https://doi.org/10.1103/PhysRevB.53.11593)." |
384 | 384 | ] |
385 | 385 | }, |
386 | 386 | { |
|
440 | 440 | "\\begin{equation}\n", |
441 | 441 | "A = \\frac{zJl^2}{12V},\n", |
442 | 442 | "\\end{equation}\n", |
443 | | - "where $J$ is the Heisenberg exchange, $z$ is the number of nearest neighbour atoms, and $l$ is the distance between neighbor atoms and $V$ is the crystal volume per magnetic atom." |
| 443 | + "where $J$ is the Heisenberg exchange, $z$ is the number of nearest neighbour atoms, and $l$ is the distance between neighbouring atoms, and $V$ is the crystal volume per magnetic atom." |
444 | 444 | ] |
445 | 445 | }, |
446 | 446 | { |
|
547 | 547 | "\\begin{equation}\n", |
548 | 548 | "D = \\frac{zdl}{12V},\n", |
549 | 549 | "\\end{equation}\n", |
550 | | - "where $d$ is the atomistic DMI, $z$ is the number of nearest neighbour atoms, and $l$ is the distance between neighbor atoms and $V$ is the crystal volume per magnetic atom." |
| 550 | + "where $d$ is the atomistic DMI, $z$ is the number of nearest neighbour atoms, and $l$ is the distance between neighbouring atoms, and $V$ is the crystal volume per magnetic atom." |
551 | 551 | ] |
552 | 552 | }, |
553 | 553 | { |
|
616 | 616 | "id": "5709f726", |
617 | 617 | "metadata": {}, |
618 | 618 | "source": [ |
619 | | - "For a system with a micromagentic exchange of $6\\times 10^{-14}$ Jm$^{-1}$ and a helical period of 20 nm" |
| 619 | + "For a system with a micromagentic exchange of $6\\times 10^{-14}$ Jm$^{-1}$ and a helical period of 20 nm." |
620 | 620 | ] |
621 | 621 | }, |
622 | 622 | { |
|
651 | 651 | "\\begin{equation}\n", |
652 | 652 | "P = \\frac{4\\pi J l}{|d|},\n", |
653 | 653 | "\\end{equation}\n", |
654 | | - "where $J$ is the Heisenberg exchange, $d$ is the atomistic DMI, and $l$ is the distance between neighbor atoms." |
| 654 | + "where $J$ is the Heisenberg exchange, $d$ is the atomistic DMI, and $l$ is the distance between neighbouring atoms." |
655 | 655 | ] |
656 | 656 | }, |
657 | 657 | { |
|
661 | 661 | "source": [ |
662 | 662 | "### Saturation Magnetisation\n", |
663 | 663 | "#### Micromagnetics\n", |
664 | | - "The saturation magnetisation is often measured in $\\mu_\\text{B}/f.u.$ but is needed in A/m in micromagnetics. A simple converstion can be used\n", |
| 664 | + "The saturation magnetisation is often measured in $\\mu_\\text{B}/f.u.$ but is needed in A/m in micromagnetics. A simple conversion can be used\n", |
665 | 665 | "\\begin{equation}\n", |
666 | 666 | "M_s [ \\text{A}/ \\text{m}]= \\frac{\\mu_\\text{B} M_s[\\mu_\\text{B}/f.u.]}{V},\n", |
667 | 667 | "\\end{equation}\n", |
668 | | - "where $M_s[\\mu_\\text{B}/f.u.]$ is the saturation magnetisation in $\\mu_B$ per formula unit, $\\mu_B$ is the Bohr magneton in J/m, and $V$ is the volume of the formula unit in m$^3$." |
| 668 | + "where $M_s[\\mu_\\text{B}/f.u.]$ is the saturation magnetisation in $\\mu_B$ per formula unit, $\\mu_B$ is the Bohr magneton in J/T, and $V$ is the volume of the formula unit in m$^3$." |
669 | 669 | ] |
670 | 670 | }, |
671 | 671 | { |
|
704 | 704 | "metadata": {}, |
705 | 705 | "source": [ |
706 | 706 | "#### Atomistic\n", |
707 | | - "In atomistic simulations the saturation magnetisation $M_s$ in micromagnetic simulations can be related to the magnetic moment $\\mu$ simply by\n", |
| 707 | + "In atomistic simulations, the saturation magnetisation $M_s$ in micromagnetic simulations can be related to the magnetic moment $\\mu$ simply by\n", |
708 | 708 | "\\begin{equation}\n", |
709 | 709 | "\\mu = M_s V,\n", |
710 | 710 | "\\end{equation}\n", |
|
752 | 752 | "source": [ |
753 | 753 | "### Anisotropy\n", |
754 | 754 | "#### Micromagnetic\n", |
755 | | - "Anisotropy can can be measured experimentally in a variety of different ways. The results torque magnetometry, for example, can give correct value for the anisotropy in units of Jm$^{-3}$." |
| 755 | + "Anisotropy can be measured experimentally in a variety of different ways. The results torque magnetometry, for example, can give correct value for the anisotropy in units of Jm$^{-3}$." |
756 | 756 | ] |
757 | 757 | }, |
758 | 758 | { |
|
761 | 761 | "metadata": {}, |
762 | 762 | "source": [ |
763 | 763 | "#### Atomistic\n", |
764 | | - "Similarly to the saturation magnetisation the conversion between micromagnetic $K$ and atomistic anisotropy $k$ is simply volume weighted\n", |
| 764 | + "Similarly to the saturation magnetisation, the conversion between micromagnetic $K$ and atomistic anisotropy $k$ is simply volume weighted\n", |
765 | 765 | "\\begin{equation}\n", |
766 | 766 | "k = K V,\n", |
767 | 767 | "\\end{equation}\n", |
768 | 768 | "where $V$ is the crystal volume per magnetic atom.\n", |
769 | | - "This atomistic anisotropy $k$ can also be calculated from the difference in energy of $J$ in different directions. i.e. $J_{\\perp} = 6\\times 10^{-23}$ J and $J_{\\parallel} = 5 \\times 10^{-23}$ J gives an atomistic anisotropy $k=1\\times 10^{-23}$ J." |
| 769 | + "This atomistic anisotropy $k$ can also be calculated from the difference in energy between $J$ in different directions, i.e. $J_{\\perp} = 6\\times 10^{-23}$ J and $J_{\\parallel} = 5 \\times 10^{-23}$ J, gives an atomistic anisotropy $k=1\\times 10^{-23}$ J." |
770 | 770 | ] |
771 | 771 | }, |
772 | 772 | { |
|
816 | 816 | "id": "2da69916", |
817 | 817 | "metadata": {}, |
818 | 818 | "source": [ |
819 | | - "Here FeGe will be used as example for how to obtain micromagnetic parameters. FeGe has a cubic crystal structure with four Ge and four Fe atoms per unit cell with a lattice constant of $a=\t\n", |
820 | | - "4.6995$ Å and the distance between Fe atoms is 2.881 Å \\[[Wilhelm 2007](http://doi.org/10.1016/j.stam.2007.04.004)\\]. The saturation magnetisation is $1.07 \\mu_\\text{B}/f.u.$ \\[[Yamada 2003](https://doi.org/10.1016%2FS0921-4526%2802%2902471-7)\\] and magnetic ordering temperature is 278 K \\[[Lebech 1989](https://iopscience.iop.org/article/10.1088/0953-8984/1/35/010/meta)\\]. The helical period of FeGe is $\\sim 70$ nm \\[[Yu 2011](https://doi.org/10.1038/nmat2916)\\]." |
| 819 | + "Here, FeGe will be used as example for how to obtain micromagnetic parameters. FeGe has a cubic crystal structure with four Ge and four Fe atoms per unit cell with a lattice constant of $a=\t\n", |
| 820 | + "4.6995$ Å, and the distance between Fe atoms is 2.881 Å \\[[Wilhelm 2007](http://doi.org/10.1016/j.stam.2007.04.004)\\]. The saturation magnetisation is $1.07 \\mu_\\text{B}/f.u.$ \\[[Yamada 2003](https://doi.org/10.1016%2FS0921-4526%2802%2902471-7)\\], and magnetic ordering temperature is 278 K \\[[Lebech 1989](https://iopscience.iop.org/article/10.1088/0953-8984/1/35/010/meta)\\]. The helical period of FeGe is $\\sim 70$ nm \\[[Yu 2011](https://doi.org/10.1038/nmat2916)\\]." |
821 | 821 | ] |
822 | 822 | }, |
823 | 823 | { |
|
978 | 978 | "name": "python", |
979 | 979 | "nbconvert_exporter": "python", |
980 | 980 | "pygments_lexer": "ipython3", |
981 | | - "version": "3.10.12" |
| 981 | + "version": "3.8.19" |
982 | 982 | }, |
983 | 983 | "widgets": { |
984 | 984 | "application/vnd.jupyter.widget-state+json": { |
|
0 commit comments