@@ -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