Skip to content

Commit 4372ba8

Browse files
authored
Paper updates (#88)
* docs * docs update * docs update * docs update * use forward euler to simple build works * Update README.md * Update README.md * Update README.md * whitespace * enable DMI and anis in scaling test * skyrmion diagnostic post processing utility * renname file * restart bugfix * sundials 7.1.1 * inputs file for paper demag plot * license and copyright * patches to get regression tests running again some benchmarks will be changing * fix sundials settings * cleanup per Weiqun * logic for different physics wasn't right for single-rate case * add SUNDIALS_HOME * sundials update * comments in inputs file * scaling tests * turn on RK4 for STD3 * tweaks for final paper * bugfix - for hysteresis do not compute Hbias each time step!!! * fix std2 inputs to match text in paper (and get proper results) * fix up DMI1 problem * paper update
1 parent a210202 commit 4372ba8

33 files changed

Lines changed: 666 additions & 103 deletions

Exec/DMI_diagnostic/DMI_diagnostic.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,10 +118,10 @@ main (int argc,
118118
int k = (hi.z+1)/2;
119119
int j = (hi.y+1)/2;
120120
for (auto i = (hi.x+1)/2; i <= hi.x; ++i) {
121-
std::cout << i << " " << mfdata(i,j,k,3)/1.1e6 << " " << mfdata(i,j,k,16)+offset << "\n";
121+
std::cout << i << " " << mfdata(i,j,k,2)/1.1e6 << " " << mfdata(i,j,k,3)+offset << "\n";
122122
// 2pi cyclic fix
123123
if (i<hi.x) {
124-
if (offset==0. && mfdata(i,j,k,16)>5. && mfdata(i+1,j,k,16)<1.) {
124+
if (offset==0. && mfdata(i,j,k,3)>5. && mfdata(i+1,j,k,3)<1.) {
125125
offset = 2.*M_PI;
126126
}
127127
}
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
amrex.use_gpu_aware_mpi=1
2+
3+
n_cell = 128 128 128
4+
max_grid_size_x = 32
5+
max_grid_size_y = 32
6+
max_grid_size_z = 64
7+
8+
dt = 1.e-15
9+
nsteps = 100
10+
plot_int = -1
11+
chk_int = -1
12+
restart = -1
13+
14+
prob_lo = 0. 0. 0.
15+
prob_hi = 512.e-9 512.e-9 512.e-9
16+
17+
mu0 = 1.25663e-6
18+
19+
Mx_parser(x,y,z) = "8.e5 * (x>0.)*(x<512.e-9)*(y>0.)*(y<512.e-9)*(z>0.)*(z<512.e-9)"
20+
My_parser(x,y,z) = "0."
21+
Mz_parser(x,y,z) = "0."
22+
23+
# Field 1: mu_0 Hx=-24.6 mT, mu_0 Hy= 4.3 mT, mu_0 Hz= 0.0 mT
24+
# which is a field approximately 25 mT, directed 170 degrees counterclockwise from the positive x axis
25+
timedependent_Hbias = 0
26+
Hx_bias_parser(x,y,z,t) = "1.e5"
27+
Hy_bias_parser(x,y,z,t) = "1.e5"
28+
Hz_bias_parser(x,y,z,t) = "1.e5"
29+
30+
timedependent_alpha = 0
31+
alpha_parser(x,y,z,t) = "(x>0.)*(x<512.e-9)*(y>0.)*(y<512.e-9)*(z>0.)*(z<512.e-9) * 0.5"
32+
Ms_parser(x,y,z) = "(x>0.)*(x<512.e-9)*(y>0.)*(y<512.e-9)*(z>0.)*(z<512.e-9) * 8.e5"
33+
gamma_parser(x,y,z) = "(x>0.)*(x<512.e-9)*(y>0.)*(y<512.e-9)*(z>0.)*(z<512.e-9) * -1.759e11"
34+
exchange_parser(x,y,z) = "(x>0.)*(x<512.e-9)*(y>0.)*(y<512.e-9)*(z>0.)*(z<512.e-9) * 1.3e-11"
35+
anisotropy_parser(x,y,z) = "(x>0.)*(x<512.e-9)*(y>0.)*(y<512.e-9)*(z>0.)*(z<512.e-9) * -139.26"
36+
DMI_parser(x,y,z) = "(x>0.)*(x<512.e-9)*(y>0.)*(y<512.e-9)*(z>0.)*(z<512.e-9) * -4.5e-3"
37+
38+
precession = 1
39+
demag_coupling = 1
40+
FFT_solver = 1
41+
M_normalization = 1 # 0 = unsaturated case; 1 = saturated case
42+
exchange_coupling = 1
43+
anisotropy_coupling = 1
44+
anisotropy_axis = 0.0 0.0 1.0
45+
DMI_coupling = 1
46+
47+
# INTEGRATION
48+
49+
TimeIntegratorOption = 1 #Forward Euler
50+
51+
integration.type = RungeKutta
52+
integration.rk.type = 1
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
amrex.use_gpu_aware_mpi=1
2+
3+
n_cell = 256 128 128
4+
max_grid_size_x = 32
5+
max_grid_size_y = 32
6+
max_grid_size_z = 64
7+
8+
dt = 1.e-15
9+
nsteps = 100
10+
plot_int = -1
11+
chk_int = -1
12+
restart = -1
13+
14+
prob_lo = 0. 0. 0.
15+
prob_hi = 1024.e-9 512.e-9 512.e-9
16+
17+
mu0 = 1.25663e-6
18+
19+
Mx_parser(x,y,z) = "8.e5 * (x>0.)*(x<1024.e-9)*(y>0.)*(y<512.e-9)*(z>0.)*(z<512.e-9)"
20+
My_parser(x,y,z) = "0."
21+
Mz_parser(x,y,z) = "0."
22+
23+
# Field 1: mu_0 Hx=-24.6 mT, mu_0 Hy= 4.3 mT, mu_0 Hz= 0.0 mT
24+
# which is a field approximately 25 mT, directed 170 degrees counterclockwise from the positive x axis
25+
timedependent_Hbias = 0
26+
Hx_bias_parser(x,y,z,t) = "1.e5"
27+
Hy_bias_parser(x,y,z,t) = "1.e5"
28+
Hz_bias_parser(x,y,z,t) = "1.e5"
29+
30+
timedependent_alpha = 0
31+
alpha_parser(x,y,z,t) = "(x>0.)*(x<1024.e-9)*(y>0.)*(y<512.e-9)*(z>0.)*(z<512.e-9) * 0.5"
32+
Ms_parser(x,y,z) = "(x>0.)*(x<1024.e-9)*(y>0.)*(y<512.e-9)*(z>0.)*(z<512.e-9) * 8.e5"
33+
gamma_parser(x,y,z) = "(x>0.)*(x<1024.e-9)*(y>0.)*(y<512.e-9)*(z>0.)*(z<512.e-9) * -1.759e11"
34+
exchange_parser(x,y,z) = "(x>0.)*(x<1024.e-9)*(y>0.)*(y<512.e-9)*(z>0.)*(z<512.e-9) * 1.3e-11"
35+
anisotropy_parser(x,y,z) = "(x>0.)*(x<1024.e-9)*(y>0.)*(y<512.e-9)*(z>0.)*(z<512.e-9) * -139.26"
36+
DMI_parser(x,y,z) = "(x>0.)*(x<1024.e-9)*(y>0.)*(y<512.e-9)*(z>0.)*(z<512.e-9) * -4.5e-3"
37+
38+
precession = 1
39+
demag_coupling = 1
40+
FFT_solver = 1
41+
M_normalization = 1 # 0 = unsaturated case; 1 = saturated case
42+
exchange_coupling = 1
43+
anisotropy_coupling = 1
44+
anisotropy_axis = 0.0 0.0 1.0
45+
DMI_coupling = 1
46+
47+
# INTEGRATION
48+
49+
TimeIntegratorOption = 1 #Forward Euler
50+
51+
integration.type = RungeKutta
52+
integration.rk.type = 1
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
amrex.use_gpu_aware_mpi=1
2+
3+
n_cell = 256 256 128
4+
max_grid_size_x = 32
5+
max_grid_size_y = 32
6+
max_grid_size_z = 64
7+
8+
dt = 1.e-15
9+
nsteps = 100
10+
plot_int = -1
11+
chk_int = -1
12+
restart = -1
13+
14+
prob_lo = 0. 0. 0.
15+
prob_hi = 1024.e-9 1024.e-9 512.e-9
16+
17+
mu0 = 1.25663e-6
18+
19+
Mx_parser(x,y,z) = "8.e5 * (x>0.)*(x<1024.e-9)*(y>0.)*(y<1024.e-9)*(z>0.)*(z<512.e-9)"
20+
My_parser(x,y,z) = "0."
21+
Mz_parser(x,y,z) = "0."
22+
23+
# Field 1: mu_0 Hx=-24.6 mT, mu_0 Hy= 4.3 mT, mu_0 Hz= 0.0 mT
24+
# which is a field approximately 25 mT, directed 170 degrees counterclockwise from the positive x axis
25+
timedependent_Hbias = 0
26+
Hx_bias_parser(x,y,z,t) = "1.e5"
27+
Hy_bias_parser(x,y,z,t) = "1.e5"
28+
Hz_bias_parser(x,y,z,t) = "1.e5"
29+
30+
timedependent_alpha = 0
31+
alpha_parser(x,y,z,t) = "(x>0.)*(x<1024.e-9)*(y>0.)*(y<1024.e-9)*(z>0.)*(z<512.e-9) * 0.5"
32+
Ms_parser(x,y,z) = "(x>0.)*(x<1024.e-9)*(y>0.)*(y<1024.e-9)*(z>0.)*(z<512.e-9) * 8.e5"
33+
gamma_parser(x,y,z) = "(x>0.)*(x<1024.e-9)*(y>0.)*(y<1024.e-9)*(z>0.)*(z<512.e-9) * -1.759e11"
34+
exchange_parser(x,y,z) = "(x>0.)*(x<1024.e-9)*(y>0.)*(y<1024.e-9)*(z>0.)*(z<512.e-9) * 1.3e-11"
35+
anisotropy_parser(x,y,z) = "(x>0.)*(x<1024.e-9)*(y>0.)*(y<1024.e-9)*(z>0.)*(z<512.e-9) * -139.26"
36+
DMI_parser(x,y,z) = "(x>0.)*(x<1024.e-9)*(y>0.)*(y<1024.e-9)*(z>0.)*(z<512.e-9) * -4.5e-3"
37+
38+
precession = 1
39+
demag_coupling = 1
40+
FFT_solver = 1
41+
M_normalization = 1 # 0 = unsaturated case; 1 = saturated case
42+
exchange_coupling = 1
43+
anisotropy_coupling = 1
44+
anisotropy_axis = 0.0 0.0 1.0
45+
DMI_coupling = 1
46+
47+
# INTEGRATION
48+
49+
TimeIntegratorOption = 1 #Forward Euler
50+
51+
integration.type = RungeKutta
52+
integration.rk.type = 1
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
amrex.use_gpu_aware_mpi=1
2+
3+
n_cell = 1024 1024 1024
4+
max_grid_size_x = 32
5+
max_grid_size_y = 32
6+
max_grid_size_z = 64
7+
8+
dt = 1.e-15
9+
nsteps = 100
10+
plot_int = -1
11+
chk_int = -1
12+
restart = -1
13+
14+
prob_lo = 0. 0. 0.
15+
prob_hi = 4096.e-9 4096.e-9 4096.e-9
16+
17+
mu0 = 1.25663e-6
18+
19+
Mx_parser(x,y,z) = "8.e5 * (x>0.)*(x<4096.e-9)*(y>0.)*(y<4096.e-9)*(z>0.)*(z<4096.e-9)"
20+
My_parser(x,y,z) = "0."
21+
Mz_parser(x,y,z) = "0."
22+
23+
# Field 1: mu_0 Hx=-24.6 mT, mu_0 Hy= 4.3 mT, mu_0 Hz= 0.0 mT
24+
# which is a field approximately 25 mT, directed 170 degrees counterclockwise from the positive x axis
25+
timedependent_Hbias = 0
26+
Hx_bias_parser(x,y,z,t) = "1.e5"
27+
Hy_bias_parser(x,y,z,t) = "1.e5"
28+
Hz_bias_parser(x,y,z,t) = "1.e5"
29+
30+
timedependent_alpha = 0
31+
alpha_parser(x,y,z,t) = "(x>0.)*(x<4096.e-9)*(y>0.)*(y<4096.e-9)*(z>0.)*(z<4096.e-9) * 0.5"
32+
Ms_parser(x,y,z) = "(x>0.)*(x<4096.e-9)*(y>0.)*(y<4096.e-9)*(z>0.)*(z<4096.e-9) * 8.e5"
33+
gamma_parser(x,y,z) = "(x>0.)*(x<4096.e-9)*(y>0.)*(y<4096.e-9)*(z>0.)*(z<4096.e-9) * -1.759e11"
34+
exchange_parser(x,y,z) = "(x>0.)*(x<4096.e-9)*(y>0.)*(y<4096.e-9)*(z>0.)*(z<4096.e-9) * 1.3e-11"
35+
anisotropy_parser(x,y,z) = "(x>0.)*(x<4096.e-9)*(y>0.)*(y<4096.e-9)*(z>0.)*(z<4096.e-9) * -139.26"
36+
DMI_parser(x,y,z) = "(x>0.)*(x<4096.e-9)*(y>0.)*(y<4096.e-9)*(z>0.)*(z<4096.e-9) * -4.5e-3"
37+
38+
precession = 1
39+
demag_coupling = 1
40+
FFT_solver = 1
41+
M_normalization = 1 # 0 = unsaturated case; 1 = saturated case
42+
exchange_coupling = 1
43+
anisotropy_coupling = 1
44+
anisotropy_axis = 0.0 0.0 1.0
45+
DMI_coupling = 1
46+
47+
# INTEGRATION
48+
49+
TimeIntegratorOption = 1 #Forward Euler
50+
51+
integration.type = RungeKutta
52+
integration.rk.type = 1
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
amrex.use_gpu_aware_mpi=1
2+
3+
n_cell = 512 512 512
4+
max_grid_size_x = 32
5+
max_grid_size_y = 32
6+
max_grid_size_z = 64
7+
8+
dt = 1.e-15
9+
nsteps = 100
10+
plot_int = -1
11+
chk_int = -1
12+
restart = -1
13+
14+
prob_lo = 0. 0. 0.
15+
prob_hi = 2048.e-9 2048.e-9 2048.e-9
16+
17+
mu0 = 1.25663e-6
18+
19+
Mx_parser(x,y,z) = "8.e5 * (x>0.)*(x<2048.e-9)*(y>0.)*(y<2048.e-9)*(z>0.)*(z<2048.e-9)"
20+
My_parser(x,y,z) = "0."
21+
Mz_parser(x,y,z) = "0."
22+
23+
# Field 1: mu_0 Hx=-24.6 mT, mu_0 Hy= 4.3 mT, mu_0 Hz= 0.0 mT
24+
# which is a field approximately 25 mT, directed 170 degrees counterclockwise from the positive x axis
25+
timedependent_Hbias = 0
26+
Hx_bias_parser(x,y,z,t) = "1.e5"
27+
Hy_bias_parser(x,y,z,t) = "1.e5"
28+
Hz_bias_parser(x,y,z,t) = "1.e5"
29+
30+
timedependent_alpha = 0
31+
alpha_parser(x,y,z,t) = "(x>0.)*(x<2048.e-9)*(y>0.)*(y<2048.e-9)*(z>0.)*(z<2048.e-9) * 0.5"
32+
Ms_parser(x,y,z) = "(x>0.)*(x<2048.e-9)*(y>0.)*(y<2048.e-9)*(z>0.)*(z<2048.e-9) * 8.e5"
33+
gamma_parser(x,y,z) = "(x>0.)*(x<2048.e-9)*(y>0.)*(y<2048.e-9)*(z>0.)*(z<2048.e-9) * -1.759e11"
34+
exchange_parser(x,y,z) = "(x>0.)*(x<2048.e-9)*(y>0.)*(y<2048.e-9)*(z>0.)*(z<2048.e-9) * 1.3e-11"
35+
anisotropy_parser(x,y,z) = "(x>0.)*(x<2048.e-9)*(y>0.)*(y<2048.e-9)*(z>0.)*(z<2048.e-9) * -139.26"
36+
DMI_parser(x,y,z) = "(x>0.)*(x<2048.e-9)*(y>0.)*(y<2048.e-9)*(z>0.)*(z<2048.e-9) * -4.5e-3"
37+
38+
precession = 1
39+
demag_coupling = 1
40+
FFT_solver = 1
41+
M_normalization = 1 # 0 = unsaturated case; 1 = saturated case
42+
exchange_coupling = 1
43+
anisotropy_coupling = 1
44+
anisotropy_axis = 0.0 0.0 1.0
45+
DMI_coupling = 1
46+
47+
# INTEGRATION
48+
49+
TimeIntegratorOption = 1 #Forward Euler
50+
51+
integration.type = RungeKutta
52+
integration.rk.type = 1
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
amrex.use_gpu_aware_mpi=1
2+
3+
n_cell = 256 256 256
4+
max_grid_size_x = 32
5+
max_grid_size_y = 32
6+
max_grid_size_z = 64
7+
8+
dt = 1.e-15
9+
nsteps = 100
10+
plot_int = -1
11+
chk_int = -1
12+
restart = -1
13+
14+
prob_lo = 0. 0. 0.
15+
prob_hi = 1024.e-9 1024.e-9 1024.e-9
16+
17+
mu0 = 1.25663e-6
18+
19+
Mx_parser(x,y,z) = "8.e5 * (x>0.)*(x<1024.e-9)*(y>0.)*(y<1024.e-9)*(z>0.)*(z<1024.e-9)"
20+
My_parser(x,y,z) = "0."
21+
Mz_parser(x,y,z) = "0."
22+
23+
# Field 1: mu_0 Hx=-24.6 mT, mu_0 Hy= 4.3 mT, mu_0 Hz= 0.0 mT
24+
# which is a field approximately 25 mT, directed 170 degrees counterclockwise from the positive x axis
25+
timedependent_Hbias = 0
26+
Hx_bias_parser(x,y,z,t) = "1.e5"
27+
Hy_bias_parser(x,y,z,t) = "1.e5"
28+
Hz_bias_parser(x,y,z,t) = "1.e5"
29+
30+
timedependent_alpha = 0
31+
alpha_parser(x,y,z,t) = "(x>0.)*(x<1024.e-9)*(y>0.)*(y<1024.e-9)*(z>0.)*(z<1024.e-9) * 0.5"
32+
Ms_parser(x,y,z) = "(x>0.)*(x<1024.e-9)*(y>0.)*(y<1024.e-9)*(z>0.)*(z<1024.e-9) * 8.e5"
33+
gamma_parser(x,y,z) = "(x>0.)*(x<1024.e-9)*(y>0.)*(y<1024.e-9)*(z>0.)*(z<1024.e-9) * -1.759e11"
34+
exchange_parser(x,y,z) = "(x>0.)*(x<1024.e-9)*(y>0.)*(y<1024.e-9)*(z>0.)*(z<1024.e-9) * 1.3e-11"
35+
anisotropy_parser(x,y,z) = "(x>0.)*(x<1024.e-9)*(y>0.)*(y<1024.e-9)*(z>0.)*(z<1024.e-9) * -139.26"
36+
DMI_parser(x,y,z) = "(x>0.)*(x<1024.e-9)*(y>0.)*(y<1024.e-9)*(z>0.)*(z<1024.e-9) * -4.5e-3"
37+
38+
precession = 1
39+
demag_coupling = 1
40+
FFT_solver = 1
41+
M_normalization = 1 # 0 = unsaturated case; 1 = saturated case
42+
exchange_coupling = 1
43+
anisotropy_coupling = 1
44+
anisotropy_axis = 0.0 0.0 1.0
45+
DMI_coupling = 1
46+
47+
# INTEGRATION
48+
49+
TimeIntegratorOption = 1 #Forward Euler
50+
51+
integration.type = RungeKutta
52+
integration.rk.type = 1

Exec/inputs_scaling renamed to Exec/scaling_inputs/inputs_scaling_gpu_0.25

File renamed without changes.
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
amrex.use_gpu_aware_mpi=1
2+
3+
n_cell = 256 128 128
4+
max_grid_size_x = 128
5+
max_grid_size_y = 128
6+
max_grid_size_z = 128
7+
8+
dt = 1.e-15
9+
nsteps = 100
10+
plot_int = -1
11+
chk_int = -1
12+
restart = -1
13+
14+
prob_lo = 0. 0. 0.
15+
prob_hi = 1024.e-9 512.e-9 512.e-9
16+
17+
mu0 = 1.25663e-6
18+
19+
Mx_parser(x,y,z) = "8.e5 * (x>0.)*(x<1024.e-9)*(y>0.)*(y<512.e-9)*(z>0.)*(z<512.e-9)"
20+
My_parser(x,y,z) = "0."
21+
Mz_parser(x,y,z) = "0."
22+
23+
# Field 1: mu_0 Hx=-24.6 mT, mu_0 Hy= 4.3 mT, mu_0 Hz= 0.0 mT
24+
# which is a field approximately 25 mT, directed 170 degrees counterclockwise from the positive x axis
25+
timedependent_Hbias = 0
26+
Hx_bias_parser(x,y,z,t) = "1.e5"
27+
Hy_bias_parser(x,y,z,t) = "1.e5"
28+
Hz_bias_parser(x,y,z,t) = "1.e5"
29+
30+
timedependent_alpha = 0
31+
alpha_parser(x,y,z,t) = "(x>0.)*(x<1024.e-9)*(y>0.)*(y<512.e-9)*(z>0.)*(z<512.e-9) * 0.5"
32+
Ms_parser(x,y,z) = "(x>0.)*(x<1024.e-9)*(y>0.)*(y<512.e-9)*(z>0.)*(z<512.e-9) * 8.e5"
33+
gamma_parser(x,y,z) = "(x>0.)*(x<1024.e-9)*(y>0.)*(y<512.e-9)*(z>0.)*(z<512.e-9) * -1.759e11"
34+
exchange_parser(x,y,z) = "(x>0.)*(x<1024.e-9)*(y>0.)*(y<512.e-9)*(z>0.)*(z<512.e-9) * 1.3e-11"
35+
anisotropy_parser(x,y,z) = "(x>0.)*(x<1024.e-9)*(y>0.)*(y<512.e-9)*(z>0.)*(z<512.e-9) * -139.26"
36+
DMI_parser(x,y,z) = "(x>0.)*(x<1024.e-9)*(y>0.)*(y<512.e-9)*(z>0.)*(z<512.e-9) * -4.5e-3"
37+
38+
precession = 1
39+
demag_coupling = 1
40+
FFT_solver = 1
41+
M_normalization = 1 # 0 = unsaturated case; 1 = saturated case
42+
exchange_coupling = 1
43+
anisotropy_coupling = 1
44+
anisotropy_axis = 0.0 0.0 1.0
45+
DMI_coupling = 1
46+
47+
# INTEGRATION
48+
49+
TimeIntegratorOption = 1 #Forward Euler
50+
51+
integration.type = RungeKutta
52+
integration.rk.type = 1

0 commit comments

Comments
 (0)