Skip to content

Commit

Permalink
doc changes #252
Browse files Browse the repository at this point in the history
  • Loading branch information
root committed Mar 22, 2023
1 parent bd18d11 commit 9b7e30f
Show file tree
Hide file tree
Showing 11 changed files with 359 additions and 460 deletions.
3 changes: 0 additions & 3 deletions doc/content/MSCA_EU_Horizon2020_Results/horizon2020_ex2.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,6 @@

# H2020-MSCA-IF-2019, Example: FE DWs

!alert construction title=Documentation in-progress
This section will have information that will be available when the review process is complete for the main publication encompassing this work. Please contact the developers if you need assistance with this aspect of the module.

This page details how to obtain inhomogeneous solutions of BFO for the structural order (i.e. FE DWs). The relevant input file is `BFO_dwP1A1_100.i` located in the FERRET tutorials subdirectory. The name of the input file is already suggestive, as it identifies that one component of $\mathbf{P}$ and one component $\mathbf{A}$ will switch indicating that this is for the 1/1 DW (see [!cite](Mangeri2023) on arXiv for more description of this notation). The DW plane is oriented $(100)$ which suggests the plane normal is along $x$. The 1/1 $(100)$-oriented DW only has large gradients in the components of $\partial A_z / \partial x$ and $\partial P_z / \partial x$. As such, we can simulate this DW profile in quasi 1D with the following `Mesh` block,

!listing tutorial/BFO_dwP1A1_100.i
Expand Down
9 changes: 8 additions & 1 deletion doc/content/MSCA_EU_Horizon2020_Results/horizon2020_ex3.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,14 @@ We select an initial condition with the `FunctionIC` and `ParsedFunction` classe
link=False
language=python

with $x$ being the long direction of the computational volume. Relaxation of $\mathbf{m}_\eta$ with this mesh takes around 5260 seconds on 6 processors. We supply the reader with the output of this mesh file if needed. The DW profile of $\mathbf{m}$ can be visualized in `ParaView` by using the `PlotOverLine` filter and could like the below figure,
with $x$ being the long direction of the computational volume. Relaxation of $\mathbf{m}_\eta$ with this mesh takes around 5260 seconds on 6 processors. We supply the reader with the output of this mesh file if needed. The `Executioner` options,

!listing tutorial/BFO_mag_wall_rd.i
block=Executioner
link=False
language=python

sets the time integration method as `NewmarkBeta` with an upper limit of $dt = 0.1$ ps. The DW profile of $\mathbf{m}$ can be visualized in `ParaView` by using the `PlotOverLine` filter and could like the below figure,

!media media/tut_mag_DW.png style=display:block;margin:auto;width:60%; caption=Components of $\mathbf{m}$ across the 1/1 (100) DW. The net magnetization switches by $71^\circ$. id=tut_mag_DW

Expand Down
54 changes: 51 additions & 3 deletions doc/content/MSCA_EU_Horizon2020_Results/horizon2020_ex5.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,62 @@

This page details how to obtain spin wave transport across the multiferroic domain boundary. In order to perform this calculation, one needs the information from two other examples (first relax the FE DW, then get the relaxed magnetic DW in the presence of the FE domain boundary). These are handled in Example 2 and 3 of the MSCA tutorials respectively.

The initial condition is a fixed $\{\mathbf{P},\mathbf{A}\} configuration with a corresponding relaxed $\{\mathbf{L},\mathbf{m}\}$ ground state. We load in the `Exodus` file from the previous example in the `Mesh` block,
The initial condition is a fixed $\{\mathbf{P},\mathbf{A}\}$ configuration with a corresponding relaxed $\{\mathbf{L},\mathbf{m}\}$ ground state. We load in the `Exodus` file from the previous example in the `Mesh` block,

!listing tutorial/BFOspw_P111A111-P111bA111b_m1_H111_alp0a0f7DW.i
block=Mesh
link=False
language=python

and the `Variables` block,

!listing tutorial/BFOspw_P111A111-P111bA111b_m1_H111_alp0a0f7DW.i
block=Variables
link=False
language=python

