Skip to content

Commit fdbdcae

Browse files
committed
s_compute_wave_speed passed Hypoelasticity tests
1 parent ca69b3c commit fdbdcae

File tree

1 file changed

+31
-24
lines changed

1 file changed

+31
-24
lines changed

src/common/m_variables_conversion.fpp

Lines changed: 31 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ module m_variables_conversion
4444
#ifndef MFC_PRE_PROCESS
4545
s_compute_speed_of_sound, &
4646
s_compute_fast_magnetosonic_speed, &
47+
s_compute_wave_speed, &
4748
#endif
4849
s_finalize_variables_conversion_module
4950

@@ -1761,31 +1762,38 @@ contains
17611762
tau_e_L(idx_tau) + rho_L*vel_L(idx)*(s_L - vel_L(idx)) - &
17621763
rho_R*vel_R(idx)*(s_R - vel_R(idx)))/(rho_L*(s_L - vel_L(idx)) - &
17631764
rho_R*(s_R - vel_R(idx)))
1765+
else if (mhd) then
1766+
s_L = min(vel_L(idx) - c_fast_L, vel_R(idx) - c_fast_R)
1767+
s_R = max(vel_R(idx) + c_fast_R, vel_L(idx) + c_fast_L)
1768+
s_S = (pres_R - pres_L + rho_L*vel_L(idx)* &
1769+
(s_L - vel_L(idx)) - rho_R*vel_R(idx)*(s_R - vel_R(idx))) &
1770+
/(rho_L*(s_L - vel_L(idx)) - rho_R*(s_R - vel_R(idx)))
1771+
else if (hypoelasticity) then
1772+
s_L = min(vel_L(idx) - sqrt(c_L*c_L + (((4._wp*G_L)/3._wp) + &
1773+
tau_e_L(idx_tau))/rho_L) &
1774+
, vel_R(idx) - sqrt(c_R*c_R + (((4._wp*G_R)/3._wp) + &
1775+
tau_e_R(idx_tau))/rho_R))
1776+
s_R = max(vel_R(idx) + sqrt(c_R*c_R + (((4._wp*G_R)/3._wp) + &
1777+
tau_e_R(idx_tau))/rho_R) &
1778+
, vel_L(idx) + sqrt(c_L*c_L + (((4._wp*G_L)/3._wp) + &
1779+
tau_e_L(idx_tau))/rho_L))
1780+
s_S = (pres_R - pres_L + rho_L*vel_L(idx)* &
1781+
(s_L - vel_L(idx)) - rho_R*vel_R(idx)*(s_R - vel_R(idx))) &
1782+
/(rho_L*(s_L - vel_L(idx)) - rho_R*(s_R - vel_R(idx)))
1783+
else if (hyperelasticity) then
1784+
s_L = min(vel_L(idx) - sqrt(c_L*c_L + (4._wp*G_L/3._wp)/rho_L) &
1785+
, vel_R(idx) - sqrt(c_R*c_R + (4._wp*G_R/3._wp)/rho_R))
1786+
s_R = max(vel_R(idx) + sqrt(c_R*c_R + (4._wp*G_R/3._wp)/rho_R) &
1787+
, vel_L(idx) + sqrt(c_L*c_L + (4._wp*G_L/3._wp)/rho_L))
1788+
s_S = (pres_R - pres_L + rho_L*vel_L(idx)* &
1789+
(s_L - vel_L(idx)) - rho_R*vel_R(idx)*(s_R - vel_R(idx))) &
1790+
/(rho_L*(s_L - vel_L(idx)) - rho_R*(s_R - vel_R(idx)))
17641791
else
1765-
else if (mhd) then
1766-
s_L = min(vel_L(idx) - c_fast_L, vel_R(idx) - c_fast_R)
1767-
s_R = max(vel_R(idx) + c_fast_R, vel_L(idx) + c_fast_L)
1768-
else if (hypoelasticity) then
1769-
s_L = min(vel_L(idx) - sqrt(c_L*c_L + (((4._wp*G_L)/3._wp) + &
1770-
tau_e_L(idx_tau))/rho_L) &
1771-
, vel_R(idx) - sqrt(c_R*c_R + (((4._wp*G_R)/3._wp) + &
1772-
tau_e_R(idx_tau))/rho_R))
1773-
s_R = max(vel_R(idx) + sqrt(c_R*c_R + (((4._wp*G_R)/3._wp) + &
1774-
tau_e_R(idx_tau))/rho_R) &
1775-
, vel_L(idx) + sqrt(c_L*c_L + (((4._wp*G_L)/3._wp) + &
1776-
tau_e_L(idx_tau))/rho_L))
1777-
else if (hyperelasticity) then
1778-
s_L = min(vel_L(idx) - sqrt(c_L*c_L + (4._wp*G_L/3._wp)/rho_L) &
1779-
, vel_R(idx) - sqrt(c_R*c_R + (4._wp*G_R/3._wp)/rho_R))
1780-
s_R = max(vel_R(idx) + sqrt(c_R*c_R + (4._wp*G_R/3._wp)/rho_R) &
1781-
, vel_L(idx) + sqrt(c_L*c_L + (4._wp*G_L/3._wp)/rho_L))
1782-
else
1783-
s_L = min(vel_L(idx) - c_L, vel_R(idx) - c_R)
1784-
s_R = max(vel_R(idx) + c_R, vel_L(idx) + c_L)
1785-
end if
1792+
s_L = min(vel_L(idx) - c_L, vel_R(idx) - c_R)
1793+
s_R = max(vel_R(idx) + c_R, vel_L(idx) + c_L)
17861794
s_S = (pres_R - pres_L + rho_L*vel_L(idx)* &
1787-
(s_L - vel_L(idx)) - rho_R*vel_R(idx)*(s_R - vel_R(idx))) &
1788-
/(rho_L*(s_L - vel_L(idx)) - rho_R*(s_R - vel_R(idx)))
1795+
(s_L - vel_L(idx)) - rho_R*vel_R(idx)*(s_R - vel_R(idx))) &
1796+
/(rho_L*(s_L - vel_L(idx)) - rho_R*(s_R - vel_R(idx)))
17891797
end if
17901798
else if (wave_speeds == 2) then
17911799
pres_SL = 5e-1_wp*(pres_L + pres_R + rho_avg*c_avg*(vel_L(idx) - vel_R(idx)))
@@ -1822,7 +1830,6 @@ contains
18221830
call s_mpi_abort('Error: Invalid wave speeds in s_compute_wave_speed')
18231831
end if
18241832
#endif
1825-
18261833
end subroutine s_compute_wave_speed
18271834
#endif
18281835

0 commit comments

Comments
 (0)