88
99 H_avg = 5d-1 * (H_L + H_R)
1010 gamma_avg = 5d-1 * (gamma_L + gamma_R)
11+
12+
13+
1114#:enddef arithmetic_avg
1215
16+
1317#:def roe_avg()
1418 rho_avg = sqrt (rho_L* rho_R)
1519 vel_avg_rms = 0d0
2428
2529 gamma_avg = (sqrt (rho_L)* gamma_L + sqrt (rho_R)* gamma_R)/ &
2630 (sqrt (rho_L) + sqrt (rho_R))
31+
32+ rho_avg = sqrt (rho_L* rho_R)
33+ vel_avg_rms = (sqrt (rho_L)* vel_L(1 ) + sqrt (rho_R)* vel_R(1 ))** 2d0 / &
34+ (sqrt (rho_L) + sqrt (rho_R))** 2d0
35+
2736#:enddef roe_avg
2837
2938#:def compute_average_state()
@@ -40,6 +49,71 @@ end if
4049
4150! #:def compute_wave_speeds()
4251
52+ ! if (wave_speeds == 1 ) then
53+ ! s_L = min (vel_L(dir_idx(1 )) - c_L, vel_R(dir_idx(1 )) - c_R)
54+ ! s_R = max (vel_R(dir_idx(1 )) + c_R, vel_L(dir_idx(1 )) + c_L)
55+
56+ ! s_S = (pres_R - pres_L + rho_L* vel_L(dir_idx(1 ))* &
57+ ! (s_L - vel_L(dir_idx(1 ))) - &
58+ ! rho_R* vel_R(dir_idx(1 ))* &
59+ ! (s_R - vel_R(dir_idx(1 )))) &
60+ ! / (rho_L* (s_L - vel_L(dir_idx(1 ))) - &
61+ ! rho_R* (s_R - vel_R(dir_idx(1 ))))
62+ ! elseif (wave_speeds == 2 ) then
63+ ! pres_SL = 5d-1 * (pres_L + pres_R + rho_avg* c_avg* &
64+ ! (vel_L(dir_idx(1 )) - &
65+ ! vel_R(dir_idx(1 ))))
66+
67+ ! pres_SR = pres_SL
68+
69+ ! Ms_L = max (1d0 , sqrt (1d0 + ((5d-1 + gamma_L)/ (1d0 + gamma_L))* &
70+ ! (pres_SL/ pres_L - 1d0 )* pres_L/ &
71+ ! ((pres_L + pi_inf_L/ (1d0 + gamma_L)))))
72+ ! Ms_R = max (1d0 , sqrt (1d0 + ((5d-1 + gamma_R)/ (1d0 + gamma_R))* &
73+ ! (pres_SR/ pres_R - 1d0 )* pres_R/ &
74+ ! ((pres_R + pi_inf_R/ (1d0 + gamma_R)))))
75+
76+ ! s_L = vel_L(dir_idx(1 )) - c_L* Ms_L
77+ ! s_R = vel_R(dir_idx(1 )) + c_R* Ms_R
78+
79+ ! s_S = 5d-1 * ((vel_L(dir_idx(1 )) + vel_R(dir_idx(1 ))) + &
80+ ! (pres_L - pres_R)/ &
81+ ! (rho_avg* c_avg))
82+ ! end if
83+
84+
85+ ! if (wave_speeds == 1 ) then
86+ ! s_L = min (vel_L(dir_idx(1 )) - c_L, vel_R(dir_idx(1 )) - c_R)
87+ ! s_R = max (vel_R(dir_idx(1 )) + c_R, vel_L(dir_idx(1 )) + c_L)
88+
89+ ! s_S = (pres_R - pres_L + rho_L* vel_L(dir_idx(1 ))* &
90+ ! (s_L - vel_L(dir_idx(1 ))) - &
91+ ! rho_R* vel_R(dir_idx(1 ))* &
92+ ! (s_R - vel_R(dir_idx(1 )))) &
93+ ! / (rho_L* (s_L - vel_L(dir_idx(1 ))) - &
94+ ! rho_R* (s_R - vel_R(dir_idx(1 ))))
95+ ! elseif (wave_speeds == 2 ) then
96+ ! pres_SL = 5d-1 * (pres_L + pres_R + rho_avg* c_avg* &
97+ ! (vel_L(dir_idx(1 )) - &
98+ ! vel_R(dir_idx(1 ))))
99+
100+ ! pres_SR = pres_SL
101+
102+ ! Ms_L = max (1d0 , sqrt (1d0 + ((5d-1 + gamma_L)/ (1d0 + gamma_L))* &
103+ ! (pres_SL/ pres_L - 1d0 )* pres_L/ &
104+ ! ((pres_L + pi_inf_L/ (1d0 + gamma_L)))))
105+ ! Ms_R = max (1d0 , sqrt (1d0 + ((5d-1 + gamma_R)/ (1d0 + gamma_R))* &
106+ ! (pres_SR/ pres_R - 1d0 )* pres_R/ &
107+ ! ((pres_R + pi_inf_R/ (1d0 + gamma_R)))))
108+
109+ ! s_L = vel_L(dir_idx(1 )) - c_L* Ms_L
110+ ! s_R = vel_R(dir_idx(1 )) + c_R* Ms_R
111+
112+ ! s_S = 5d-1 * ((vel_L(dir_idx(1 )) + vel_R(dir_idx(1 ))) + &
113+ ! (pres_L - pres_R)/ &
114+ ! (rho_avg* c_avg))
115+ ! end if
116+
43117! #:enddef compute_wave_speeds
44118
45119
0 commit comments