Neko 1.99.9
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
fluid_scheme_compressible::fluid_scheme_compressible_t Type Referenceabstract

Base type of compressible fluid formulations. More...

Inheritance diagram for fluid_scheme_compressible::fluid_scheme_compressible_t:
Collaboration diagram for fluid_scheme_compressible::fluid_scheme_compressible_t:

Public Member Functions

procedure, pass(this) scheme_init (this, msh, lx, params, scheme, user)
 Constructors.
 
procedure, pass(this) scheme_free (this)
 Destructor for the base type.
 
procedure, pass(this) validate (this)
 Validate that all components are properly allocated.
 
procedure, pass(this) compute_cfl (this, dt)
 Compute the CFL number.
 
procedure, pass(this) set_material_properties (this, params, user)
 Set rho and mu.
 
procedure, pass(this) update_material_properties (this, time)
 Update variable material properties.
 
procedure, pass(this) update_physical_flux (this)
 Refresh the physical-flux switches from the material properties.
 
procedure, pass(this) compute_max_wave_speed (this)
 Compute maximum wave speed.
 
procedure, pass(this) log_solver_info (this, params, scheme, lx)
 Log solver information.
 
procedure(fluid_scheme_base_init_intrf), deferred, pass init (this, msh, lx, params, user, chkp)
 Constructor.
 
procedure(fluid_scheme_base_free_intrf), deferred, pass free (this)
 Destructor.
 
procedure(fluid_scheme_base_step_intrf), deferred, pass step (this, time, dt_controller)
 Advance one step in time.
 
procedure(fluid_scheme_base_restart_intrf), deferred, pass restart (this, chkp)
 Restart from a checkpoint.
 
procedure(fluid_scheme_setup_bcs_intrf), deferred, pass setup_bcs (this, user, params)
 
procedure(validate_intrf), deferred, pass validate (this)
 Set the user inflow.
 
procedure(fluid_scheme_base_compute_cfl_intrf), deferred, pass compute_cfl (this, dt)
 Compute the CFL number.
 
procedure(update_material_properties), deferred, pass update_material_properties (this, time)
 Set rho and mu.
 

Public Attributes

type(field_t), pointer m_x => null()
 The momentum field.
 
type(field_t), pointer m_y => null()
 y-component of Momentum
 
type(field_t), pointer m_z => null()
 z-component of Momentum
 
type(field_t), pointer e => null()
 Total energy.
 
type(field_t), pointer temperature => null()
 Temperature field.
 
type(field_t), pointer max_wave_speed => null()
 Maximum wave speed field.
 
type(field_t), pointer artificial_visc => null()
 Artificial viscosity field (without physical)
 
type(field_t), pointer kappa => null()
 Thermal conductivity.
 
real(kind=rp) gamma
 
real(kind=rp) mu_amax = 0.0_rp
 Largest magnitude of the dynamic viscosity over the domain.
 
real(kind=rp) kappa_amax = 0.0_rp
 Largest magnitude of the thermal conductivity over the domain.
 
logical add_physical_flux = .false.
 Whether the physical viscous and heat fluxes are evaluated.
 
logical add_physical_stress = .false.
 Whether the physical viscous stress is evaluated.
 
logical variable_material_properties = .false.
 Whether a user routine re-evaluates the material properties every time-step, in which case the switches above have to be refreshed.
 
integer(kind=i8) glb_n_points
 Global number of GLL points for the fluid (not unique)
 
integer(kind=i8) glb_unique_points
 Global number of GLL points for the fluid (unique)
 
character(len=:), allocatable name
 A name that can be used to distinguish this solver in e.g. user routines.
 
type(space_t) xh
 Function space \( X_h \).
 
type(dofmap_t) dm_xh
 Dofmap associated with \( X_h \).
 
type(gs_t) gs_xh
 Gather-scatter associated with \( X_h \).
 
type(coef_t) c_xh
 Coefficients associated with \( X_h \).
 
type(time_scheme_controller_t), allocatable ext_bdf
 
type(field_t), pointer u => null()
 The velocity field.
 
type(field_t), pointer v => null()
 y-component of Velocity
 
type(field_t), pointer w => null()
 z-component of Velocity
 
type(field_t), pointer p => null()
 Pressure.
 
type(field_series_t) ulag
 
type(field_series_t) vlag
 
type(field_series_t) wlag
 fluid field (lag)
 
type(chkp_t), pointer chkp => null()
 Checkpoint.
 
type(field_t), pointer f_x => null()
 X-component of the right-hand side.
 
type(field_t), pointer f_y => null()
 Y-component of the right-hand side.
 
type(field_t), pointer f_z => null()
 Z-component of the right-hand side.
 
type(bc_list_t) bcs_prs
 Boundary conditions.
 
type(bc_list_t) bcs_vel
 
