Local variables to be added
The following local variables need to be defined for the examples in this section:
integer          ifac, iel, ii, ivar
integer          izone
integer          ilelt, nlelt
double precision uref2, d2s3
double precision rhomoy, xdh, xustar2
double precision xitur
double precision xkent, xeent
integer, allocatable, dimension(:) :: lstelt
Initialization and finalization
The following initialization block needs to be added for the following examples:
 Ad the end of the subroutine, it is recommended to deallocate the work array:
 In theory Fortran 95 deallocates locally-allocated arrays automatically, but deallocating arrays in a symmetric manner to their allocation is good practice, and it avoids using a different logic for C and Fortran.
Body
In the body, we may define several boundary conditions. Here are a few examples.
Inlet example with hydraulic diameter
Assign an inlet to boundary faces of group '2' and x < 0.01.
- Warning
- the <, <=, >, and >= operators may only be used with variables x, y, and z. This syntax is not a full equation interpreter, so formulas involving x, y, or z are not allowed.
Set a a Dirichlet value on the three components of  on the faces with the selection criterium '2 and x < 0.01' and set a Dirichlet to all the scalars
 on the faces with the selection criterium '2 and x < 0.01' and set a Dirichlet to all the scalars  .
.
Turbulence example computed using equations valid for a pipe.
We will be careful to specify a hydraulic diameter adapted to the current inlet.
We will also be careful if necessary to use a more precise formula for the dynamic viscosity use in the calculation of the Reynolds number (especially if it is variable, it may be useful to take the law from usphyv. Here, we use by default the 'viscl0" value.
Regarding the density, we have access to its value at boundary faces (romb) so this value is the one used here (specifically, it is consistent with the processing in usphyv, in case of variable density).
do ilelt = 1, nlelt
  ifac = lstelt(ilelt)
  rcodcl(ifac,
iu,1) = 1.1d0
  rcodcl(ifac,
iv,1) = 1.1d0
  rcodcl(ifac,
iw,1) = 1.1d0
  uref2 = rcodcl(ifac,
iu,1)**2  &
  uref2 = max(uref2,1.d-12)
  
  
  
  
  
  
  
  
  
  
  
  
  
  xdh     = 0.075d0
  
  
  
  
  rhomoy  = brom(ifac)
  xustar2 = 0.d0
  
  xustar2, xkent, xeent )
  
    rcodcl(ifac,
ik,1)  = xkent
    rcodcl(ifac,
iep,1) = xeent
    rcodcl(ifac,
ir11,1) = d2s3*xkent
    rcodcl(ifac,
ir22,1) = d2s3*xkent
    rcodcl(ifac,
ir33,1) = d2s3*xkent
    rcodcl(ifac,
ir12,1) = 0.d0
    rcodcl(ifac,
ir13,1) = 0.d0
    rcodcl(ifac,
ir23,1) = 0.d0
    rcodcl(ifac,
iep,1)  = xeent
      rcodcl(ifac,
ial,1)  = 1.d0
    endif
    rcodcl(ifac,
ik,1)   = xkent
    rcodcl(ifac,
iep,1)  = xeent
    rcodcl(ifac,
iphi,1) = d2s3
      rcodcl(ifac,
ifb,1)  = 0.d0
    elseif (
iturb.eq.51) 
then 
      rcodcl(ifac,
ial,1)  = 0.d0
    endif
  elseif (
iturb.eq.60) 
then 
    rcodcl(ifac,
ik,1)   = xkent
    rcodcl(ifac,
iomg,1) = xeent/
cmu/xkent
  elseif (
iturb.eq.70) 
then 
    rcodcl(ifac,
inusa,1) = 
cmu*xkent**2/xeent
  endif
  
      rcodcl(ifac,
isca(ii),1) = 1.d0
    enddo
  endif
enddo
  
Inlet example with turbulence intensity
Assign an inlet to boundary faces of group '3'.
Set a a Dirichlet value on the three components of  on the faces with the selection criterium '3' and set a Dirichlet to all the scalars
 on the faces with the selection criterium '3' and set a Dirichlet to all the scalars  .
.
Turbulence example computed using turbulence intensity data.
We will be careful to specify a hydraulic diameter adapted to the current inlet.
Calculation of  and
 and  at the inlet (xkent and xeent) using the turbulence intensity and standard laws for a circular pipe (their initialization is not needed here but is good practice)
 at the inlet (xkent and xeent) using the turbulence intensity and standard laws for a circular pipe (their initialization is not needed here but is good practice)
do ilelt = 1, nlelt
  ifac = lstelt(ilelt)
  rcodcl(ifac,
iu,1) = 1.1d0
  rcodcl(ifac,
iv,1) = 1.1d0
  rcodcl(ifac,
iw,1) = 1.1d0
  uref2 = rcodcl(ifac,
iu,1)**2   &
  uref2 = max(uref2,1.d-12)
  
  
  
  
  xdh   = 0.075d0
  
  xitur = 0.02d0
  
  
  
  
( uref2, xitur, xdh, 
cmu, 
xkappa, xkent, xeent )
  
    rcodcl(ifac,
ik,1)  = xkent
    rcodcl(ifac,
iep,1) = xeent
    rcodcl(ifac,
ir11,1) = d2s3*xkent
    rcodcl(ifac,
ir22,1) = d2s3*xkent
    rcodcl(ifac,
ir33,1) = d2s3*xkent
    rcodcl(ifac,
ir12,1) = 0.d0
    rcodcl(ifac,
ir13,1) = 0.d0
    rcodcl(ifac,
ir23,1) = 0.d0
    rcodcl(ifac,
iep,1)  = xeent
      rcodcl(ifac,
ial,1)  = 1.d0
    endif
    rcodcl(ifac,
ik,1)   = xkent
    rcodcl(ifac,
iep,1)  = xeent
    rcodcl(ifac,
iphi,1) = d2s3
      rcodcl(ifac,
ifb,1)  = 0.d0
    elseif (
iturb.eq.51) 
then 
      rcodcl(ifac,
ial,1)  = 0.d0
    endif
  elseif (
iturb.eq.60) 
then 
    rcodcl(ifac,
ik,1)   = xkent
    rcodcl(ifac,
iomg,1) = xeent/
cmu/xkent
  elseif (
iturb.eq.70) 
then 
    rcodcl(ifac,
inusa,1) = 
cmu*xkent**2/xeent
  endif
  
      rcodcl(ifac,
isca(ii),1) = 1.d0
    enddo
  endif
enddo
  
Assign an outlet to boundary faces of group 'outlet'
Outlet:
- zero flux for velocity and temperature, prescribed pressure
- Note that the pressure will be set to P0 at the first
- free outlet face (isolib)
do ilelt = 1, nlelt
  ifac = lstelt(ilelt)
  
  
  
enddo
  
Wall example
Assign a wall to boundary faces of group '5'.
Wall:
- zero flow (zero flux for pressure)
- friction for velocities (+ turbulent variables)
- zero flux for scalars
do ilelt = 1, nlelt
  ifac = lstelt(ilelt)
  
  
  
  
  
  
    
    ii = 1
    icodcl(ifac, 
isca(ii))    = 5
    rcodcl(ifac, 
isca(ii), 1) = 20.d0
    
    
    ii = 2
    icodcl(ifac, 
isca(ii))    = 1
    rcodcl(ifac, 
isca(ii),1)  = 50.d0
    rcodcl(ifac, 
isca(ii), 2) = 8.d0
    
    ii = 3
    icodcl(ifac, 
isca(ii))    = 3
    rcodcl(ifac, 
isca(ii), 3) = 4.d0
  endif
enddo
  
Rough wall example
Assign a rough wall to boundary faces of group '7'.
Wall:
- zero flow (zero flux for pressure)
- rough friction for velocities (+ turbulent variables)
- zero flux for scalars
do ilelt = 1, nlelt
  ifac = lstelt(ilelt)
  
  
  
  
  rcodcl(ifac,
iu,3) = 0.01d0
  
  rcodcl(ifac,
iv,3) = 0.01d0
  
  rcodcl(ifac, 
iu, 1) = 1.d0
  
    
    
    ii = 1
    icodcl(ifac, 
isca(ii))    = 6
    rcodcl(ifac, 
isca(ii), 1) = 20.d0
    
    ii = 3
    icodcl(ifac, 
isca(ii))    = 3
    rcodcl(ifac, 
isca(ii), 3) = 4.d0
  endif
enddo
  
Symmetry example
Assign a symmetry condition to boundary faces of group '4'
do ilelt = 1, nlelt
  ifac = lstelt(ilelt)
  
enddo