7.2
general documentation
cs_user_source_terms.f90 File Reference

User subroutines for additional right-hand side source terms. More...

Functions/Subroutines

subroutine ustsnv (nvar, nscal, ncepdp, ncesmp, ivar, icepdc, icetsm, itypsm, dt, ckupdc, smacel, crvexp, crvimp)
 Additional right-hand side source terms for velocity components equation (Navier-Stokes) More...
 
subroutine ustssc (nvar, nscal, ncepdp, ncesmp, iscal, icepdc, icetsm, itypsm, dt, ckupdc, smacel, crvexp, crvimp)
 Additional right-hand side source terms for scalar equations (user scalars and specific physics scalars). More...
 
subroutine ustsvv (nvar, nscal, ncepdp, ncesmp, iscal, icepdc, icetsm, itypsm, dt, ckupdc, smacel, crvexp, crvimp)
 Additional right-hand side source terms for vectorial equations (user vectors and specific physics vectors). More...
 
subroutine cs_user_turbulence_source_terms2 (nvar, nscal, ncepdp, ncesmp, f_id, icepdc, icetsm, itypsm, ckupdc, smacel, crvexp, crvimp)
 Additional right-hand side source terms for turbulence models and irijco =1. More...
 

Detailed Description

User subroutines for additional right-hand side source terms.

See cs_user_source_terms and Examples of data settings for source terms with scalar in a channel for examples.

Function/Subroutine Documentation

◆ cs_user_turbulence_source_terms2()

subroutine cs_user_turbulence_source_terms2 ( integer  nvar,
integer  nscal,
integer  ncepdp,
integer  ncesmp,
integer  f_id,
integer, dimension(ncepdp)  icepdc,
integer, dimension(ncesmp)  icetsm,
integer, dimension(ncesmp,nvar)  itypsm,
double precision, dimension(6,ncepdp)  ckupdc,
double precision, dimension(ncesmp,nvar)  smacel,
double precision, dimension(6,ncelet)  crvexp,
double precision, dimension(6,6,ncelet)  crvimp 
)

Additional right-hand side source terms for turbulence models and irijco =1.

Deprecated:
Use cs_user_source_terms instead.

Usage

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

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

where $ \varia $ is the turbulence field of index f_id

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

  • crvexp is expressed in kg.m2/s2
  • crvimp is expressed in kg/s

The crvexp, crvimp arrays are already initialized to 0 before entering 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:

  • crvexp at time n
  • crvimp at time n+1/2

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.

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]f_idfield index of the current turbulent 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
[in]ckupdchead loss coefficient
[in]smacelvalue associated to each variable in the mass source terms or mass rate
[out]crvexpexplicit part of the source term
[out]crvimpimplicit part of the source term

◆ ustsnv()

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(6,ncepdp)  ckupdc,
double precision, dimension(ncesmp,nvar)  smacel,
double precision, dimension(3,ncelet)  crvexp,
double precision, dimension(3,3,ncelet)  crvimp 
)

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

Deprecated:
Use cs_user_source_terms instead.
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
[in]dttime step (per cell)
[in]ckupdchead loss coefficient
[in]smacelvalue associated to each variable in the mass source terms or mass rate
[out]crvexpexplicit part of the source term
[out]crvimpimplicit part of the source term

◆ ustssc()

subroutine ustssc ( integer  nvar,
integer  nscal,
integer  ncepdp,
integer  ncesmp,
integer  iscal,
integer, dimension(ncepdp)  icepdc,
integer, dimension(ncesmp)  icetsm,
integer, dimension(ncesmp,nvar)  itypsm,
double precision, dimension(ncelet)  dt,
double precision, dimension(6,ncepdp)  ckupdc,
double precision, dimension(ncesmp,nvar)  smacel,
double precision, dimension(ncelet)  crvexp,
double precision, dimension(ncelet)  crvimp 
)

Additional right-hand side source terms for scalar equations (user scalars and specific physics scalars).

Deprecated:
Use cs_user_source_terms instead.
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]iscalindex number of the current scalar
[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
[in]dttime step (per cell)
[in]ckupdchead loss coefficient
[in]smacelvalue associated to each variable in the mass
[in]sourceterms or mass rate
[out]crvexpexplicit part of the source term
[out]crvimpimplicit part of the source term

◆ ustsvv()

subroutine ustsvv ( integer  nvar,
integer  nscal,
integer  ncepdp,
integer  ncesmp,
integer  iscal,
integer, dimension(ncepdp)  icepdc,
integer, dimension(ncesmp)  icetsm,
integer, dimension(ncesmp,nvar)  itypsm,
double precision, dimension(ncelet)  dt,
double precision, dimension(6,ncepdp)  ckupdc,
double precision, dimension(ncesmp,nvar)  smacel,
double precision, dimension(3,ncelet)  crvexp,
double precision, dimension(3,3,ncelet)  crvimp 
)

Additional right-hand side source terms for vectorial equations (user vectors and specific physics vectors).

Deprecated:
Use cs_user_source_terms instead.
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]iscalindex number of the current scalar
[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
[in]dttime step (per cell)
[in]ckupdchead loss coefficient
[in]smacelvalue associated to each variable in the mass
[in]sourceterms or mass rate
[out]crvexpexplicit part of the source term
[out]crvimpimplicit part of the source term