My Project
programmer's documentation
Examples of volume exchange coefficient computation for SYRTHES coupling (usvosy.f90)

The usvosy subroutine is used to compute a volume exchange coefficient for SYRTHES coupling.

Examples

The following code blocks show two examples of computation of a volume exchange coefficient.

Arguments of usvosy

! Arguments
integer ncecpl
integer iscal , inbcou
integer lcecpl(ncecpl)
double precision dt(ncelet)
double precision hvol(ncecpl)

Variable declaration

! Local variables
integer iiscvr, iel, iloc, ifcvsl
double precision cp, mu, lambda, rho, uloc, L, sexcvo
double precision nu, re, pr
double precision hcorr, hvol_cst, lambda_over_cp
double precision, dimension(:), pointer :: cpro_rom
double precision, dimension(:,:), pointer :: cvar_vel
double precision, dimension(:), pointer :: cpro_viscl, cpro_viscls, cpro_cp

Initialization

The values of the different fields that will be needed for the computation of the volume exchange coefficient are retrieved.

!===============================================================================
! 1. Initialization
!===============================================================================
! Map field arrays
call field_get_val_v(ivarfl(iu), cvar_vel)
! Cell properties
call field_get_val_s(icrom, cpro_rom)
call field_get_val_s(iviscl, cpro_viscl)
if (icp.ge.0) call field_get_val_s(icp, cpro_cp)
call field_get_key_int (ivarfl(isca(iscal)), kivisl, ifcvsl)
if (ifcvsl.ge.0) then
call field_get_val_s(ifcvsl, cpro_viscls)
else
cpro_viscls => null()
endif

Example 1

The first example corresponds to a constant volume exchange coefficient.

!===============================================================================
! 2. Example 1 of the computation of a volumic exchange coefficient
!
! hvol(iel) = cst
!
!===============================================================================
hvol_cst = 1.0d6
do iloc = 1, ncecpl ! Loop on coupled cells
hvol(iloc) = hvol_cst
enddo

Example 2

The second example corresponds to a variable volume exchange coefficient defined as follows :

\[ h_{vol} = h_{surf} S \]

with S is the surface area where exchanges take place by unit of volume and

\[ h_{surf} = \frac{Nu \lambda}{L} \]

!===============================================================================
! 2. Example 2 of the computation of a volumic exchange coefficient
!
! hvol(iel) = hsurf(iel) * exchange_surface_by_unit_vol
!
! with: hsurf = Nusselt * lambda / L
!
! lambda is the thermal conductivity coefficient
! L is a characteristic length
!
! Nusselt is computed by means of the Colburn correlation
!
! Nu = 0.023 * Re^(0.8) * Pr^(1/3)
!
! Re is the Reynolds number and Pr is the Prandtl number
!
!===============================================================================
sexcvo = 36.18d0 ! Surface area where exchanges take place by unit of volume
l = 0.03d0 ! Characteristic length
! No test on the coupling number (inbcou). We assume that the same
! treatment is applied to all volume couplings
do iloc = 1, ncecpl ! Loop on coupled cells
iel = lcecpl(iloc)
! Get cell properties of the current element
rho = cpro_rom(iel)
mu = cpro_viscl(iel)
if (icp.ge.0) then
cp = cpro_cp(iel)
else
cp = cp0
endif
if (ifcvsl.ge.0) then ! lambda/Cp is variable
if (iscacp(iscal).eq.1) then
lambda = cpro_viscls(iel)
lambda_over_cp = lambda/cp
else
lambda_over_cp = cpro_viscls(iel)
lambda = lambda_over_cp * cp
endif
else
if (iscacp(iscal).eq.1) then
lambda = visls0(iscal)
lambda_over_cp = lambda/cp
else
lambda_over_cp = visls0(iscal)
lambda = lambda_over_cp * cp
endif
endif
! Compute a local molecular Prandtl **(1/3)
pr = mu / lambda_over_cp
! Compute a local Reynolds number
uloc = sqrt(cvar_vel(1,iel)**2 + cvar_vel(2,iel)**2 + cvar_vel(3,iel)**2)
re = max(uloc*rho*l/mu, 1.d0) ! To avoid division by zero
! Compute Nusselt number thanks to Colburn correlation
nu = 0.023d0 * re**0.8d0 * pr**(1.d0/3.d0)
hcorr = nu * lambda / l
! Compute hvol
hvol(iloc) = hcorr * sexcvo
enddo
lambda
Definition: cs_field_pointer.h:112
rho
Definition: cs_field_pointer.h:103
cp
Definition: cs_field_pointer.h:106
mu
Definition: cs_field_pointer.h:109