type(json_file), pointer params
 Parameters.
 
type(mesh_t), pointer msh => null()
 Mesh.
 
character(len=neko_msh_max_zlbl_len), dimension(:), allocatable bc_labels
 Boundary condition labels (if any)
 
type(field_t), pointer rho => null()
 Density field.
 
type(field_t), pointer mu => null()
 The dynamic viscosity.
 
type(field_list_t) material_properties
 A helper that packs material properties to pass to the user routine.
 
logical freeze = .false.
 Is the fluid frozen at the moment.
 

Static Public Attributes

procedure(user_material_properties_intf), pointer, nopass user_material_properties => null()
 User material properties routine.
 

Detailed Description

Definition at line 68 of file fluid_scheme_compressible.f90.

Member Function/Subroutine Documentation

◆ compute_cfl() [1/2]

procedure(fluid_scheme_base_compute_cfl_intrf), deferred, pass fluid_scheme_base::fluid_scheme_base_t::compute_cfl ( class(fluid_scheme_base_t), intent(in)  this,
real(kind=dp), intent(in)  dt 
)
pure virtualinherited

Definition at line 129 of file fluid_scheme_base.f90.

◆ compute_cfl() [2/2]

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

Definition at line 109 of file fluid_scheme_compressible.f90.

◆ compute_max_wave_speed()

procedure, pass(this) fluid_scheme_compressible::fluid_scheme_compressible_t::compute_max_wave_speed ( class(fluid_scheme_compressible_t), intent(inout)  this)
Parameters
thisThe compressible fluid scheme object

Definition at line 121 of file fluid_scheme_compressible.f90.

◆ free()

procedure(fluid_scheme_base_free_intrf), deferred, pass fluid_scheme_base::fluid_scheme_base_t::free ( class(fluid_scheme_base_t), intent(inout)  this)
pure virtualinherited

Definition at line 118 of file fluid_scheme_base.f90.

◆ init()

procedure(fluid_scheme_base_init_intrf), deferred, pass fluid_scheme_base::fluid_scheme_base_t::init ( class(fluid_scheme_base_t), intent(inout), target  this,
type(mesh_t), intent(inout), target  msh,
integer, intent(in)  lx,
type(json_file), intent(inout), target  params,
type(user_t), intent(in), target  user,
type(chkp_t), intent(inout), target  chkp 
)
pure virtualinherited

Definition at line 116 of file fluid_scheme_base.f90.

◆ log_solver_info()

procedure, pass(this) fluid_scheme_compressible::fluid_scheme_compressible_t::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 
)
Parameters
thisThe compressible fluid scheme object
paramsJSON configuration parameters
schemeName of the numerical scheme
lxPolynomial order in x-direction

Definition at line 124 of file fluid_scheme_compressible.f90.

◆ restart()

procedure(fluid_scheme_base_restart_intrf), deferred, pass fluid_scheme_base::fluid_scheme_base_t::restart ( class(fluid_scheme_base_t), intent(inout), target  this,
type(chkp_t), intent(inout)  chkp 
)
pure virtualinherited

Definition at line 122 of file fluid_scheme_base.f90.

◆ scheme_free()

procedure, pass(this) fluid_scheme_compressible::fluid_scheme_compressible_t::scheme_free ( class(fluid_scheme_compressible_t), intent(inout)  this)
Parameters
thisThe compressible fluid scheme object to destroy

Definition at line 104 of file fluid_scheme_compressible.f90.

◆ scheme_init()

procedure, pass(this) fluid_scheme_compressible::fluid_scheme_compressible_t::scheme_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 102 of file fluid_scheme_compressible.f90.

◆ set_material_properties()

procedure, pass(this) fluid_scheme_compressible::fluid_scheme_compressible_t::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 
)
Parameters
thisThe compressible fluid scheme object
paramsThe case parameter file
userThe user interface

Definition at line 112 of file fluid_scheme_compressible.f90.

◆ setup_bcs()

procedure(fluid_scheme_setup_bcs_intrf), deferred, pass fluid_scheme_base::fluid_scheme_base_t::setup_bcs ( class(fluid_scheme_base_t), intent(inout), target  this,
type(user_t), intent(in), target  user,
type(json_file), intent(inout)  params 
)
pure virtualinherited

Definition at line 124 of file fluid_scheme_base.f90.

◆ step()

procedure(fluid_scheme_base_step_intrf), deferred, pass fluid_scheme_base::fluid_scheme_base_t::step ( class(fluid_scheme_base_t), intent(inout), target  this,
type(time_state_t), intent(in)  time,
type(time_step_controller_t), intent(in)  dt_controller 
)
pure virtualinherited

Definition at line 120 of file fluid_scheme_base.f90.

◆ update_material_properties() [1/2]

procedure(update_material_properties), deferred, pass fluid_scheme_base::fluid_scheme_base_t::update_material_properties ( class(fluid_scheme_base_t), intent(inout)  this,
type(time_state_t), intent(in)  time 
)
pure virtualinherited

Definition at line 132 of file fluid_scheme_base.f90.

◆ update_material_properties() [2/2]

procedure, pass(this) fluid_scheme_compressible::fluid_scheme_compressible_t::update_material_properties ( class(fluid_scheme_compressible_t), intent(inout)  this,
type(time_state_t), intent(in)  time 
)
Parameters
thisThe compressible fluid scheme object
timeThe time state

Definition at line 115 of file fluid_scheme_compressible.f90.

◆ update_physical_flux()

procedure, pass(this) fluid_scheme_compressible::fluid_scheme_compressible_t::update_physical_flux ( class(fluid_scheme_compressible_t), intent(inout)  this)

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 118 of file fluid_scheme_compressible.f90.

◆ validate() [1/2]

procedure(validate_intrf), deferred, pass fluid_scheme_base::fluid_scheme_base_t::validate ( class(fluid_scheme_base_t), intent(inout), target  this)
pure virtualinherited

Definition at line 127 of file fluid_scheme_base.f90.

◆ validate() [2/2]

procedure, pass(this) fluid_scheme_compressible::fluid_scheme_compressible_t::validate ( class(fluid_scheme_compressible_t), intent(inout), target  this)
Parameters
thisThe compressible fluid scheme object

Definition at line 107 of file fluid_scheme_compressible.f90.

Member Data Documentation

◆ add_physical_flux

logical fluid_scheme_compressible::fluid_scheme_compressible_t::add_physical_flux = .false.

Definition at line 88 of file fluid_scheme_compressible.f90.

◆ add_physical_stress

logical fluid_scheme_compressible::fluid_scheme_compressible_t::add_physical_stress = .false.

Definition at line 90 of file fluid_scheme_compressible.f90.

◆ artificial_visc

type(field_t), pointer fluid_scheme_compressible::fluid_scheme_compressible_t::artificial_visc => null()

Definition at line 77 of file fluid_scheme_compressible.f90.

◆ bc_labels

character(len=neko_msh_max_zlbl_len), dimension(:), allocatable fluid_scheme_base::fluid_scheme_base_t::bc_labels
inherited

Definition at line 96 of file fluid_scheme_base.f90.

◆ bcs_prs

type(bc_list_t) fluid_scheme_base::fluid_scheme_base_t::bcs_prs
inherited

Definition at line 88 of file fluid_scheme_base.f90.

◆ bcs_vel

type(bc_list_t) fluid_scheme_base::fluid_scheme_base_t::bcs_vel
inherited

Definition at line 90 of file fluid_scheme_base.f90.

◆ c_xh

type(coef_t) fluid_scheme_base::fluid_scheme_base_t::c_xh
inherited

Definition at line 65 of file fluid_scheme_base.f90.

◆ chkp

type(chkp_t), pointer fluid_scheme_base::fluid_scheme_base_t::chkp => null()
inherited

Definition at line 77 of file fluid_scheme_base.f90.

◆ dm_xh

type(dofmap_t) fluid_scheme_base::fluid_scheme_base_t::dm_xh
inherited

Definition at line 63 of file fluid_scheme_base.f90.

◆ e

type(field_t), pointer fluid_scheme_compressible::fluid_scheme_compressible_t::e => null()

Definition at line 74 of file fluid_scheme_compressible.f90.

◆ ext_bdf

type(time_scheme_controller_t), allocatable fluid_scheme_base::fluid_scheme_base_t::ext_bdf
inherited

Definition at line 67 of file fluid_scheme_base.f90.

◆ f_x

type(field_t), pointer fluid_scheme_base::fluid_scheme_base_t::f_x => null()
inherited

Definition at line 80 of file fluid_scheme_base.f90.

◆ f_y

type(field_t), pointer fluid_scheme_base::fluid_scheme_base_t::f_y => null()
inherited

Definition at line 82 of file fluid_scheme_base.f90.

◆ f_z

type(field_t), pointer fluid_scheme_base::fluid_scheme_base_t::f_z => null()
inherited

Definition at line 84 of file fluid_scheme_base.f90.

◆ freeze

logical fluid_scheme_base::fluid_scheme_base_t::freeze = .false.
inherited

Definition at line 108 of file fluid_scheme_base.f90.

◆ gamma

real(kind=rp) fluid_scheme_compressible::fluid_scheme_compressible_t::gamma

Definition at line 80 of file fluid_scheme_compressible.f90.

◆ glb_n_points

integer(kind=i8) fluid_scheme_compressible::fluid_scheme_compressible_t::glb_n_points

Definition at line 96 of file fluid_scheme_compressible.f90.

◆ glb_unique_points

integer(kind=i8) fluid_scheme_compressible::fluid_scheme_compressible_t::glb_unique_points

