programmer's documentation
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Compressible example

Compressible example

Local variables to be added

The following local variables need to be defined for the examples in this section:

integer, allocatable, dimension(:) :: lstelt
integer iel
integer iscal, imodif
double precision, allocatable, dimension(:) :: w1, w2, w3, w4
double precision, dimension(:), pointer :: crom

Allocation

Before user initialization, work arrays must be allocated.

allocate(lstelt(ncel)) ! temporary array for cells selection

Initialization

The following initialization block needs to be added for the following examples:

if ( isuite.eq.0 ) then
! --- Velocity components
do iel = 1, ncel
rtp(iel,iu) = 0.d0
rtp(iel,iv) = 0.d0
rtp(iel,iw) = 0.d0
enddo
! --- User defined scalars
! If there are user defined scalars
if(nscaus.gt.0) then
! For each scalar
do iscal = 1, nscaus
! If the scalar is associated to the considered phase iphas
! if(iphsca(iscal).eq.iphas) then
! Initialize each cell value
do iel = 1, ncel
rtp(iel,isca(iscal)) = 0.d0
enddo
! endif
enddo
endif
! --- Pressure, Density, Temperature, Total Energy
! Only 2 out of these 4 variables are independent: one may choose to
! initialize any pair of variables picked out of these 4, except
! (Temperature-Energy). The remaining 2 variables will be deduced
! automatically.
! Initialize 2 and only 2 variables
! To do so, set iutile=1 for each of the 2 selected variables
! and iutile=0 for each of the 2 others
! In the example provided below, Pressure and Temperature are
! initialized.
! ithvar indicates which variables have been set:
! it is completed automatically for each variable and
! it must not be modified.
! 1. Pressure (Pa)
if(.true.) then
ithvar = ithvar*2
do iel = 1, ncel
rtp(iel,ipr) = p0
enddo
endif
! 2. Density (kg.m-3)
if(.false.) then
ithvar = ithvar*3
do iel = 1, ncel
crom(iel) = ro0
enddo
endif
! 3. Temperature (K -- Warning: Kelvin)
if(.true.) then
ithvar = ithvar*5
do iel = 1, ncel
rtp(iel,isca(itempk)) = t0
enddo
endif
! 4. Total Energy (J/kg)
if(.false.) then
ithvar = ithvar*7
do iel = 1, ncel
rtp(iel,isca(ienerg)) = cv0*t0
enddo
endif
endif

Finalization

At the end of the subroutine, it is recommended to deallocate the work arrays:

deallocate(lstelt) ! temporary array for cells selection
deallocate(w1, w2, w3, w4)