|
7 | 7 | select case (patch_icpp(patch_id)%hcid) |
8 | 8 | case (150) ! 1D Smooth Alfven Case for MHD |
9 | 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)) |
| 10 | + q_prim_vf(eqn_idx%mom%beg + 1)%sf(i, 0, 0) = 0.1_wp*sin(2._wp*pi*x_cc(i)) |
| 11 | + q_prim_vf(eqn_idx%mom%beg + 2)%sf(i, 0, 0) = 0.1_wp*cos(2._wp*pi*x_cc(i)) |
12 | 12 |
|
13 | 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)) |
| 14 | + q_prim_vf(eqn_idx%B%end - 1)%sf(i, 0, 0) = 0.1_wp*sin(2._wp*pi*x_cc(i)) |
| 15 | + q_prim_vf(eqn_idx%B%end)%sf(i, 0, 0) = 0.1_wp*cos(2._wp*pi*x_cc(i)) |
16 | 16 | case (170) ! 1D profile from external data (e.g. Cantera, SDtoolbox) |
17 | 17 | ! This hardcoded case can be used to start a simulation with initial conditions given from a known 1D profile (e.g. Cantera, |
18 | 18 | ! SDtoolbox) |
|
21 | 21 | ! This is patch is hard-coded for test suite optimization used in the 1D_shuoser cases: "patch_icpp(2)%alpha_rho(1)": "1 + |
22 | 22 | ! 0.2*sin(5*x)" |
23 | 23 | if (patch_id == 2) then |
24 | | - q_prim_vf(contxb + 0)%sf(i, 0, 0) = 1 + 0.2*sin(5*x_cc(i)) |
| 24 | + q_prim_vf(eqn_idx%cont%beg + 0)%sf(i, 0, 0) = 1 + 0.2*sin(5*x_cc(i)) |
25 | 25 | end if |
26 | 26 | case (181) ! Titarev-Torro problem |
27 | 27 | ! This is patch is hard-coded for test suite optimization used in the 1D_titarevtorro cases: "patch_icpp(2)%alpha_rho(1)": |
28 | 28 | ! "1 + 0.1*sin(20*x*pi)" |
29 | | - q_prim_vf(contxb + 0)%sf(i, 0, 0) = 1 + 0.1*sin(20*x_cc(i)*pi) |
| 29 | + q_prim_vf(eqn_idx%cont%beg + 0)%sf(i, 0, 0) = 1 + 0.1*sin(20*x_cc(i)*pi) |
30 | 30 | case (182) ! Multi-component diffusion |
31 | 31 | ! This patch is a hard-coded for test suite optimization (multiple component diffusion) |
32 | 32 | x_mid_diffu = 0.05_wp/2.0_wp |
33 | 33 | width_sq = (2.5_wp*10.0_wp**(-3.0_wp))**2 |
34 | 34 | profile_shape = 1.0_wp - 0.5_wp*exp(-(x_cc(i) - x_mid_diffu)**2/width_sq) |
35 | | - q_prim_vf(momxb)%sf(i, 0, 0) = 0.0_wp |
36 | | - q_prim_vf(E_idx)%sf(i, 0, 0) = 1.01325_wp*(10.0_wp)**5 |
37 | | - q_prim_vf(advxb)%sf(i, 0, 0) = 1.0_wp |
| 35 | + q_prim_vf(eqn_idx%mom%beg)%sf(i, 0, 0) = 0.0_wp |
| 36 | + q_prim_vf(eqn_idx%E)%sf(i, 0, 0) = 1.01325_wp*(10.0_wp)**5 |
| 37 | + q_prim_vf(eqn_idx%adv%beg)%sf(i, 0, 0) = 1.0_wp |
38 | 38 |
|
39 | 39 | y1 = (0.195_wp - 0.142_wp)*profile_shape + 0.142_wp |
40 | 40 | y2 = (0.0_wp - 0.1_wp)*profile_shape + 0.1_wp |
41 | 41 | y3 = (0.214_wp - 0.0_wp)*profile_shape + 0.0_wp |
42 | 42 | y4 = (0.591_wp - 0.758_wp)*profile_shape + 0.758_wp |
43 | 43 |
|
44 | | - q_prim_vf(chemxb)%sf(i, 0, 0) = y1 |
45 | | - q_prim_vf(chemxb + 1)%sf(i, 0, 0) = y2 |
46 | | - q_prim_vf(chemxb + 2)%sf(i, 0, 0) = y3 |
47 | | - q_prim_vf(chemxb + 3)%sf(i, 0, 0) = y4 |
| 44 | + q_prim_vf(eqn_idx%species%beg)%sf(i, 0, 0) = y1 |
| 45 | + q_prim_vf(eqn_idx%species%beg + 1)%sf(i, 0, 0) = y2 |
| 46 | + q_prim_vf(eqn_idx%species%beg + 2)%sf(i, 0, 0) = y3 |
| 47 | + q_prim_vf(eqn_idx%species%beg + 3)%sf(i, 0, 0) = y4 |
48 | 48 |
|
49 | 49 | temp = (320.0_wp - 1350.0_wp)*profile_shape + 1350.0_wp |
50 | 50 |
|
51 | 51 | molar_mass_inv = y1/31.998_wp + y2/18.01508_wp + y3/16.04256_wp + y4/28.0134_wp |
52 | 52 |
|
53 | | - q_prim_vf(contxb)%sf(i, 0, 0) = 1.01325_wp*(10.0_wp)**5/(temp*8.3144626_wp*1000.0_wp*molar_mass_inv) |
| 53 | + q_prim_vf(eqn_idx%cont%beg)%sf(i, 0, 0) = 1.01325_wp*(10.0_wp)**5/(temp*8.3144626_wp*1000.0_wp*molar_mass_inv) |
54 | 54 | case default |
55 | 55 | call s_int_to_str(patch_id, iStr) |
56 | 56 | call s_mpi_abort("Invalid hcid specified for patch " // trim(iStr)) |
|
0 commit comments