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

Modular version of the Classic Nek5000 Pn/Pn formulation for fluids.

Data Types

interface  fluid_pnpn_bc_allocate
 Split a boundary condition entry of the case file into a velocity part and a pressure part. More...
 
type  fluid_pnpn_bc_allocator_entry
 Called in user modules to add an allocator for custom velocity boundary condition types. More...
 
type  fluid_pnpn_t
 

Functions/Subroutines

subroutine fluid_pnpn_init (this, msh, lx, params, user, chkp)
 
subroutine fluid_pnpn_ax_vel_factory (this)
 Allocate and configure the Helmholtz matrix-vector product for the velocity, thisAx_vel.
 
subroutine fluid_pnpn_restart (this, chkp)
 
subroutine fluid_pnpn_free (this)
 
subroutine fluid_pnpn_step (this, time, dt_controller)
 Advance fluid simulation in time.
 
subroutine fluid_pnpn_setup_bcs (this, user, params)
 Sets up the boundary conditions for the scheme.
 
subroutine fluid_pnpn_write_boundary_conditions (this)
 Write a field with boundary condition specifications.
 

Variables

type(fluid_pnpn_bc_allocator_entry), dimension(:), allocatable, private fluid_pnpn_velocity_bc_registry
 Registry of user-defined velocity boundary condition allocators.
 
integer, private fluid_pnpn_velocity_bc_registry_size = 0
 The size of fluid_pnpn_velocity_bc_registry.
 
type(fluid_pnpn_bc_allocator_entry), dimension(:), allocatable, private fluid_pnpn_pressure_bc_registry
 Registry of user-defined pressure boundary condition allocators.
 
integer, private fluid_pnpn_pressure_bc_registry_size = 0
 The size of fluid_pnpn_pressure_bc_registry.
 

Function/Subroutine Documentation

◆ fluid_pnpn_ax_vel_factory()

subroutine fluid_pnpn::fluid_pnpn_ax_vel_factory ( class(fluid_pnpn_t), intent(inout), target  this)
private

Definition at line 567 of file fluid_pnpn.f90.

◆ fluid_pnpn_free()

subroutine fluid_pnpn::fluid_pnpn_free ( class(fluid_pnpn_t), intent(inout)  this)
private

Definition at line 722 of file fluid_pnpn.f90.

◆ fluid_pnpn_init()

subroutine fluid_pnpn::fluid_pnpn_init ( class(fluid_pnpn_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 
)
private

Set the number of schwarz iterations to perform each time step.

Definition at line 346 of file fluid_pnpn.f90.

◆ fluid_pnpn_restart()

subroutine fluid_pnpn::fluid_pnpn_restart ( class(fluid_pnpn_t), intent(inout), target  this,
type(chkp_t), intent(inout)  chkp 
)
private

Definition at line 597 of file fluid_pnpn.f90.

◆ fluid_pnpn_setup_bcs()

subroutine fluid_pnpn::fluid_pnpn_setup_bcs ( class(fluid_pnpn_t), intent(inout), target  this,
type(user_t), intent(in), target  user,
type(json_file), intent(inout)  params 
)
private

Each entry of case.fluid.boundary_conditions is split into a velocity part and a pressure part by fluid_pnpn_bc_split. The parts are passed to velocity_bc_factory and pressure_bc_factory, and the resulting objects are appended to bcs_vel and bcs_prs and marked in the residual projectors. The facet_type array of the mesh, used by the FDM preconditioner, is set to 1 on the zones of an entry with a Dirichlet pressure condition and to 2 otherwise.

Parameters
userThe user interface.
paramsThe case file parameters.

Definition at line 1126 of file fluid_pnpn.f90.

◆ fluid_pnpn_step()

subroutine fluid_pnpn::fluid_pnpn_step ( class(fluid_pnpn_t), intent(inout), target  this,
type(time_state_t), intent(in)  time,
type(time_step_controller_t), intent(in)  dt_controller 
)
private
Parameters
tThe time value.
tstepThe current interation.
dtThe timestep
ext_bdfTime integration logic.
dt_controllertimestep controller

adds div.(u_i*wm) to RHS

Definition at line 820 of file fluid_pnpn.f90.

◆ fluid_pnpn_write_boundary_conditions()

subroutine fluid_pnpn::fluid_pnpn_write_boundary_conditions ( class(fluid_pnpn_t), intent(inout), target  this)
private

Definition at line 1391 of file fluid_pnpn.f90.

Variable Documentation

◆ fluid_pnpn_pressure_bc_registry

type(fluid_pnpn_bc_allocator_entry), dimension(:), allocatable, private fluid_pnpn::fluid_pnpn_pressure_bc_registry
private

Definition at line 334 of file fluid_pnpn.f90.

◆ fluid_pnpn_pressure_bc_registry_size

integer, private fluid_pnpn::fluid_pnpn_pressure_bc_registry_size = 0
private

Definition at line 338 of file fluid_pnpn.f90.

◆ fluid_pnpn_velocity_bc_registry

type(fluid_pnpn_bc_allocator_entry), dimension(:), allocatable, private fluid_pnpn::fluid_pnpn_velocity_bc_registry
private

Definition at line 327 of file fluid_pnpn.f90.

◆ fluid_pnpn_velocity_bc_registry_size

integer, private fluid_pnpn::fluid_pnpn_velocity_bc_registry_size = 0
private

Definition at line 331 of file fluid_pnpn.f90.