NSCBC

Module

Description

$Id$

Module for NSCBC (Navier-Stokes Characteristic Boundary Conditions). NSCBC is an alternative way of imposing (time-dependent) boundary conditions through solving differential equations on the boundaries.

2009.09.09 (Nils Erland)Moved all NSCBC stuff from boundcond.f90 to

this module.

** AUTOMATIC CPARAM.INC GENERATION ************************ Declare (for generation of cparam.inc) the number of f array variables and auxiliary variables added by this module

CPARAM logical, parameter :: lnscbc = .true.


Quick access

Variables:

bc_nscbc_nref_subout_x, bc_nscbc_nref_subout_y, bc_nscbc_nref_subout_z, bc_nscbc_prf, bc_nscbc_subin_x, bc_nscbc_subin_x_new, derivate_boundary, final_velocity_profile, find_composition_at_inlet, find_velocity_at_inlet, first_nscbc, get_thermodynamics, inlet_from_file, inlet_profile, inlet_zz1, inlet_zz2, jet_inlet, lfinal_velocity_profile, no_nscbc, notransveral_terms, nscbc_bc, nscbc_bc1, nscbc_bc2, nscbc_boundtreat_xyz, nscbc_sigma_in, nscbc_sigma_out, onesided_inlet, p_infty, parse_nscbc, radius_profile, smooth_time, transversal_damping, transversal_terms, turb_inlet_file, turb_profile_mag, turbulent_vel_x, turbulent_vel_y, turbulent_vel_z, velocity_profile, zz_profile

Routines:

nscbc_boundtreat(), nscbc_clean_up(), read_nscbc_init_pars(), read_nscbc_run_pars(), write_nscbc_init_pars(), write_nscbc_run_pars()

Needed modules

Variables

  • nscbc/bc_nscbc_nref_subout_x [private]
  • nscbc/bc_nscbc_nref_subout_y [private]
  • nscbc/bc_nscbc_nref_subout_z [private]
  • nscbc/bc_nscbc_prf [private]
  • nscbc/bc_nscbc_subin_x [private]
  • nscbc/bc_nscbc_subin_x_new [private]
  • nscbc/derivate_boundary [private]
  • nscbc/dx_in [real,private]
  • nscbc/dy_in [real,private]
  • nscbc/dz_in [real,private]
  • nscbc/f_in (*,*,*,*) [real,private/allocatable]
  • nscbc/final_velocity_profile [private]
  • nscbc/find_composition_at_inlet [private]
  • nscbc/find_velocity_at_inlet [private]
  • nscbc/first_nscbc [logical,private/optional/default=.true.]
  • nscbc/gamma [real,private]
  • nscbc/get_thermodynamics [private]
  • nscbc/ilnrho_cs2 [integer,private/parameter/optional/default=5]
  • nscbc/ilnrho_ee [integer,private/parameter/optional/default=2]
  • nscbc/ilnrho_eth [integer,private/parameter/optional/default=14]
  • nscbc/ilnrho_lntt [integer,private/parameter/optional/default=4]
  • nscbc/ilnrho_pp [integer,private/parameter/optional/default=3]
  • nscbc/ilnrho_ss [integer,private/parameter/optional/default=1]
  • nscbc/ilnrho_tt [integer,private/parameter/optional/default=9]
  • nscbc/inlet_from_file [logical,private/optional/default=.false.]
  • nscbc/inlet_profile (ninit) [character,private/optional/default='nothing']
  • nscbc/inlet_zz1 [real,private/optional/default=0.0]
  • nscbc/inlet_zz2 [real,private/optional/default=0.0]
  • nscbc/ipp_cs2 [integer,private/parameter/optional/default=12]
  • nscbc/ipp_ss [integer,private/parameter/optional/default=11]
  • nscbc/ipx_in [integer,private]
  • nscbc/ipy_in [integer,private]
  • nscbc/ipz_in [integer,private]
  • nscbc/irho_cs2 [integer,private/parameter/optional/default=6]
  • nscbc/irho_ee [integer,private/parameter/optional/default=15]
  • nscbc/irho_eth [integer,private/parameter/optional/default=13]
  • nscbc/irho_lntt [integer,private/parameter/optional/default=8]
  • nscbc/irho_pp [integer,private/parameter/optional/default=16]
  • nscbc/irho_ss [integer,private/parameter/optional/default=7]
  • nscbc/irho_tt [integer,private/parameter/optional/default=10]
  • nscbc/jet_center (2) [real,private/optional/default=(/0.,0./)]
  • nscbc/jet_inlet [logical,private/optional/default=.false.]
  • nscbc/l1_in [integer,private]
  • nscbc/l2_in [integer,private]
  • nscbc/lfinal_velocity_profile [logical,private/optional/default=.false.]
  • nscbc/lx_in [real,private]
  • nscbc/ly_in [real,private]
  • nscbc/lz_in [real,private]
  • nscbc/m1_in [integer,private]
  • nscbc/m2_in [integer,private]
  • nscbc/maux_in [integer,private]
  • nscbc/mglobal_in [integer,private]
  • nscbc/momentum_thickness (2) [real,private/optional/default=(/0.014,0.0182/)]
  • nscbc/mvar_in [integer,private]
  • nscbc/mx_in [integer,private]
  • nscbc/my_in [integer,private]
  • nscbc/mz_in [integer,private]
  • nscbc/n1_in [integer,private]
  • nscbc/n2_in [integer,private]
  • nscbc/nghost_in [integer,private]
  • nscbc/no_nscbc [private]
  • nscbc/notransveral_terms [logical,private/optional/default=.true.]
  • nscbc/nscbc_bc (3) [character,private/optional/default='']
  • nscbc/nscbc_bc1 (3) [character,private]
  • nscbc/nscbc_bc2 (3) [character,private]
  • nscbc/nscbc_boundtreat_xyz [private]
  • nscbc/nscbc_sigma_in [real,private/optional/default=1.0]
  • nscbc/nscbc_sigma_out [real,private/optional/default=1.0]
  • nscbc/nv_in [integer,private]
  • nscbc/nx_in [integer,private]
  • nscbc/ny_in [integer,private]
  • nscbc/nz_in [integer,private]
  • nscbc/onesided_inlet [logical,private/optional/default=.true.]
  • nscbc/p_infty [real,private/optional/default=1.0]
  • nscbc/parse_nscbc [private]
  • nscbc/prec_in [character,private]
  • nscbc/radius_profile (2) [real,private/optional/default=(/0.0182,0.0364/)]
  • nscbc/sigma [real,private/optional/default=1.0]
  • nscbc/smooth_time [real,private/optional/default=0.0]
  • nscbc/t_in [real,private]
  • nscbc/transversal_damping [real,private/optional/default=0.2]
  • nscbc/transversal_terms [private]
  • nscbc/turb_inlet_dir [character,private/optional/default='']
  • nscbc/turb_inlet_file [character,private/optional/default='var.dat']
  • nscbc/turb_profile_mag [real,private/optional/default=1.0]
  • nscbc/turbulent_vel_x [private]
  • nscbc/turbulent_vel_y [private]
  • nscbc/turbulent_vel_z [private]
  • nscbc/velocity_profile (ninit) [character,private/optional/default='nothing']
  • nscbc/velocity_ratio [real,private/optional/default=3.3]
  • nscbc/x_in (*) [real,private/allocatable]
  • nscbc/y_in (*) [real,private/allocatable]
  • nscbc/z_in (*) [real,private/allocatable]
  • nscbc/zz_profile (ninit) [character,private/optional/default='nothing']

