Loading [MathJax]/extensions/tex2jax.js
Neko 0.9.99
A portable framework for high-order spectral element flow simulations
All Classes Namespaces Files Functions Variables Typedefs Enumerator Macros Pages
euler_res_cpu Module Reference

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.
 

Function/Subroutine Documentation

◆ advance_primitive_variables_cpu()

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 
)
Parameters
rho_fieldDensity field
m_x,m_y,m_zMomentum components
ETotal energy
pPressure field
u,v,wVelocity components
AxMatrix-vector product operator
coefCoefficients for spatial discretization
gsGather-scatter operator for parallel communication
hMesh size field
c_avisc_lowLow-order artificial viscosity coefficient
rk_schemeRunge-Kutta time integration scheme
dtTime step size

Definition at line 74 of file euler_res_cpu.f90.

Here is the call graph for this function:

◆ evaluate_rhs_cpu()

subroutine euler_res_cpu::evaluate_rhs_cpu ( type(field_t), intent(inout rhs_rho_field,
type(field_t), intent(inout rhs_m_x,
type(field_t), intent(inout rhs_m_y,
type(field_t), intent(inout rhs_m_z,
type(field_t), intent(inout rhs_e,
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 
)
private
Parameters
rhs_rho_fieldOutput array for density RHS terms
rhs_m_xOutput array for x-momentum RHS terms
rhs_m_yOutput array for y-momentum RHS terms
rhs_m_zOutput array for z-momentum RHS terms
rhs_EOutput array for energy RHS terms
rho_fieldInput density field
m_xInput x-momentum field
m_yInput y-momentum field
m_zInput z-momentum field
EInput total energy field
pInput pressure field
uInput x-velocity field
vInput y-velocity field
wInput z-velocity field
AxMatrix-vector product operator
coefSpatial discretization coefficients
gsGather-scatter operator for parallel communication
hMesh size field
c_avisc_lowLow-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.

Here is the call graph for this function:
Here is the caller graph for this function: