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
 
 
integer          ncecpl
integer          iscal  , inbcou
 
integer          lcecpl(ncecpl)
 
double precision dt(ncelet)
double precision hvol(ncecpl)
 
  
Variable declaration
 
 
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.
 
 
call field_get_val_v(ivarfl(iu), cvar_vel)
 
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.
 
 
hvol_cst = 1.0d6
 
do iloc = 1, ncecpl  
  hvol(iloc) = hvol_cst
enddo
 
  
Example 2
The second example corresponds to a variable volume exchange coefficient defined as follows :
with S is the surface area where exchanges take place by unit of volume and
 
 
sexcvo = 36.18d0  
l = 0.03d0        
 
 
do iloc = 1, ncecpl  
 
  iel = lcecpl(iloc)
 
  
 
 
  if (icp.ge.0) then
  else
  endif
 
  if (ifcvsl.ge.0) then 
    if (iscacp(iscal).eq.1) then
    else
      lambda_over_cp = cpro_viscls(iel)
    endif
  else
    if (iscacp(iscal).eq.1) then
    else
      lambda_over_cp = visls0(iscal)
    endif
  endif
 
  
 
 
  
 
  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) 
 
 
  
 
  nu = 0.023d0 * re**0.8d0 * pr**(1.d0/3.d0)
 
  
  hvol(iloc) = hcorr * sexcvo
 
enddo