Subroutines and functions

subroutine  nscbc/nscbc_boundtreat(f, df)

Boundary treatment of the df-array.

This is a way to impose (time- dependent) boundary conditions by solving a so-called characteristic form of the fluid equations on the boundaries, as opposed to setting actual values of the variables in the f-array. The method is called Navier-Stokes characteristic boundary conditions (NSCBC). The current implementation only solves a simplified version of the equations, namely a set of so-called local one-dimensional inviscid (LODI) relations. This means that transversal and viscous terms are dropped on the boundaries.

The treatment should be done after the y-z-loop, but before the Runge- Kutta solver adds to the f-array.

7-jul-08/arne: coded.

Parameters:
Use :

equationofstate (get_gamma_etc())

Call to:

get_gamma_etc(), fatal_error(), stop_it(), rdim(), jet_x()

subroutine  nscbc/read_nscbc_init_pars(iomsg)
Parameters:

iomsg [character,out]

Use :

file_io (parallel_unit())

Call to:

rdim(), stop_it(), jet_x(), fatal_error()

subroutine  nscbc/write_nscbc_init_pars(unit)
Parameters:

unit [integer,in]

Call to:

rdim(), stop_it(), jet_x(), fatal_error()

subroutine  nscbc/read_nscbc_run_pars(iomsg)
Parameters:

iomsg [character,out]

Use :

file_io (parallel_unit()), sub (rdim())

Call to:

rdim(), stop_it(), jet_x(), fatal_error()

subroutine  nscbc/write_nscbc_run_pars(unit)
Parameters:

unit [integer,in]

Call to:

stop_it(), jet_x(), fatal_error()

subroutine  nscbc/nscbc_clean_up()

Deallocate all allocatable arrays

Call to:

stop_it(), jet_x(), fatal_error()