Skip to content

Commit 76b6620

Browse files
Smooth MHD Convergence Cases (#1040)
1 parent d7d2ec6 commit 76b6620

File tree

8 files changed

+528
-0
lines changed

8 files changed

+528
-0
lines changed
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
#!/usr/bin/env python3
2+
import json
3+
import math
4+
5+
# Case for smooth Alfven waves from section 6.3.1 of:
6+
# The ∇·B=0 Constraint in Shock-Capturing Magnetohydrodynamics Codes
7+
# Gábor Tóth
8+
9+
print(
10+
json.dumps(
11+
{
12+
# Logistics
13+
"run_time_info": "T",
14+
# Computational Domain Parameters
15+
"x_domain%beg": 0.0,
16+
"x_domain%end": 1.0,
17+
"m": 1023,
18+
"n": 0,
19+
"p": 0,
20+
"dt": 1.0e-5,
21+
"t_step_start": 0,
22+
"t_step_stop": 100000,
23+
"t_step_save": 10000,
24+
# Simulation Algorithm Parameters
25+
"num_patches": 1,
26+
"model_eqns": 2,
27+
"alt_soundspeed": "F",
28+
"num_fluids": 1,
29+
"mpp_lim": "F",
30+
"mixture_err": "F",
31+
"time_stepper": 3,
32+
"weno_order": 3,
33+
"weno_eps": 1e-7,
34+
"null_weights": "F",
35+
"mp_weno": "F",
36+
"riemann_solver": 4,
37+
"wave_speeds": 1,
38+
"avg_state": 2,
39+
"bc_x%beg": -1,
40+
"bc_x%end": -1,
41+
# Formatted Database Files Structure Parameters
42+
"format": 1,
43+
"precision": 2,
44+
"prim_vars_wrt": "T",
45+
"rho_wrt": "T",
46+
"parallel_io": "F",
47+
# MHD
48+
"mhd": "T",
49+
"Bx0": 1.0,
50+
"patch_icpp(1)%geometry": 1,
51+
"patch_icpp(1)%hcid": 150,
52+
"patch_icpp(1)%x_centroid": 0.5,
53+
"patch_icpp(1)%length_x": 1.0,
54+
"patch_icpp(1)%vel(1)": 0.0,
55+
"patch_icpp(1)%vel(2)": 0.0,
56+
"patch_icpp(1)%vel(3)": 0.0,
57+
"patch_icpp(1)%pres": 0.1,
58+
"patch_icpp(1)%By": 0.0,
59+
"patch_icpp(1)%Bz": 0.0,
60+
"patch_icpp(1)%alpha_rho(1)": 1.0,
61+
"patch_icpp(1)%alpha(1)": 1.0,
62+
# Fluids Physical Parameters
63+
"fluid_pp(1)%gamma": 1.0e00 / (5.0 / 3.0 - 1.0e00),
64+
"fluid_pp(1)%pi_inf": 0.0,
65+
}
66+
)
67+
)
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
#!/usr/bin/env python3
2+
import json
3+
import math
4+
5+
# Case for smoothmagnetic vortex from:
6+
# Implicit hybridized discontinuous Galerkin methods for
7+
# compressible magnetohydrodynamics
8+
# C. Ciuca, P. Fernandez, A. Christophe, N.C. Nguyen, J. Peraire
9+
10+
# A 2D magnetic vortex advects for a period of T=10 diagonally
11+
12+
# Configuring case dictionary
13+
print(
14+
json.dumps(
15+
{
16+
# Logistics
17+
"run_time_info": "T",
18+
# Computational Domain Parameters
19+
"x_domain%beg": -5.0,
20+
"x_domain%end": 5.0,
21+
"y_domain%beg": -5.0,
22+
"y_domain%end": 5.0,
23+
"m": 1024,
24+
"n": 1024,
25+
"p": 0,
26+
"dt": 1.0e-4,
27+
"t_step_start": 0,
28+
"t_step_stop": 100000,
29+
"t_step_save": 1000,
30+
# Simulation Algorithm Parameters
31+
"num_patches": 1,
32+
"model_eqns": 2,
33+
"alt_soundspeed": "F",
34+
"num_fluids": 1,
35+
"mpp_lim": "F",
36+
"mixture_err": "F",
37+
"time_stepper": 3,
38+
"weno_order": 5,
39+
"weno_eps": 1.0e-12,
40+
"null_weights": "F",
41+
"mp_weno": "F",
42+
"riemann_solver": 4,
43+
"wave_speeds": 1,
44+
"avg_state": 2,
45+
"bc_x%beg": -1,
46+
"bc_x%end": -1,
47+
"bc_y%beg": -1,
48+
"bc_y%end": -1,
49+
# Formatted Database Files Structure Parameters
50+
"format": 1,
51+
"precision": 2,
52+
"prim_vars_wrt": "T",
53+
"rho_wrt": "T",
54+
"parallel_io": "T",
55+
# MHD
56+
"mhd": "T",
57+
"patch_icpp(1)%hcid": 252,
58+
"patch_icpp(1)%geometry": 3,
59+
"patch_icpp(1)%x_centroid": 0.0,
60+
"patch_icpp(1)%y_centroid": 0.0,
61+
"patch_icpp(1)%length_x": 10.0,
62+
"patch_icpp(1)%length_y": 10.0,
63+
"patch_icpp(1)%vel(1)": 0.0,
64+
"patch_icpp(1)%vel(2)": 0.0,
65+
"patch_icpp(1)%vel(3)": 0.0,
66+
"patch_icpp(1)%pres": 5.0 / (12 * math.pi),
67+
"patch_icpp(1)%Bx": 0.0,
68+
"patch_icpp(1)%By": 0.0,
69+
"patch_icpp(1)%Bz": 0.0,
70+
"patch_icpp(1)%alpha_rho(1)": 25.0 / (36.0 * math.pi),
71+
"patch_icpp(1)%alpha(1)": 1.0,
72+
# Fluids Physical Parameters
73+
"fluid_pp(1)%gamma": 1.0e00 / (5.0 / 3.0 - 1.0e00),
74+
"fluid_pp(1)%pi_inf": 0.0,
75+
}
76+
)
77+
)

src/common/include/1dHardcodedIC.fpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,15 @@
55

66
#:def Hardcoded1D()
77
select case (patch_icpp(patch_id)%hcid)
8+
case (150) ! 1D Smooth Alfven Case for MHD
9+
! velocity
10+
q_prim_vf(momxb + 1)%sf(i, 0, 0) = 0.1_wp*sin(2._wp*pi*x_cc(i))
11+
q_prim_vf(momxb + 2)%sf(i, 0, 0) = 0.1_wp*cos(2._wp*pi*x_cc(i))
12+
13+
! magnetic field
14+
q_prim_vf(B_idx%end - 1)%sf(i, 0, 0) = 0.1_wp*sin(2._wp*pi*x_cc(i))
15+
q_prim_vf(B_idx%end)%sf(i, 0, 0) = 0.1_wp*cos(2._wp*pi*x_cc(i))
16+
817
case (170)
918
! This hardcoded case can be used to start a simulation with initial conditions given from a known 1D profile (e.g. Cantera, SDtoolbox)
1019
@: HardcodedReadValues()

src/common/include/2dHardcodedIC.fpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,22 @@
156156
q_prim_vf(E_idx)%sf(i, j, 0) = 3.e-5_wp
157157
end if
158158

159+
case (252) ! MHD Smooth Magnetic Vortex
160+
! Section 5.2 of
161+
! Implicit hybridized discontinuous Galerkin methods for compressible magnetohydrodynamics
162+
! C. Ciuca, P. Fernandez, A. Christophe, N.C. Nguyen, J. Peraire
163+
164+
! velocity
165+
q_prim_vf(momxb)%sf(i, j, 0) = 1._wp - (y_cc(j)*exp(1 - (x_cc(i)**2 + y_cc(j)**2))/(2.*pi))
166+
q_prim_vf(momxb + 1)%sf(i, j, 0) = 1._wp + (x_cc(i)*exp(1 - (x_cc(i)**2 + y_cc(j)**2))/(2.*pi))
167+
168+
! magnetic field
169+
q_prim_vf(B_idx%beg)%sf(i, j, 0) = -y_cc(j)*exp(1 - (x_cc(i)**2 + y_cc(j)**2))/(2.*pi)
170+
q_prim_vf(B_idx%beg + 1)%sf(i, j, 0) = x_cc(i)*exp(1 - (x_cc(i)**2 + y_cc(j)**2))/(2.*pi)
171+
172+
! pressure
173+
q_prim_vf(E_idx)%sf(i, j, 0) = 1._wp + (1 - 2._wp*(x_cc(i)**2 + y_cc(j)**2))*exp(1 - (x_cc(i)**2 + y_cc(j)**2))/((2._wp*pi)**3)
174+
159175
case (270)
160176
! This hardcoded case extrudes a 1D profile to initialize a 2D simulation domain
161177
@: HardcodedReadValues()

tests/4A759316/golden-metadata.txt

Lines changed: 155 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)