My Project
programmer's documentation
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
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