|  | programmer's documentation | 
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 | 
Additional right-hand side source terms.
Additional right-hand side source terms for velocity components equation (Navier-Stokes)
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} \]](form_342.png) 
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.
| 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 | ||
| ) | 
| [in] | nvar | total number of variables | 
| [in] | nscal | total number of scalars | 
| [in] | ncepdp | number of cells with head loss terms | 
| [in] | ncesmp | number of cells with mass source terms | 
| [in] | ivar | index number of the current variable | 
| [in] | icepdc | index number of cells with head loss terms | 
| [in] | icetsm | index number of cells with mass source terms | 
| [in] | itypsm | type of mass source term for each variable (see ustsma) | 
| [in] | dt | time step (per cell) | 
| [in] | rtpa | calculated variables at cell centers (preceding time steps) | 
| [in] | propce | physical properties at cell centers | 
| [in] | ckupdc | head loss coefficient | 
| [in] | smacel | value associated to each variable in the mass source terms or mass rate (see ustsma) | 
| [out] | crvexp | explicit part of the source term | 
| [out] | crvimp | implicit part of the source term | 
| subroutine ustsri | ( | ) | 
| subroutine ustssa | ( | ) | 
| subroutine ustssc | ( | ) | 
| subroutine ustsv2 | ( | ) | 
 1.8.3.1
 1.8.3.1