programmer's documentation
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Functions/Subroutines
cs_user_source_terms.f90 File Reference

Additional right-hand side source terms. More...

Functions/Subroutines

subroutine ustsnv (nvar, nscal, ncepdp, ncesmp, ivar, icepdc, icetsm, itypsm, dt, rtpa, propce, ckupdc, smacel, crvexp, crvimp)
 
subroutine ustssc
 
subroutine ustske
 
subroutine ustskw
 
subroutine ustsri
 
subroutine ustsv2
 
subroutine ustssa
 

Detailed Description

Additional right-hand side source terms.

Additional right-hand side source terms for velocity components equation (Navier-Stokes)

Usage

The additional source term is decomposed into an explicit part (crvexp) and an implicit part (crvimp) that must be provided here. The resulting equation solved by the code for a velocity is:

\[ \rho \norm{\vol{\celli}} \DP{\vect{u}} + .... = \tens{crvimp} \vect{u} + \vect{crvexp} \]

Note that crvexp and crvimp are defined after the Finite Volume integration over the cells, so they include the "volume" term. More precisely:

The crvexp and crvimp arrays are already initialized to 0 before entering the the routine. It is not needed to do it in the routine (waste of CPU time).

For stability reasons, Code_Saturne will not add -crvimp directly to the diagonal of the matrix, but Max(-crvimp,0). This way, the crvimp term is treated implicitely only if it strengthens the diagonal of the matrix. However, when using the second-order in time scheme, this limitation cannot be done anymore and -crvimp is added directly. The user should therefore test the negativity of crvimp by himself.

When using the second-order in time scheme, one should supply:

The selection of cells where to apply the source terms is based on a getcel command. For more info on the syntax of the getcel command, refer to the user manual or to the comments on the similar command getfbr in the routine cs_user_boundary_conditions.

Function/Subroutine Documentation

subroutine ustske ( )
subroutine ustskw ( )
subroutine ustsnv ( integer  nvar,
integer  nscal,
integer  ncepdp,
integer  ncesmp,
integer  ivar,
integer, dimension(ncepdp)  icepdc,
integer, dimension(ncesmp)  icetsm,
integer, dimension(ncesmp,nvar)  itypsm,
double precision, dimension(ncelet)  dt,
double precision, dimension(ncelet,*)  rtpa,
double precision, dimension(ncelet,*)  propce,
double precision, dimension(ncepdp,6)  ckupdc,
double precision, dimension(ncesmp,nvar)  smacel,
double precision, dimension(3,ncelet)  crvexp,
double precision, dimension(3,3,ncelet)  crvimp 
)
Parameters
[in]nvartotal number of variables
[in]nscaltotal number of scalars
[in]ncepdpnumber of cells with head loss terms
[in]ncesmpnumber of cells with mass source terms
[in]ivarindex number of the current variable
[in]icepdcindex number of cells with head loss terms
[in]icetsmindex number of cells with mass source terms
[in]itypsmtype of mass source term for each variable (see ustsma)
[in]dttime step (per cell)
[in]rtpacalculated variables at cell centers (preceding time steps)
[in]propcephysical properties at cell centers
[in]ckupdchead loss coefficient
[in]smacelvalue associated to each variable in the mass source terms or mass rate (see ustsma)
[out]crvexpexplicit part of the source term
[out]crvimpimplicit part of the source term
subroutine ustsri ( )
subroutine ustssa ( )
subroutine ustssc ( )
subroutine ustsv2 ( )