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
cdata: $Id$messages(fatal_error()): $Id$
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_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_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]
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 :
- Call to:
- subroutine nscbc/read_nscbc_init_pars(iomsg)
- Parameters:
iomsg [character,out]
- Use :
- Call to:
- subroutine nscbc/write_nscbc_init_pars(unit)
- Parameters:
unit [integer,in]
- Call to:
- subroutine nscbc/read_nscbc_run_pars(iomsg)
- Parameters:
iomsg [character,out]
- Use :
file_io(parallel_unit()),sub(rdim())- Call to:
- subroutine nscbc/write_nscbc_run_pars(unit)
- Parameters:
unit [integer,in]
- Call to:
- subroutine nscbc/nscbc_clean_up()
Deallocate all allocatable arrays
- Call to: