8.0
general documentation
Loading...
Searching...
No Matches
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, 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.

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_{\face} = A_P^g + B_P^g P_{\centi}
\]

and

\[    Q_{\face} = A_P^f + B_P^f P_{\centi}
\]

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

Warning:

  • if we consider an increment of a variable, the boundary conditions read:

    \[      \delta P_{\face} = B_P^g \delta P_{\centi}
\]

    and

    \[      \delta Q_{\face} = -B_P^f \delta P_{\centi}
\]

  • for a vector field such as the velocity $ \vect{u} $ the boundary conditions may read:

    \[      \vect{u}_{\face} = \vect{A}_u^g + \tens{B}_u^g \vect{u}_{\centi}
\]

    and

    \[      \vect{Q}_{\face} = \vect{A}_u^f + \tens{B}_u^f \vect{u}_{\centi}
\]

    where $ \tens{B}_u^g $ and $ \tens{B}_u^f $ are 3x3 tensor matrix which coupled velocity components next to a boundary.

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,
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,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]visvdrdynamic viscosity after V. Driest damping in boundary cells
[out]hbordexchange coefficient at boundary
[out]theipbvalue of thermal scalar at $ \centip $ of boundary cells

◆ condli_ini()

subroutine condli_ini ( integer nvar,
integer nscal,
integer itrale,
integer, dimension(:,:), pointer icodcl,
integer, dimension(nfabor+1) isostd,
double precision, dimension(:), pointer dt,
double precision, dimension(:,:,:), pointer 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 tangential components
[in]qimpvFlux value to impose on the normal component
[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 tangential components
[in]qimpvFlux value to impose on the normal component
[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