Neko 1.99.9
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
fluid_scheme_compressible Module Reference

Data Types

type  fluid_scheme_compressible_t
 Base type of compressible fluid formulations. More...
 

Functions/Subroutines

subroutine fluid_scheme_compressible_init (this, msh, lx, params, scheme, user)
 Initialize common data for compressible fluid scheme.
 
subroutine fluid_scheme_compressible_free (this)
 Free allocated memory and cleanup resources.
 
subroutine fluid_scheme_compressible_validate (this)
 Validate field initialization and compute derived quantities.
 
real(kind=dp) function fluid_scheme_compressible_compute_cfl (this, dt)
 Compute CFL number.
 
subroutine fluid_scheme_compressible_set_material_properties (this, params, user)
 Set material properties mu and rho.
 
subroutine fluid_scheme_compressible_update_material_properties (this, time)
 Update variable material properties.
 
subroutine fluid_scheme_compressible_update_physical_flux (this)
 Refresh the physical-flux switches from the current material properties.
 
subroutine fluid_scheme_compressible_compute_max_wave_speed (this)
 Compute maximum wave speed for compressible flows.
 
subroutine fluid_scheme_compressible_log_solver_info (this, params, scheme, lx)
 Log comprehensive solver information.
 

Function/Subroutine Documentation

◆ fluid_scheme_compressible_compute_cfl()

real(kind=dp) function fluid_scheme_compressible::fluid_scheme_compressible_compute_cfl ( class(fluid_scheme_compressible_t), intent(in)  this,
real(kind=dp), intent(in)  dt 
)
private
Parameters
thisThe compressible fluid scheme object
dtCurrent timestep size
Returns
Computed CFL number

Definition at line 382 of file fluid_scheme_compressible.f90.

◆ fluid_scheme_compressible_compute_max_wave_speed()

subroutine fluid_scheme_compressible::fluid_scheme_compressible_compute_max_wave_speed ( class(fluid_scheme_compressible_t), intent(inout)  this)
private
Parameters
thisThe compressible fluid scheme object

TODO: Add support for SX

Definition at line 510 of file fluid_scheme_compressible.f90.

◆ fluid_scheme_compressible_free()

subroutine fluid_scheme_compressible::fluid_scheme_compressible_free ( class(fluid_scheme_compressible_t), intent(inout)  this)
private
Parameters
thisThe compressible fluid scheme object to destroy

Definition at line 249 of file fluid_scheme_compressible.f90.

◆ fluid_scheme_compressible_init()

subroutine fluid_scheme_compressible::fluid_scheme_compressible_init ( class(fluid_scheme_compressible_t), intent(inout), target  this,
type(mesh_t), intent(inout), target  msh,
integer, intent(in)  lx,
type(json_file), intent(inout), target  params,
character(len=*), intent(in)  scheme,
type(user_t), intent(in), target  user 
)
Parameters
thisThe compressible fluid scheme object
mshMesh data structure
lxPolynomial order in x-direction
paramsJSON configuration parameters
schemeName of the numerical scheme
userUser-defined parameters and functions

Definition at line 137 of file fluid_scheme_compressible.f90.

Here is the call graph for this function:

◆ fluid_scheme_compressible_log_solver_info()

subroutine fluid_scheme_compressible::fluid_scheme_compressible_log_solver_info ( class(fluid_scheme_compressible_t), intent(inout)  this,
type(json_file), intent(inout)  params,
character(len=*), intent(in)  scheme,
integer, intent(in)  lx 
)
private
Parameters
thisThe compressible fluid scheme object
paramsJSON configuration parameters
schemeName of the numerical scheme
lxPolynomial order in x-direction

Definition at line 533 of file fluid_scheme_compressible.f90.

◆ fluid_scheme_compressible_set_material_properties()

subroutine fluid_scheme_compressible::fluid_scheme_compressible_set_material_properties ( class(fluid_scheme_compressible_t), intent(inout), target  this,
type(json_file), intent(inout)  params,
type(user_t), intent(in), target  user 
)
private
Parameters
thisThe compressible fluid scheme object
paramsThe case parameter file
userThe user interface

Definition at line 405 of file fluid_scheme_compressible.f90.

◆ fluid_scheme_compressible_update_material_properties()

subroutine fluid_scheme_compressible::fluid_scheme_compressible_update_material_properties ( class(fluid_scheme_compressible_t), intent(inout)  this,
type(time_state_t), intent(in)  time 
)
private
Parameters
thisThe compressible fluid scheme object
timeThe time state

Definition at line 452 of file fluid_scheme_compressible.f90.

◆ fluid_scheme_compressible_update_physical_flux()

subroutine fluid_scheme_compressible::fluid_scheme_compressible_update_physical_flux ( class(fluid_scheme_compressible_t), intent(inout)  this)
private

Decides whether the physical Navier-Stokes viscous and heat fluxes have to be evaluated at all, by testing \( \max_i |\mu_i| \) and \( \max_i |\kappa_i| \) against zero.

On a device backend the reduction runs as a kernel over the device resident arrays. Inspecting the host mirrors mux and kappax instead would be wrong as well as slow: field_cfill, and the device_math routines a user file calls, only write x_d, so the host copies stay at their initial zero and the solver would silently degrade to Euler.

The reduction is global, so all ranks agree on the branch taken even when the viscosity is non-zero on only some of them.

Parameters
thisThe compressible fluid scheme object

Definition at line 481 of file fluid_scheme_compressible.f90.

◆ fluid_scheme_compressible_validate()

subroutine fluid_scheme_compressible::fluid_scheme_compressible_validate ( class(fluid_scheme_compressible_t), intent(inout), target  this)
private
Parameters
thisThe compressible fluid scheme object

Initialize the momentum field

Initialize total energy Total energy E := p / (gamma - 1) + 0.5 * rho * (u^2 + v^2 + w^2)

Initialize temperature T = p / (rho * (gamma - 1))

Compute initial maximum wave speed from initial conditions

Definition at line 341 of file fluid_scheme_compressible.f90.

Here is the call graph for this function: