My Project
programmer's documentation
Functions/Subroutines
condli.f90 File Reference

Translation of the boundary conditions given by cs_user_boundary_conditions in a form that fits to the solver. More...

Functions/Subroutines

subroutine condli (nvar, nscal, iterns, isvhb, itrale, italim, itrfin, ineefl, itrfup, flmalf, flmalb, cofale, xprale, icodcl, isostd, dt, rcodcl, visvdr, hbord, theipb)
 
subroutine set_dirichlet_scalar (coefa, cofaf, coefb, cofbf, pimp, hint, hext)
 
subroutine set_dirichlet_vector (coefa, cofaf, coefb, cofbf, pimpv, hint, hextv)
 
subroutine set_dirichlet_tensor (coefa, cofaf, coefb, cofbf, pimpts, hint, hextts)
 
subroutine set_dirichlet_vector_aniso (coefa, cofaf, coefb, cofbf, pimpv, hint, hextv)
 
subroutine set_neumann_scalar (coefa, cofaf, coefb, cofbf, dimp, hint)
 
subroutine set_neumann_vector (coefa, cofaf, coefb, cofbf, qimpv, hint)
 
subroutine set_neumann_tensor (coefa, cofaf, coefb, cofbf, qimpts, hint)
 
subroutine set_neumann_vector_aniso (coefa, cofaf, coefb, cofbf, qimpv, hint)
 
subroutine set_generalized_sym_vector (coefa, cofaf, coefb, cofbf, pimpv, qimpv, hint, normal)
 
subroutine set_generalized_sym_vector_aniso (coefa, cofaf, coefb, cofbf, pimpv, qimpv, hint, normal)
 
subroutine set_generalized_dirichlet_vector (coefa, cofaf, coefb, cofbf, pimpv, qimpv, hint, normal)
 
subroutine set_generalized_dirichlet_vector_aniso (coefa, cofaf, coefb, cofbf, pimpv, qimpv, hint, normal)
 
subroutine set_convective_outlet_scalar (coefa, cofaf, coefb, cofbf, pimp, cfl, hint)
 
subroutine set_convective_outlet_vector (coefa, cofaf, coefb, cofbf, pimpv, cflv, hint)
 
subroutine set_convective_outlet_tensor (coefa, cofaf, coefb, cofbf, pimpts, cflts, hint)
 
subroutine set_convective_outlet_vector_aniso (coefa, cofaf, coefb, cofbf, pimpv, cflv, hint)
 
subroutine set_affine_function_scalar (coefa, cofaf, coefb, cofbf, pinf, ratio, hint)
 
subroutine set_neumann_conv_h_neumann_diff_scalar (coefa, cofaf, coefb, cofbf, dimp, hint)
 
subroutine set_affine_function_conv_neumann_diff_scalar (coefa, cofaf, coefb, cofbf, pinf, ratio, dimp)
 
subroutine set_total_flux (coefa, cofaf, coefb, cofbf, hext, dimp)
 
subroutine set_dirichlet_conv_neumann_diff_scalar (coefa, cofaf, coefb, cofbf, pimp, dimp)
 
subroutine set_dirichlet_conv_neumann_diff_vector (coefa, cofaf, coefb, cofbf, pimpv, qimpv)
 
subroutine set_dirichlet_conv_neumann_diff_tensor (coefa, cofaf, coefb, cofbf, pimpts, qimpts)
 
subroutine condli_ini (nvar, nscal, itrale, icodcl, isostd, dt, rcodcl)
 Initialisation of boundary condition arrays. More...
 

Detailed Description

Translation of the boundary conditions given by cs_user_boundary_conditions in a form that fits to the solver.

The values at a boundary face $ \fib $ stored in the face center $ \centf $ of the variable $ P $ and its diffusive flux $ Q $ are written as:

\[ P_\centf = A_P^g + B_P^g P_\centi \]

and

\[ Q_\centf = -\left(A_P^f + B_P^f P_\centi\right) \]

where $ P_\centi $ is the value of the variable $ P $ at the neighboring cell.

Warning:

Please refer to the boundary conditions section of the theory guide for more informations, as well as the condli section.

Function/Subroutine Documentation

◆ condli()

subroutine condli ( integer  nvar,
integer  nscal,
integer  iterns,
integer  isvhb,
integer  itrale,
integer  italim,
integer  itrfin,
integer  ineefl,
integer  itrfup,
double precision, dimension(:), pointer  flmalf,
double precision, dimension(:), pointer  flmalb,
double precision, dimension(:,:), pointer  cofale,
double precision, dimension(:), pointer  xprale,
integer, dimension(:,:), pointer  icodcl,
integer, dimension(nfabor+1)  isostd,
double precision, dimension(:), pointer  dt,
double precision, dimension(:,:,:), pointer  rcodcl,
double precision, dimension(:), pointer  visvdr,
double precision, dimension(:), pointer  hbord,
double precision, dimension(:), pointer  theipb 
)
Parameters
[in]nvartotal number of variables
[in]nscaltotal number of scalars
[in]iternsiteration number on Navier-Stokes equations
[in]isvhbindicator to save exchange coeffient at the walls
[in]itraleALE iteration number
[in]itraleALE iteration number
[in]italimfor ALE
[in]itrfinfor ALE
[in]ineeflfor ALE
[in]itrfupfor ALE
[in]flmalfwork array for FSI
[in]flmalbwork array for FSI
[in]cofalework array for FSI
[in]xpralework array for FSI
[in,out]icodclface boundary condition code:
  • 1 Dirichlet
  • 2 Radiative outlet
  • 3 Neumann
  • 4 sliding and $ \vect{u} \cdot \vect{n} = 0 $
  • 5 smooth wall and $ \vect{u} \cdot \vect{n} = 0 $
  • 6 rough wall and $ \vect{u} \cdot \vect{n} = 0 $
  • 9 free inlet/outlet (input mass flux blocked to 0)
  • 10 Boundary value related to the next cell value by an affine function
  • 11 Generalized Dirichlet for vectors
  • 12 Dirichlet boundary value related to the next cell value by an affine function for the advection operator and Neumann for the diffusion operator
  • 13 Dirichlet for the advection operator and Neumann for the diffusion operator
  • 14 Generalized symmetry for vectors (used for Marangoni effects modeling)
  • 15 Neumann for the advection operator and homogeneous Neumann for the diffusion operator (walls with hydro. pressure for the compressible module)
[in,out]isostdindicator for standard outlet and reference face index
[in]dttime step (per cell)
[in,out]rcodclboundary condition values:
  • rcodcl(1) value of the dirichlet
  • rcodcl(2) value of the exterior exchange coefficient (infinite if no exchange)
  • rcodcl(3) value flux density (negative if gain) in w/m2 or roughness in m if icodcl=6
    1. for the velocity $ (\mu+\mu_T) \gradv \vect{u} \cdot \vect{n} $
    2. for the pressure $ \Delta t \grad P \cdot \vect{n} $
    3. for a scalar $ cp \left( K + \dfrac{K_T}{\sigma_T} \right) \grad T \cdot \vect{n} $
[out]visvdrviscosite dynamique ds les cellules de bord apres amortisst de v driest
[out]hbordcoefficients d'echange aux bords
[out]theipbboundary temperature in $ \centip $ (more exaclty the energetic variable)

◆ condli_ini()