Definition at line 98 of file fluid_scheme_compressible.f90.

◆ gs_xh

type(gs_t) fluid_scheme_base::fluid_scheme_base_t::gs_xh
inherited

Definition at line 64 of file fluid_scheme_base.f90.

◆ kappa

type(field_t), pointer fluid_scheme_compressible::fluid_scheme_compressible_t::kappa => null()

Definition at line 78 of file fluid_scheme_compressible.f90.

◆ kappa_amax

real(kind=rp) fluid_scheme_compressible::fluid_scheme_compressible_t::kappa_amax = 0.0_rp

Definition at line 85 of file fluid_scheme_compressible.f90.

◆ m_x

type(field_t), pointer fluid_scheme_compressible::fluid_scheme_compressible_t::m_x => null()

x-component of Momentum

Definition at line 71 of file fluid_scheme_compressible.f90.

◆ m_y

type(field_t), pointer fluid_scheme_compressible::fluid_scheme_compressible_t::m_y => null()

Definition at line 72 of file fluid_scheme_compressible.f90.

◆ m_z

type(field_t), pointer fluid_scheme_compressible::fluid_scheme_compressible_t::m_z => null()

Definition at line 73 of file fluid_scheme_compressible.f90.

◆ material_properties

type(field_list_t) fluid_scheme_base::fluid_scheme_base_t::material_properties
inherited

Definition at line 105 of file fluid_scheme_base.f90.

◆ max_wave_speed

type(field_t), pointer fluid_scheme_compressible::fluid_scheme_compressible_t::max_wave_speed => null()

Definition at line 76 of file fluid_scheme_compressible.f90.

◆ msh

type(mesh_t), pointer fluid_scheme_base::fluid_scheme_base_t::msh => null()
inherited

Definition at line 93 of file fluid_scheme_base.f90.

◆ mu

type(field_t), pointer fluid_scheme_base::fluid_scheme_base_t::mu => null()
inherited

Definition at line 102 of file fluid_scheme_base.f90.

◆ mu_amax

real(kind=rp) fluid_scheme_compressible::fluid_scheme_compressible_t::mu_amax = 0.0_rp

Definition at line 83 of file fluid_scheme_compressible.f90.

◆ name

character(len=:), allocatable fluid_scheme_base::fluid_scheme_base_t::name
inherited

Definition at line 60 of file fluid_scheme_base.f90.

◆ p

type(field_t), pointer fluid_scheme_base::fluid_scheme_base_t::p => null()
inherited

Definition at line 73 of file fluid_scheme_base.f90.

◆ params

type(json_file), pointer fluid_scheme_base::fluid_scheme_base_t::params
inherited

Definition at line 92 of file fluid_scheme_base.f90.

◆ rho

type(field_t), pointer fluid_scheme_base::fluid_scheme_base_t::rho => null()
inherited

Definition at line 99 of file fluid_scheme_base.f90.

◆ temperature

type(field_t), pointer fluid_scheme_compressible::fluid_scheme_compressible_t::temperature => null()

Definition at line 75 of file fluid_scheme_compressible.f90.

◆ u

type(field_t), pointer fluid_scheme_base::fluid_scheme_base_t::u => null()
inherited

x-component of Velocity

Definition at line 70 of file fluid_scheme_base.f90.

◆ ulag

type(field_series_t) fluid_scheme_base::fluid_scheme_base_t::ulag
inherited

Definition at line 74 of file fluid_scheme_base.f90.

◆ user_material_properties

procedure(user_material_properties_intf), pointer, nopass fluid_scheme_base::fluid_scheme_base_t::user_material_properties => null()
staticinherited

Definition at line 111 of file fluid_scheme_base.f90.

◆ v

type(field_t), pointer fluid_scheme_base::fluid_scheme_base_t::v => null()
inherited

Definition at line 71 of file fluid_scheme_base.f90.

◆ variable_material_properties

logical fluid_scheme_compressible::fluid_scheme_compressible_t::variable_material_properties = .false.

Definition at line 93 of file fluid_scheme_compressible.f90.

◆ vlag

type(field_series_t) fluid_scheme_base::fluid_scheme_base_t::vlag
inherited

Definition at line 74 of file fluid_scheme_base.f90.

◆ w

type(field_t), pointer fluid_scheme_base::fluid_scheme_base_t::w => null()
inherited

Definition at line 72 of file fluid_scheme_base.f90.

◆ wlag

type(field_series_t) fluid_scheme_base::fluid_scheme_base_t::wlag
inherited

Definition at line 74 of file fluid_scheme_base.f90.

◆ xh

type(space_t) fluid_scheme_base::fluid_scheme_base_t::xh
inherited

Definition at line 62 of file fluid_scheme_base.f90.


The documentation for this type was generated from the following file: