Neko  0.8.1
A portable framework for high-order spectral element flow simulations
fluid_scheme Module Reference

Fluid formulations. More...

Data Types

type  fluid_scheme_t
 Base type of all fluid formulations. More...
 
interface  fluid_scheme_init_intrf
 Abstract interface to initialize a fluid formulation. More...
 
interface  fluid_scheme_free_intrf
 Abstract interface to dealocate a fluid formulation. More...
 
interface  fluid_scheme_step_intrf
 Abstract interface to compute a time-step. More...
 
interface  fluid_scheme_restart_intrf
 Abstract interface to restart a fluid scheme. More...
 

Functions/Subroutines

subroutine fluid_scheme_init_common (this, msh, lx, params, scheme, user, material_properties)
 Initialize common data for the current scheme. More...
 
subroutine fluid_scheme_init_uvw (this, msh, lx, params, kspv_init, scheme, user, material_properties)
 Initialize all velocity related components of the current scheme. More...
 
subroutine fluid_scheme_init_all (this, msh, lx, params, kspv_init, kspp_init, scheme, user, material_properties)
 Initialize all components of the current scheme. More...
 
subroutine fluid_scheme_free (this)
 Deallocate a fluid formulation. More...
 
subroutine fluid_scheme_validate (this)
 Validate that all fields, solvers etc necessary for performing time-stepping are defined. More...
 
subroutine fluid_scheme_bc_apply_vel (this, t, tstep)
 Apply all boundary conditions defined for velocity Here we perform additional gs operations to take care of shared points between elements that have different BCs, as done in Nek5000. More...
 
subroutine fluid_scheme_bc_apply_prs (this, t, tstep)
 Apply all boundary conditions defined for pressure. More...
 
subroutine fluid_scheme_solver_factory (ksp, n, solver, max_iter, abstol)
 Initialize a linear solver. More...
 
subroutine fluid_scheme_precon_factory (pc, ksp, coef, dof, gs, bclst, pctype)
 Initialize a Krylov preconditioner. More...
 
subroutine fluid_scheme_set_usr_inflow (this, usr_eval)
 Initialize a user defined inflow condition. More...
 
real(kind=rp) function fluid_compute_cfl (this, dt)
 Compute CFL. More...
 

Detailed Description

Fluid formulations.

Function/Subroutine Documentation

◆ fluid_compute_cfl()

real(kind=rp) function fluid_scheme::fluid_compute_cfl ( class(fluid_scheme_t), intent(in)  this,
real(kind=rp), intent(in)  dt 
)

Compute CFL.

Definition at line 968 of file fluid_scheme.f90.

Here is the call graph for this function:

◆ fluid_scheme_bc_apply_prs()

subroutine fluid_scheme::fluid_scheme_bc_apply_prs ( class(fluid_scheme_t), intent(inout)  this,
real(kind=rp), intent(in)  t,
integer, intent(in)  tstep 
)

Apply all boundary conditions defined for pressure.

Todo:
Why can't we call the interface here?

Definition at line 895 of file fluid_scheme.f90.

Here is the call graph for this function:

◆ fluid_scheme_bc_apply_vel()

subroutine fluid_scheme::fluid_scheme_bc_apply_vel ( class(fluid_scheme_t), intent(inout)  this,
real(kind=rp), intent(in)  t,
integer, intent(in)  tstep 
)

Apply all boundary conditions defined for velocity Here we perform additional gs operations to take care of shared points between elements that have different BCs, as done in Nek5000.

Todo:
Why can't we call the interface here?

Definition at line 883 of file fluid_scheme.f90.

Here is the call graph for this function:

◆ fluid_scheme_free()

subroutine fluid_scheme::fluid_scheme_free ( class(fluid_scheme_t), intent(inout)  this)

Deallocate a fluid formulation.

Definition at line 720 of file fluid_scheme.f90.

Here is the call graph for this function:

◆ fluid_scheme_init_all()

subroutine fluid_scheme::fluid_scheme_init_all ( class(fluid_scheme_t), intent(inout), target  this,
type(mesh_t), intent(inout), target  msh,
integer, intent(inout)  lx,
type(json_file), intent(inout), target  params,
logical  kspv_init,
logical  kspp_init,
character(len=*), intent(in)  scheme,
type(user_t), intent(in), target  user,
type(material_properties_t), intent(inout), target  material_properties 
)

Initialize all components of the current scheme.

Definition at line 597 of file fluid_scheme.f90.

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

◆ fluid_scheme_init_common()

subroutine fluid_scheme::fluid_scheme_init_common ( class(fluid_scheme_t), intent(inout), target  this,
type(mesh_t), intent(inout), target  msh,
integer, intent(inout)  lx,
type(json_file), intent(inout), target  params,
character(len=*), intent(in)  scheme,
type(user_t), intent(in), target  user,
type(material_properties_t), intent(inout), target  material_properties 
)

Initialize common data for the current scheme.

Definition at line 212 of file fluid_scheme.f90.

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

◆ fluid_scheme_init_uvw()

subroutine fluid_scheme::fluid_scheme_init_uvw ( class(fluid_scheme_t), intent(inout), target  this,
type(mesh_t), intent(inout), target  msh,
integer, intent(inout)  lx,
type(json_file), intent(inout), target  params,
logical  kspv_init,
character(len=*), intent(in)  scheme,
type(user_t), intent(in), target  user,
type(material_properties_t), intent(inout), target  material_properties 
)

Initialize all velocity related components of the current scheme.

Definition at line 550 of file fluid_scheme.f90.

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

◆ fluid_scheme_precon_factory()

subroutine fluid_scheme::fluid_scheme_precon_factory ( class(pc_t), intent(inout), allocatable, target  pc,
class(ksp_t), intent(inout), target  ksp,
type(coef_t), intent(inout), target  coef,
type(dofmap_t), intent(inout), target  dof,
type(gs_t), intent(inout), target  gs,
type(bc_list_t), intent(inout), target  bclst,
character(len=*)  pctype 
)

Initialize a Krylov preconditioner.

Definition at line 919 of file fluid_scheme.f90.

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

◆ fluid_scheme_set_usr_inflow()

subroutine fluid_scheme::fluid_scheme_set_usr_inflow ( class(fluid_scheme_t), intent(inout)  this,
procedure(usr_inflow_eval usr_eval 
)

Initialize a user defined inflow condition.

Definition at line 955 of file fluid_scheme.f90.

◆ fluid_scheme_solver_factory()

subroutine fluid_scheme::fluid_scheme_solver_factory ( class(ksp_t), intent(inout), allocatable, target  ksp,
integer, intent(in), value  n,
character(len=*), intent(in)  solver,
integer, intent(in)  max_iter,
real(kind=rp), intent(in)  abstol 
)

Initialize a linear solver.

Note
Currently only supporting Krylov solvers

Definition at line 907 of file fluid_scheme.f90.

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

◆ fluid_scheme_validate()

subroutine fluid_scheme::fluid_scheme_validate ( class(fluid_scheme_t), intent(inout), target  this)

Validate that all fields, solvers etc necessary for performing time-stepping are defined.

Definition at line 817 of file fluid_scheme.f90.