subroutine condli_ini ( integer  nvar,
integer  nscal,
integer  itrale,
integer, dimension(nfabor,nvar icodcl,
integer, dimension(nfabor+1)  isostd,
double precision, dimension(:), pointer  dt,
double precision, dimension(nfabor,nvar,3)  rcodcl 
)

Initialisation of boundary condition arrays.

Parameters
[in]nvartotal number of variables
[in]nscaltotal number of scalars
[in]itraleALE iteration number
[in,out]icodclface boundary condition code (see condli)
[in,out]isostdindicator for standard outlet and reference face index
[in]dttime step (per cell)
[in,out]rcodclboundary condition values:
  • rcodcl(1) value of the dirichlet
  • rcodcl(2) value of the exterior exchange coefficient (infinite if no exchange)
  • rcodcl(3) value flux density (negative if gain) in w/m2 or roughness in m if icodcl=6
    1. for the velocity $ (\mu+\mu_T) \gradv \vect{u} \cdot \vect{n} $
    2. for the pressure $ \Delta t \grad P \cdot \vect{n} $
    3. for a scalar $ cp \left( K + \dfrac{K_T}{\sigma_T} \right) \grad T \cdot \vect{n} $

◆ set_affine_function_conv_neumann_diff_scalar()

subroutine set_affine_function_conv_neumann_diff_scalar ( double precision  coefa,
double precision  cofaf,
double precision  coefb,
double precision  cofbf,
double precision  pinf,
double precision  ratio,
double precision  dimp 
)
Parameters
[out]coefaexplicit BC coefficient for gradients
[out]cofafexplicit BC coefficient for diffusive flux
[out]coefbimplicit BC coefficient for gradients
[out]cofbfimplicit BC coefficient for diffusive flux
[in]pinfaffine part
[in]ratiolinear part
[in]dimpFlux value to impose

◆ set_affine_function_scalar()

subroutine set_affine_function_scalar ( double precision  coefa,
double precision  cofaf,
double precision  coefb,
double precision  cofbf,
double precision  pinf,
double precision  ratio,
double precision  hint 
)
Parameters
[out]coefaexplicit BC coefficient for gradients
[out]cofafexplicit BC coefficient for diffusive flux
[out]coefbimplicit BC coefficient for gradients
[out]cofbfimplicit BC coefficient for diffusive flux
[in]pinfaffine part
[in]ratiolinear part
[in]hintinternal exchange coefficient

◆ set_convective_outlet_scalar()

subroutine set_convective_outlet_scalar ( double precision  coefa,
double precision  cofaf,
double precision  coefb,
double precision  cofbf,
double precision  pimp,
double precision  cfl,
double precision  hint 
)
Parameters
[out]coefaexplicit BC coefficient for gradients
[out]cofafexplicit BC coefficient for diffusive flux
[out]coefbimplicit BC coefficient for gradients
[out]cofbfimplicit BC coefficient for diffusive flux
[in]pimpFlux value to impose
[in]cflLocal Courant number used to convect
[in]hintInternal exchange coefficient

◆ set_convective_outlet_tensor()

subroutine set_convective_outlet_tensor ( double precision, dimension(6)  coefa,
double precision, dimension(6)  cofaf,
double precision, dimension(6,6)  coefb,
double precision, dimension(6,6)  cofbf,
double precision, dimension(6)  pimpts,
double precision, dimension(6)  cflts,
double precision  hint 
)
Parameters
[out]coefaexplicit BC coefficient for gradients
[out]cofafexplicit BC coefficient for diffusive flux
[out]coefbimplicit BC coefficient for gradients
[out]cofbfimplicit BC coefficient for diffusive flux
[in]pimptsDirichlet value to impose
[in]cfltsLocal Courant number used to convect
[in]hintInternal exchange coefficient

◆ set_convective_outlet_vector()

subroutine set_convective_outlet_vector ( double precision, dimension(3)  coefa,
double precision, dimension(3)  cofaf,
double precision, dimension(3,3)  coefb,
double precision, dimension(3,3)  cofbf,
double precision, dimension(3)  pimpv,
double precision, dimension(3)  cflv,
double precision  hint 
)
Parameters
[out]coefaexplicit BC coefficient for gradients
[out]cofafexplicit BC coefficient for diffusive flux
[out]coefbimplicit BC coefficient for gradients
[out]cofbfimplicit BC coefficient for diffusive flux
[in]pimpvDirichlet value to impose
[in]cflvLocal Courant number used to convect
[in]hintInternal exchange coefficient

◆ set_convective_outlet_vector_aniso()

subroutine set_convective_outlet_vector_aniso ( double precision, dimension(3)  coefa,
double precision, dimension(3)  cofaf,
double precision, dimension(3,3)  coefb,
double precision, dimension(3,3)  cofbf,
double precision, dimension(3)  pimpv,
double precision, dimension(3)  cflv,
double precision, dimension(6)  hint 
)
Parameters
[out]coefaexplicit BC coefficient for gradients
[out]cofafexplicit BC coefficient for diffusive flux
[out]coefbimplicit BC coefficient for gradients
[out]cofbfimplicit BC coefficient for diffusive flux
[in]pimpvDirichlet value to impose
[in]cflvLocal Courant number used to convect
[in]hintInternal exchange coefficient

◆ set_dirichlet_conv_neumann_diff_scalar()

subroutine set_dirichlet_conv_neumann_diff_scalar ( double precision  coefa,
double precision  cofaf,
double precision  coefb,
double precision  cofbf,
double precision  pimp,
double precision  dimp 
)
Parameters
[out]coefaexplicit BC coefficient for gradients
[out]cofafexplicit BC coefficient for diffusive flux
[out]coefbimplicit BC coefficient for gradients
[out]cofbfimplicit BC coefficient for diffusive flux
[in]pimpDirichlet value to impose
[in]dimpFlux value to impose

◆ set_dirichlet_conv_neumann_diff_tensor()

subroutine set_dirichlet_conv_neumann_diff_tensor ( double precision, dimension(6)  coefa,
double precision, dimension(6)  cofaf,
double precision, dimension(6,6)  coefb,
double precision, dimension(6,6)  cofbf,
double precision, dimension(6)  pimpts,
double precision, dimension(6)  qimpts 
)
Parameters
[out]coefaexplicit BC coefficient for gradients
[out]cofafexplicit BC coefficient for diffusive flux
[out]coefbimplicit BC coefficient for gradients
[out]cofbfimplicit BC coefficient for diffusive flux
[in]pimptsDirichlet value to impose
[in]qimptsFlux value to impose

◆ set_dirichlet_conv_neumann_diff_vector()

subroutine set_dirichlet_conv_neumann_diff_vector ( double precision, dimension(3)  coefa,
double precision, dimension(3)  cofaf,
double precision, dimension(3,3)  coefb,
double precision, dimension(3,3)  cofbf,
double precision, dimension(3)  pimpv,
double precision, dimension(3)  qimpv 
)
Parameters
[out]coefaexplicit BC coefficient for gradients
[out]cofafexplicit BC coefficient for diffusive flux
[out]coefbimplicit BC coefficient for gradients
[out]cofbfimplicit BC coefficient for diffusive flux
[in]pimpvDirichlet value to impose
[in]qimpvFlux value to impose

◆ set_dirichlet_scalar()

subroutine set_dirichlet_scalar ( double precision  coefa,
double precision  cofaf,
double precision  coefb,
double precision  cofbf,
double precision  pimp,
double precision  hint,
double precision  hext 
)
Parameters
[out]coefaexplicit BC coefficient for gradients
[out]cofafexplicit BC coefficient for diffusive flux
[out]coefbimplicit BC coefficient for gradients
[out]cofbfimplicit BC coefficient for diffusive flux
[in]pimpDirichlet value to impose
[in]hintInternal exchange coefficient
[in]hextExternal exchange coefficient (10^30 by default)

◆ set_dirichlet_tensor()

subroutine set_dirichlet_tensor ( double precision, dimension(6)  coefa,
double precision, dimension(6)  cofaf,
double precision, dimension(6,6)  coefb,
double precision, dimension(6,6)  cofbf,
double precision, dimension(6)  pimpts,
double precision  hint,
double precision, dimension(6)  hextts 
)
Parameters
[out]coefaexplicit BC coefficient for gradients
[out]cofafexplicit BC coefficient for diffusive flux
[out]coefbimplicit BC coefficient for gradients
[out]cofbfimplicit BC coefficient for diffusive flux
[in]pimptsDirichlet value to impose
[in]hintInternal exchange coefficient
[in]hexttsExternal exchange coefficient (10^30 by default)

◆ set_dirichlet_vector()

subroutine set_dirichlet_vector ( double precision, dimension(3)  coefa,
double precision, dimension(3)  cofaf,
double precision, dimension(3,3)  coefb,
double precision, dimension(3,3)  cofbf,
double precision, dimension(3)  pimpv,
double precision  hint,
double precision, dimension(3)  hextv 
)
Parameters
[out]coefaexplicit BC coefficient for gradients
[out]cofafexplicit BC coefficient for diffusive flux
[out]coefbimplicit BC coefficient for gradients
[out]cofbfimplicit BC coefficient for diffusive flux
[in]pimpvDirichlet value to impose
[in]hintInternal exchange coefficient
[in]hextvExternal exchange coefficient (10^30 by default)

◆ set_dirichlet_vector_aniso()

subroutine set_dirichlet_vector_aniso ( double precision, dimension(3)  coefa,
double precision, dimension(3)  cofaf,
double precision, dimension(3,3)  coefb,
double precision, dimension(3,3)  cofbf,
double precision, dimension(3)  pimpv,
double precision, dimension(6)  hint,
double precision, dimension(3)  hextv 
)
Parameters
[out]coefaexplicit BC coefficient for gradients
[out]cofafexplicit BC coefficient for diffusive flux
[out]coefbimplicit BC coefficient for gradients
[out]cofbfimplicit BC coefficient for diffusive flux
[in]pimpvDirichlet value to impose
[in]hintInternal exchange coefficient
[in]hextvExternal exchange coefficient (10^30 by default)

◆ set_generalized_dirichlet_vector()

subroutine set_generalized_dirichlet_vector ( double precision, dimension(3)  coefa,
double precision, dimension(3)  cofaf,
double precision, dimension(3,3)  coefb,
double precision, dimension(3,3)  cofbf,
double precision, dimension(3)  pimpv,
double precision, dimension(3)  qimpv,
double precision  hint,
double precision, dimension(3)  normal 
)
Parameters
[out]coefaexplicit BC coefficient for gradients
[out]cofafexplicit BC coefficient for diffusive flux
[out]coefbimplicit BC coefficient for gradients
[out]cofbfimplicit BC coefficient for diffusive flux
[in]pimpvDirichlet value to impose on the normal component
[in]qimpvFlux value to impose on the tangential components
[in]hintInternal exchange coefficient
[in]normalnormal

◆ set_generalized_dirichlet_vector_aniso()

subroutine set_generalized_dirichlet_vector_aniso ( double precision, dimension(3)  coefa,
double precision, dimension(3)  cofaf,
double precision, dimension(3,3)  coefb,
double precision, dimension(3,3)  cofbf,
double precision, dimension(3)  pimpv,
double precision, dimension(3)  qimpv,
double precision, dimension(6)  hint,
double precision, dimension(3)  normal 
)
Parameters
[out]coefaexplicit BC coefficient for gradients
[out]cofafexplicit BC coefficient for diffusive flux
[out]coefbimplicit BC coefficient for gradients
[out]cofbfimplicit BC coefficient for diffusive flux
[in]pimpvDirichlet value to impose on the normal component
[in]qimpvFlux value to impose on the tangential components
[in]hintInternal exchange coefficient
[in]normalnormal

◆ set_generalized_sym_vector()

subroutine set_generalized_sym_vector ( double precision, dimension(3)  coefa,
double precision, dimension(3)  cofaf,
double precision, dimension(3,3)  coefb,
double precision, dimension(3,3)  cofbf,
double precision, dimension(3)  pimpv,
double precision, dimension(3)  qimpv,
double precision  hint,
double precision, dimension(3)  normal 
)
Parameters
[out]coefaexplicit BC coefficient for gradients
[out]cofafexplicit BC coefficient for diffusive flux
[out]coefbimplicit BC coefficient for gradients
[out]cofbfimplicit BC coefficient for diffusive flux
[in]pimpvDirichlet value to impose on the normal component
[in]qimpvFlux value to impose on the tangential components
[in]hintInternal exchange coefficient
[in]normalnormal

◆ set_generalized_sym_vector_aniso()

subroutine set_generalized_sym_vector_aniso ( double precision, dimension(3)  coefa,
double precision, dimension(3)  cofaf,
double precision, dimension(3,3)  coefb,
double precision, dimension(3,3)  cofbf,
double precision, dimension(3)  pimpv,
double precision, dimension(3)  qimpv,
double precision, dimension(6)  hint,
double precision, dimension(3)  normal 
)
Parameters
[out]coefaexplicit BC coefficient for gradients
[out]cofafexplicit BC coefficient for diffusive flux
[out]coefbimplicit BC coefficient for gradients
[out]cofbfimplicit BC coefficient for diffusive flux
[in]pimpvDirichlet value to impose on the normal component
[in]qimpvFlux value to impose on the tangential components
[in]hintInternal exchange coefficient
[in]normalnormal

◆ set_neumann_conv_h_neumann_diff_scalar()

subroutine set_neumann_conv_h_neumann_diff_scalar ( double precision  coefa,
double precision  cofaf,
double precision  coefb,
double precision  cofbf,
double precision  dimp,
double precision  hint 
)
Parameters
[out]coefaexplicit BC coefficient for gradients
[out]cofafexplicit BC coefficient for diffusive flux
[out]coefbimplicit BC coefficient for gradients
[out]cofbfimplicit BC coefficient for diffusive flux
[in]dimpFlux value to impose
[in]hintInternal exchange coefficient

◆ set_neumann_scalar()

subroutine set_neumann_scalar ( double precision  coefa,
double precision  cofaf,
double precision  coefb,
double precision  cofbf,
double precision  dimp,
double precision  hint 
)
Parameters
[out]coefaexplicit BC coefficient for gradients
[out]cofafexplicit BC coefficient for diffusive flux
[out]coefbimplicit BC coefficient for gradients
[out]cofbfimplicit BC coefficient for diffusive flux
[in]dimpFlux value to impose
[in]hintInternal exchange coefficient

◆ set_neumann_tensor()

subroutine set_neumann_tensor ( double precision, dimension(6)  coefa,
double precision, dimension(6)  cofaf,
double precision, dimension(6,6)  coefb,
double precision, dimension(6,6)  cofbf,
double precision, dimension(6)  qimpts,
double precision  hint 
)
Parameters
[out]coefaexplicit BC coefficient for gradients
[out]cofafexplicit BC coefficient for diffusive flux
[out]coefbimplicit BC coefficient for gradients
[out]cofbfimplicit BC coefficient for diffusive flux
[in]qimptsFlux value to impose
[in]hintInternal exchange coefficient

◆ set_neumann_vector()

subroutine set_neumann_vector ( double precision, dimension(3)  coefa,
double precision, dimension(3)  cofaf,
double precision, dimension(3,3)  coefb,
double precision, dimension(3,3)  cofbf,
double precision, dimension(3)  qimpv,
double precision  hint 
)
Parameters
[out]coefaexplicit BC coefficient for gradients
[out]cofafexplicit BC coefficient for diffusive flux
[out]coefbimplicit BC coefficient for gradients
[out]cofbfimplicit BC coefficient for diffusive flux
[in]qimpvFlux value to impose
[in]hintInternal exchange coefficient

◆ set_neumann_vector_aniso()

subroutine set_neumann_vector_aniso ( double precision, dimension(3)  coefa,
double precision, dimension(3)  cofaf,
double precision, dimension(3,3)  coefb,
double precision, dimension(3,3)  cofbf,
double precision, dimension(3)  qimpv,
double precision, dimension(6)  hint 
)
Parameters
[out]coefaexplicit BC coefficient for gradients
[out]cofafexplicit BC coefficient for diffusive flux
[out]coefbimplicit BC coefficient for gradients
[out]cofbfimplicit BC coefficient for diffusive flux
[in]qimpvFlux value to impose
[in]hintInternal exchange coefficient

◆ set_total_flux()

subroutine set_total_flux ( double precision  coefa,
double precision  cofaf,
double precision  coefb,
double precision  cofbf,
double precision  hext,
double precision  dimp 
)
Parameters
[out]coefaexplicit BC coefficient for gradients
[out]cofafexplicit BC coefficient for diffusive flux
[out]coefbimplicit BC coefficient for gradients
[out]cofbfimplicit BC coefficient for diffusive flux
[in]hextconvective flux to be imposed
[in]dimpFlux value to impose