A visualization of the spin wave traveling through the DW region is provided below from `ParaView`,
which uses the `initial_from_file_var` with the `LATEST` for `initial_from_file_timestep` option. The values of $\mathbf{L}$ and $\mathbf{m}$ are calculated in the `AuxKernels`. We then use the `ParsedFunction` system to set up an applied perturbation to generate spin waves in the $\pm\mathbf{k}$ directions,

!media media/sw_ex_page.mp4 style=display:block;margin:auto;width:67%; caption=Spin wave transport through the 1/1 (100) FE domain boundary. The plotted variables are the components of the weak net magnetization $m_k$. id=fig_sw_ex_page
!listing tutorial/BFOspw_P111A111-P111bA111b_m1_H111_alp0a0f7DW.i
block=Functions
link=False
language=python

with `pulse1`, `pulse2`, and `pulse3` being the $x$, $y$, and $z$ components of $\mathbf{H}_\mathrm{appl}$ defined as,

\begin{equation}\label{eqn:perturb}
\begin{aligned}
\mathbf{H}_\mathrm{appl} &= H_0 \, \mathrm{sinc}[k_0 (x-x_0)] \, \mathrm{sinc}[\omega_0 (t-t_0)] \, e^{-p_0(x-x_0)^2} \,\hat{\mathbf{h}}
\end{aligned}
\end{equation}

where field amplitude $H_0$, excitation location $x_0$, gaussian intensity profile parameter $p_0 = 0.16$ $\mathrm{nm}^{-2}$, and $k_0 = 10$ $\mathrm{nm}^{-1}$ control the perturbation distribution in spacetime. The director $\hat{\mathbf{h}}$ orients the magnetic field with respect to $\mathbf{m}$. Finally, we cut-off the pulse at $t_0 = 1$ ps and excite the spin waves at a frequency $\omega_0 = 500$ GHz. The `Kernels` for this problem are set as,

!listing tutorial/BFOspw_P111A111-P111bA111b_m1_H111_alp0a0f7DW.i
block=Kernels
link=False
language=python

which is the same as the previous magnetic DW simulation of Example 3 with the exception of `AFMInteractionCartLLHConst` which adds the residual and jacobian contributions due to the Zeeman interaction,

\begin{equation}\label{eqn:zeeman}
\begin{aligned}
f_\mathrm{Zeeman} = -\mathbf{m}\cdot\mathbf{H}_\mathrm{appl}
\end{aligned}
\end{equation}

for a constant $\mathbf{H}_\mathrm{appl}$ field (no dependence on $\Phi_\mathrm{H}$). The `Executioner` options are set,

!listing tutorial/BFOspw_P111A111-P111bA111b_m1_H111_alp0a0f7DW.i
block=Executioner
link=False
language=python

with the `NewmarkBeta` time integration method and an upper limit of $dt = 50$ fs. A visualization of the spin wave traveling through the DW region is provided below from `ParaView`,

!media media/sw_ex_page.mp4 style=display:block;margin:auto;width:67%; caption=Animation of spin wave transport through the 1/1 (100) FE domain boundary. The plotted variables are the components of the weak net magnetization $m_k$. id=fig_sw_ex_page

Different spin waves can be generate by changing the definitions of the `ParsedFunctions`.



Expand Down
15 changes: 4 additions & 11 deletions doc/content/MSCA_EU_Horizon2020_Results/horizon2020_results1.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,17 @@

# H2020-MSCA-IF-2019

!alert construction title=Documentation in-progress
This section will have information that will be available when the review process is complete for the main publication encompassing this work. Please contact the developers if you need assistance with this aspect of the module.

