48 u, v, w, gamma, p, rho, n)
49 integer,
intent(in) :: n
50 real(kind=
rp),
intent(in) :: gamma
51 real(kind=
rp),
dimension(n),
intent(in) :: u, v, w, p, rho
52 real(kind=
rp),
dimension(n),
intent(inout) :: max_wave_speed
54 real(kind=
rp) :: vel_mag, sound_speed
58 do concurrent(i = 1:n)
59 vel_mag = sqrt(u(i)*u(i) + v(i)*v(i) + w(i)*w(i))
60 sound_speed = sqrt(gamma * p(i) / rho(i))
61 max_wave_speed(i) = vel_mag + sound_speed
69 integer,
intent(in) :: n
70 real(kind=
rp),
intent(in) :: gamma
71 real(kind=
rp),
dimension(n),
intent(in) :: p, rho
72 real(kind=
rp),
dimension(n),
intent(inout) :: s
76 do concurrent(i = 1:n)
77 s(i) = (1.0_rp / (gamma - 1.0_rp)) * rho(i) * &
78 (log(p(i)) - gamma * log(rho(i)))
85 integer,
intent(in) :: n
86 real(kind=
rp),
dimension(n),
intent(inout) :: u, v, w
87 real(kind=
rp),
dimension(n),
intent(in) :: m_x, m_y, m_z, rho
90 do concurrent(i = 1:n)
91 u(i) = m_x(i) / rho(i)
92 v(i) = m_y(i) / rho(i)
93 w(i) = m_z(i) / rho(i)
100 u, v, w, E, rho, gamma, n)
101 integer,
intent(in) :: n
102 real(kind=
rp),
dimension(n),
intent(inout) :: m_x, m_y, m_z, p, ruvw
103 real(kind=
rp),
dimension(n),
intent(in) :: u, v, w, e, rho
104 real(kind=
rp),
intent(in) :: gamma
108 do concurrent(i = 1:n)
109 m_x(i) = u(i) * rho(i)
110 m_y(i) = v(i) * rho(i)
111 m_z(i) = w(i) * rho(i)
115 do concurrent(i = 1:n)
116 tmp = 0.5_rp * rho(i) * (u(i)**2 + v(i)**2 + w(i)**2)
117 p(i) = (gamma - 1.0_rp) * (e(i) - tmp)
125 integer,
intent(in) :: n
126 real(kind=
rp),
dimension(n),
intent(inout) :: e, p
128 real(kind=
rp),
dimension(n),
intent(in) :: ruvw
129 real(kind=
rp),
intent(in) :: gamma
133 do concurrent(i = 1:n)
135 p(i) =
max(p(i), 1.0e-12_rp)
137 e(i) = p(i) * (1.0_rp / (gamma - 1.0_rp)) + ruvw(i)
CPU implementation of compressible flow operations.
subroutine, public compressible_ops_cpu_update_uvw(u, v, w, m_x, m_y, m_z, rho, n)
Update u,v,w fields.
subroutine, public compressible_ops_cpu_update_e(e, p, ruvw, gamma, n)
Update E field.
subroutine, public compressible_ops_cpu_compute_entropy(s, p, rho, gamma, n)
Compute entropy field S = 1/(gamma-1) * rho * (log(p) - gamma * log(rho)) on CPU.
subroutine, public compressible_ops_cpu_compute_max_wave_speed(max_wave_speed, u, v, w, gamma, p, rho, n)
Compute maximum wave speed for compressible flows on CPU.
subroutine, public compressible_ops_cpu_update_mxyz_p_ruvw(m_x, m_y, m_z, p, ruvw, u, v, w, e, rho, gamma, n)
Update m_x, m_y, m_z, p, ruvw, fields.
integer, parameter, public rp
Global precision used in computations.