|
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:
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