In the framework of the Marie-Curie individual fellowship - [H2020-MSCA-IF-2019](https://ec.europa.eu/info/funding-tenders/opportunities/portal/screen/opportunities/topic-details/msca-if-2020) - call, this additional page was added to the FERRET website in order to disseminate results of [Project SCALES - 897614](https://cordis.europa.eu/project/id/897614) to the general public and the technical audience. We will discuss background and the modeling effort, summarize our key findings, and provide examples of how to reproduce representative results obtained during the funding period which are described in detail within our article [!cite](Mangeri2023) currently on the arXiv preprint server and under review.

# Background

The project proposal submitted in 2019 encapsulated the main idea of developing a new continuum approach for simulations of multiferroic compounds. Multiferroics are a class of materials which display both an electric and magnetic ordering below their critical phase transition temperature. Specifically, we use the perovskite $\mathrm{BiFeO}_3$ (BFO) as our material workhorse. BFO displays both ferroelectricity and antiferromagnetism at room temperature, leading to a host of possible applications from beyond-CMOS logic gates, tunneling magnetoresistant spintronic valves, THz radiation emitters, enhanced piezoelectric elements, ultrafast acoustic modulators, to linear electrooptical components. We refer the reader to INSERT for an excellent review of the properties of BFO along with its technological applications.
The project (submitted in September, 2019) proposed developing a continuum approach for simulations of multiferroic compounds. Multiferroics are a class of materials which display both an electric and magnetic ordering below their critical phase transition temperature. Specifically, we use the perovskite $\mathrm{BiFeO}_3$ (BFO) as our material workhorse. BFO displays both ferroelectricity and antiferromagnetism at room temperature, leading to a host of possible applications from beyond-CMOS logic gates, tunneling magnetoresistant spintronic valves, THz radiation emitters, enhanced piezoelectric elements, ultrafast acoustic modulators, to linear electrooptical components. We refer the reader to [!cite](Fiebig2016) for an excellent review of multiferroics, including BFO, along with its technological applications. As miniaturization is a significant concern for next generation electronic device design, the thicknesses of multiferroic films synthesized for these applications are in the range of a few 10’s of nm to a few µm's. This length-scale criterion places limits of the types of theoretical methodologies that can be used to study and predict properties. This was the motivation, in the context of SCALES, to develop a continuum approach.

To study these materials at the device-relevant scale, we proposed to couple the phase field method for ferroelectrics with the micromagnetic approach. Both of these methodologies utilize a "coarse-grained" description of order parameters. Both approaches are phenomenological in origin and have been shown to describe well the theoretical picture of ferroelectric and ferromagnetic materials respectively. Typically, this is challenging because the energy of the magnetic order tends to be many orders of magnitude lower than the structural distortions. Incidentally, this leads to different time and length scales which accompany the structural or magnetic phase transitions. The idea was to have, self-consistently on the same time and length scale, a model for both electric and magnetic order unlocking the magnetoelectric properties in both static or dynamic configurations. This allowed us to investigate some applications of the model corresponding to magnetoelectric switching and also spin-wave transport across the multiferroic domain boundaries.

We leveraged the Multiphysics Object Oriented Simulation Environment (MOOSE) framework which is open-source software convenient for rapid model development with advanced features. [MOOSE](https://mooseframework.inl.gov/) is developed and maintained at Idaho National Laboratory in the United States. We implement our models of BFO within FERRET (this website), an open-source add-on module (part of the MOOSE ecosystem of applications). See the [landing page](index.md) for more information on FERRET.

Stay tuned for an update!

# Properties of $\mathrm{BiFeO}_3$ and coupled model
# Properties and coupled polar-magnetic model

We consider a zero temperature limit free energy density functional defined as a sum of Landau-type energy density from the structural distortions of the lattice ($f_\mathrm{latt}$), the magnetic energy density due to the nominally collinear spin subsystem ($f_\mathrm{sp}$), and a coupling between the electric and magnetic order parameters ($f_\mathrm{MP}$) in single crystal BFO.

Expand All @@ -39,9 +34,7 @@ A homogeneous strain arises below the structural phase transition temperature wh
\end{aligned}
\end{equation}

The variable $u_i$ is the component of the elastic displacement vector $\mathbf{u}$ which accompanies the ferroelectric phase transition in this material (sometimes called spontaneous or ferroelastic strain).

For the spin subsystem, BFO is an antiferromagnet with anti-aligned spins at first-neighboring Fe sites (G-type) leading to two distinct sublattices $\mathbf{m}_1$ and $\mathbf{m}_2$. The quantity $\mathbf{L}$ is the AFM N\'{e}el vector which we define as $\mathbf{L} = \mathbf{m}_1 - \mathbf{m}_2$. The magnetic orientation is of the easy-plane variety, whose plane normal is the polar director. We propose that the presence of the antisymmetric Dzhaloshinksii-Moriya interaction (DMI) introduces a free energy density term of the form,
The variable $u_i$ is the component of the elastic displacement vector $\mathbf{u}$ which accompanies the ferroelectric phase transition in this material (sometimes called spontaneous or ferroelastic strain). For the spin subsystem, BFO is an antiferromagnet with anti-aligned spins at first-neighboring Fe sites (G-type) leading to two distinct sublattices $\mathbf{m}_1$ and $\mathbf{m}_2$. The quantity $\mathbf{L}$ is the AFM N\'{e}el vector which we define as $\mathbf{L} = \mathbf{m}_1 - \mathbf{m}_2$. The magnetic orientation is of the easy-plane variety, whose plane normal is the polar director. We propose that the presence of the antisymmetric Dzhaloshinksii-Moriya interaction (DMI) introduces a free energy density term of the form,

\begin{equation}\label{eqn:dmi}
\begin{aligned}
Expand Down Expand Up @@ -72,7 +65,7 @@ for the structural order ($\{\mathbf{P},\mathbf{A}\}$) and
\end{aligned}
\end{equation}

for the spin system. Here, $\Gamma_P, \Gamma_A$ are a relaxation coefficients related to the time scales involved in the phase transition. The coeffiicent $\alpha$ is a phenomenological damping constant which if made nonzero (and positive) drives the magnetic system to the ground state.
for the spin system. Here, $\Gamma_P, \Gamma_A$ are a relaxation coefficients related to the time scales involved in the structural phase transition. The coeffiicent $\alpha$ is a phenomenological damping constant which if made nonzero (and positive) drives the magnetic system to the ground state.

A detailed description of our model is shared in the preprint on arXiv at [!cite](Mangeri2023).

Expand Down
9 changes: 9 additions & 0 deletions doc/content/bib/ferret.bib
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,15 @@ @article{Jungwirth2016
journal={Nature Nanotechnology}
}

@article{Fiebig2016,
title={Advances in magnetoelectric multiferroics},
author={Fiebig, M. and Lottermoser, T. and Meier, D. and Trassin, M.},
volume={1},
number={16046},
year={2016},
journal={Nature Reviews Materials}
}
@article{Hirohata2020,
title={Review on spintronics: Principles and device applications},
author={Hirohata, A. and Yamada, K. and Nakatani, Y. and Prejbeanu, I.-L. and Di\'{e}ny, B. and Pirro, P. and Hillebrands, B.},
Expand Down
7 changes: 3 additions & 4 deletions doc/content/getting_started/install.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,14 +51,13 @@ where `N` is the number of processors you want to use to compile FERRET in paral
> +\[Optional\]+ To make sure FERRET is working properly, run the regression tests:
>
> ```bash
> ./run_tests -j N
> ./run_tests -j N
> ```

### Step 4 (optional): Compile with ScalFMM to use the fast-multipole boundary element method


The ./configure step can include additional libraries such as BOOST which will allow compile of MOOSE objects with mathematical special functions. Or it can include an advanced fast-multipole boundary element method (FMM-BEM) developed by Prof. Xikai Jiang and co-workers. In order to use the BEM, you need to compile ScalFMM with the following commands
The `./configure` step can include additional libraries such as BOOST which will allow compile of MOOSE objects with mathematical special functions. Or it can include an advanced fast-multipole boundary element method (FMM-BEM) developed by Prof. Xikai Jiang and co-workers. In order to use the BEM, you need to compile ScalFMM with the following commands

```bash
cd <ferret>/scripts
Expand All @@ -70,6 +69,6 @@ cd <ferret>
make -j2
```

For compilation of this $O(\mathrm{N})$ solver on supercomputing resources, it is recommended to avoid the ./configure step and manually set the FERRET_HAVE_SCALFMM flag. The generation of the M2L compressors for the FMM-BEM should be done in serial and then can be read on any number of processors. The M2L compressor files do not depend on the mesh, but only the flags of the FMM-BEM method.
For compilation of this $O(\mathrm{N})$ solver on supercomputing resources, it is recommended to avoid the `./configure` step and manually set the `FERRET_HAVE_SCALFMM` flag. The generation of the M2L compressors for the FMM-BEM should be done in serial and then can be read on any number of processors. The `M2L` compressor files do not depend on the `Mesh`, but only the flags of the FMM-BEM method.

This is an experimental feature at the moment and we plan to extend this capability further. More reading at [!cite](Jiang2016).
29 changes: 7 additions & 22 deletions tutorial/AFMR_MnF2_ex.i
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@

##see J. Appl. Phys. 126, 151101 (2019);


Nx = 2
Ny = 2
Nz = 2
Expand Down Expand Up @@ -58,14 +57,6 @@ zMax = 0.01
[]

[Functions]

##############################
##
## Define the alpha_long
## expression to be used
##
##############################

[./bc_func_1]
type = ParsedFunction
value = 'st'
Expand Down Expand Up @@ -93,7 +84,7 @@ zMax = 0.01
type = RandomConstrainedVectorFieldIC
phi = azimuth_phi1
theta = polar_theta1
M0s = 1.0 #amplitude of the RandomConstrainedVectorFieldIC
M0s = 1.0
component = 1
[../]
[../]
Expand All @@ -104,7 +95,7 @@ zMax = 0.01
type = RandomConstrainedVectorFieldIC
phi = azimuth_phi1
theta = polar_theta1
M0s = 1.0 #amplitude of the RandomConstrainedVectorFieldIC
M0s = 1.0
component = 2
[../]
[../]
Expand All @@ -116,7 +107,7 @@ zMax = 0.01
type = RandomConstrainedVectorFieldIC
phi = azimuth_phi2
theta = polar_theta2
M0s = 1.0 #amplitude of the RandomConstrainedVectorFieldIC
M0s = 1.0
component = 0
[../]
[../]
Expand All @@ -127,7 +118,7 @@ zMax = 0.01
type = RandomConstrainedVectorFieldIC
phi = azimuth_phi2
theta = polar_theta2
M0s = 1.0 #amplitude of the RandomConstrainedVectorFieldIC
M0s = 1.0
component = 1
[../]
[../]
Expand All @@ -138,19 +129,21 @@ zMax = 0.01
type = RandomConstrainedVectorFieldIC
phi = azimuth_phi2
theta = polar_theta2
M0s = 1.0 #amplitude of the RandomConstrainedVectorFieldIC
M0s = 1.0
component = 2
[../]
[../]

[]

[AuxVariables]

#--------------------------------------------#
# #
# field to seed IC that obeys constraint #
# #
#--------------------------------------------#

[./azimuth_phi1]
order = FIRST
family = LAGRANGE
Expand Down Expand Up @@ -215,7 +208,6 @@ zMax = 0.01
family = LAGRANGE
[../]


[./SSMag_x]
order = FIRST
family = LAGRANGE
Expand Down Expand Up @@ -263,7 +255,6 @@ zMax = 0.01
variable = mag2_z
[../]


#---------------------------------------#
# #
# AFM resonance kernel terms #
Expand All @@ -289,7 +280,6 @@ zMax = 0.01
component = 2
[../]


[./afmr2_x]
type = UniaxialAFMSublattice
variable = mag2_x
Expand Down Expand Up @@ -474,7 +464,6 @@ zMax = 0.01
variable = mag2_z
[../]


#---------------------------------------#
# #
# AFM resonance kernel terms #
Expand All @@ -500,7 +489,6 @@ zMax = 0.01
component = 2
[../]


[./afmr2_x]
type = UniaxialAFMSublattice
variable = mag2_x
Expand Down Expand Up @@ -592,7 +580,6 @@ zMax = 0.01
variable = 'mag1_x mag1_y mag1_z mag2_x mag2_y mag2_z'
[../]
[../]

[]

[Postprocessors]
Expand All @@ -618,7 +605,6 @@ zMax = 0.01
execute_on = 'initial timestep_end final'
[../]


[./<m1x>]
type = ElementAverageValue
variable = mag1_x
Expand Down Expand Up @@ -651,7 +637,6 @@ zMax = 0.01
execute_on = 'initial timestep_end final'
[../]


[./<Lx>]
type = ElementAverageValue
variable = Neel_L_x
Expand Down
Loading

0 comments on commit 9b7e30f

Please sign in to comment.