Neko 0.9.99
A portable framework for high-order spectral element flow simulations
|
This module implements CPU-based residual calculations for the Euler equations.
Data Types | |
type | euler_res_cpu_t |
Functions/Subroutines | |
subroutine | advance_primitive_variables_cpu (rho_field, m_x, m_y, m_z, e, p, u, v, w, ax, coef, gs, h, c_avisc_low, rk_scheme, dt) |
Advances the primitive variables (density, momentum, energy) in time using a Runge-Kutta scheme. | |
subroutine | evaluate_rhs_cpu (rhs_rho_field, rhs_m_x, rhs_m_y, rhs_m_z, rhs_e, rho_field, m_x, m_y, m_z, e, p, u, v, w, ax, coef, gs, h, c_avisc_low) |
Evaluates the right-hand side of the Euler equations Computes fluxes, divergence terms, and artificial viscosity. | |
subroutine euler_res_cpu::advance_primitive_variables_cpu | ( | type(field_t), intent(inout) | rho_field, |
type(field_t), intent(inout) | m_x, | ||
type(field_t), intent(inout) | m_y, | ||
type(field_t), intent(inout) | m_z, | ||
type(field_t), intent(inout) | e, | ||
type(field_t), intent(in) | p, | ||
type(field_t), intent(in) | u, | ||
type(field_t), intent(in) | v, | ||
type(field_t), intent(in) | w, | ||
class(ax_t), intent(inout) | ax, | ||
type(coef_t), intent(inout) | coef, | ||
type(gs_t), intent(inout) | gs, | ||
type(field_t), intent(in) | h, | ||
real(kind=rp) | c_avisc_low, | ||
class(runge_kutta_time_scheme_t), intent(in) | rk_scheme, | ||
real(kind=rp), intent(in) | dt | ||
) |
rho_field | Density field |
m_x,m_y,m_z | Momentum components |
E | Total energy |
p | Pressure field |
u,v,w | Velocity components |
Ax | Matrix-vector product operator |
coef | Coefficients for spatial discretization |
gs | Gather-scatter operator for parallel communication |
h | Mesh size field |
c_avisc_low | Low-order artificial viscosity coefficient |
rk_scheme | Runge-Kutta time integration scheme |
dt | Time step size |
Definition at line 74 of file euler_res_cpu.f90.
|
private |
rhs_rho_field | Output array for density RHS terms |
rhs_m_x | Output array for x-momentum RHS terms |
rhs_m_y | Output array for y-momentum RHS terms |
rhs_m_z | Output array for z-momentum RHS terms |
rhs_E | Output array for energy RHS terms |
rho_field | Input density field |
m_x | Input x-momentum field |
m_y | Input y-momentum field |
m_z | Input z-momentum field |
E | Input total energy field |
p | Input pressure field |
u | Input x-velocity field |
v | Input y-velocity field |
w | Input z-velocity field |
Ax | Matrix-vector product operator |
coef | Spatial discretization coefficients |
gs | Gather-scatter operator for parallel communication |
h | Mesh size field |
c_avisc_low | Low-order artificial viscosity coefficient |
rho = rho - dt * div(m)
m = m - dt * div(rho * u * u^T + p*I)
E = E - dt * div(u * (E + p))
Definition at line 226 of file euler_res_cpu.f90.