programmer's documentation
Variables
Module for definition of general parameters

Variables

integer nscamx
 maximum number of scalars solutions of an advection equation, apart from the variables of the turbulence model $ (k, \varepsilon, R_{ij}, \omega, \varphi, \overline{f}, \alpha, \nu_t$) , that is to say the temperature and other scalars (passive or not, user-defined or not) More...
 
integer nvarmx
 maximal number of variables = nscamx + 12 (u,v,w,P,Rij,e,alp) More...
 
integer npromx
 maximal number of physical properties at cells. = nscamx (Lambda) + 100 (margin for most specific physics) More...
 
integer ngrdmx
 maximal number of physical quantities = nvarmx + npromx More...
 
integer nsmamx
 maximal size of mass source terms arrays. (= nvarmx + 1 for smacel) More...
 
integer nvppmx
 number of displayed variables. = ngrdmx + 20 (20 > dt, tpucou, increased by 16 ...) More...
 
integer ntypmx
 Maximal possible boundary condition types. More...
 
integer iindef
 
integer ientre
 
integer isolib
 
integer isymet
 
integer iparoi
 
integer iparug
 
integer iesicf
 if itypfb=iesicf: imposed inlet/outlet for compressible flow (for example, supersonic inlet). More...
 
integer isspcf
 if itypfb=isspcf: supersonic outlet for compressible flow. More...
 
integer isopcf
 if itypfb=isopcf: mixed outlet for compressible flow with a given pressure. More...
 
integer iephcf
 if itypfb=iephcf: mixed inlet for compressible flow with given total pressure and total enthalpy (reservoir boundary conditions). More...
 
integer ieqhcf
 
integer icscpl
 
integer ifrent
 
integer ifresf
 
integer i_convective_inlet
 
integer nestmx
 maximal number of valuators for Navier-Stokes More...
 
integer iespre
 Error estimator for Navier-Stokes. iest = iespre: prediction, (default name: EsPre). After the velocity prediction step (yielding $\vect{u}^*$), the estimator $\eta^{\,pred}_{\,i,k}(\vect{u}^*)$, local variable calculated at every cell $ \Omega_i $, is created from $\vect{\mathcal R}^{\,pred}(\vect{u}^*)$, which represents the residual of the equation solved during this step: $\vect{u}$ and $ P $:

\begin{eqnarray*} \vect{\mathcal R}^{\,pred}(\vect{u}^*) & = & \rho^n \dfrac{\vect{u}^*-\vect{u}^n}{\Delta t} + \rho^n \vect{u}^n \cdot \gradt (\vect{u}^*) - \divv \left((\mu+\mu_t)^n \gradt (\vect{u}^*) \right) + \grad(P^n) \\ & - & \text{rest of the right-hand member } (\vect{u}^n, P^n, \text{other variables}^n) \end{eqnarray*}

. More...

 
integer iesder
 Error estimator for Navier-Stokes. iest = iesder: drift (default name: EsDer). The estimator $\eta^{\,der}_{\,i,k}(\vect{u}^{\,n+1})$ is based on the following quantity (intrinsic to the code):

\begin{eqnarray*} \eta^{\,der}_{\,i,k}(\vect{u}^{\,n+1}) &=& {|\Omega_i|}^{(k-2)/2} || \divs (\text{corrected mass flow after the pressure step}) - \Gamma||_{{L}^{2}(\Omega_i)} \\ &=& {|\Omega_i|}^{(1-k)/2} | \divs (\text{corrected mass flow after the pressure step})- \Gamma| \end{eqnarray*}

. More...

 
integer iescor
 Error estimator for Navier-Stokes. iest = iescor: correction, (default name: EsCor). The estimator $ \eta^{\,corr}_{\,i,k}(\vect{u}^{\,n+1})$ comes directly from the mass flow calculated with the updated velocity field:

\begin{eqnarray*} \eta^{\,corr}_{\,i,k}(\vect{u}^{\,n+1})= |\Omega_i|^{\,\delta_{\,2,k}}\ |div (\rho^n \vect{u}^{n+1}) - \Gamma| \end{eqnarray*}

. More...

 
integer iestot
 Error estimator for Navier-Stokes. iest = iestot: total, (default name: EsTot). The estimator $ \eta^{\,tot}_{\,i,k}(\vect{u}^{\,n+1})$, local variable calculated at every cell $\Omega_i$, is based on the quantity $\vect{\mathcal R}^{\,tot}(\vect{u}^{\,n+1})$, which represents the residual of the equation using the updated values of $\vect{u}$ and $P$:

\begin{eqnarray*} \vect{\mathcal R}^{\,pred}(\vect{u}^*) & = & \rho^n \dfrac{\vect{u}^*-\vect{u}^n}{\Delta t} + \rho^n \vect{u}^n \cdot \gradt (\vect{u}^*) - \divv \left((\mu+\mu_t)^n \gradt (\vect{u}^*) \right) + \grad(P^n) \\ & - & \text{rest of the right-hand member } (\vect{u}^n, P^n, \text{other variables}^n) \end{eqnarray*}

. More...

 
integer ibfixe
 
integer igliss
 
integer ivimpo
 
integer nstrmx
 maximum number of structures in ALE More...
 

Detailed Description

Variable Documentation

integer i_convective_inlet

if itypfb=i_convective_inlet: inlet face where the total mass flux is prescribed.

  • Zero-flux condition for pressure and Dirichlet condition for all other variables. The value of the Dirichlet must be given in rcodcl(ifac,ivar,1) for every value of ivar, except for ivar = ipr. The other values of rcodcl and icodcl are filled automatically. The diffusive flux is CANCELLED (therefore the total mass flux is due to convection only).
integer ibfixe

boundary condition type for mesh velocity in ALE: fixed wall

integer icscpl
integer ientre

if itypfb=ientre: inlet face.

  • Zero-flux condition for pressure and Dirichlet condition for all other variables. The value of the Dirichlet must be given in rcodcl(ifac,ivar,1) for every value of ivar, except for ivar = ipr. The other values of rcodcl and icodcl are filled automatically.
integer iephcf

if itypfb=iephcf: mixed inlet for compressible flow with given total pressure and total enthalpy (reservoir boundary conditions).

  • Boundary values are obtained by solving a Riemann problem between an inner (values at boundary cells center) and an outer state.
  • Homogeneous Neumann boundary condition for the pressure (seen by the reconstruction gradients and the diffusion operator).
  • Dirichlet (icodcl=1) for velocity and total energy.
  • Analytical boundary convective fluxes of momentum and total energy are computed. Note that the pressure boundary value is needed to compute those two fluxes (seen by the pressure gradient of the momentum equation).
    • If the mass flow is coming in, Dirichlet condition for the scalars and the turbulent quantities is used (or zero-flux condition if no Dirichlet value has been specified).
  • If the mass flow is going out, zero-flux condition are set for the scalars and the turbulent quantities.
integer ieqhcf
integer iescor

Error estimator for Navier-Stokes. iest = iescor: correction, (default name: EsCor). The estimator $ \eta^{\,corr}_{\,i,k}(\vect{u}^{\,n+1})$ comes directly from the mass flow calculated with the updated velocity field:

\begin{eqnarray*} \eta^{\,corr}_{\,i,k}(\vect{u}^{\,n+1})= |\Omega_i|^{\,\delta_{\,2,k}}\ |div (\rho^n \vect{u}^{n+1}) - \Gamma| \end{eqnarray*}

.

  • The velocities $\vect{u}^{n+1}$ are taken at the cell centers, the divergence is calculated after projection on the faces. $ \,\delta_{\,2,k}$ represents the Kronecker symbol.
  • The first family, k=1, is the absolute raw value of the divergence of the mass flow The second family, $k=2$, represents a physical property and allows to evaluate the difference in $kg.s^{\,-1}$.
  • Ideally, it is equal to zero when the Poisson equation is solved exactly and the projection from the mass flux at the faces to the velocity at the cell centers is made in a set of functions with null divergence.
integer iesder

Error estimator for Navier-Stokes. iest = iesder: drift (default name: EsDer). The estimator $\eta^{\,der}_{\,i,k}(\vect{u}^{\,n+1})$ is based on the following quantity (intrinsic to the code):

\begin{eqnarray*} \eta^{\,der}_{\,i,k}(\vect{u}^{\,n+1}) &=& {|\Omega_i|}^{(k-2)/2} || \divs (\text{corrected mass flow after the pressure step}) - \Gamma||_{{L}^{2}(\Omega_i)} \\ &=& {|\Omega_i|}^{(1-k)/2} | \divs (\text{corrected mass flow after the pressure step})- \Gamma| \end{eqnarray*}

.

  • Ideally, it is equal to zero when the Poisson equation related to the pressure is solved exactly. minus the mass source term.
integer iesicf

if itypfb=iesicf: imposed inlet/outlet for compressible flow (for example, supersonic inlet).

  • A boundary value has to be given for the following quantities:
    • velocity
    • two of the four thermodynamical properties: density, pressure, total energy, temperature
    • all other variables.
  • Homogeneous Neumann boundary condition for the pressure (seen by the reconstruction gradients and the diffusion operator).
  • Dirichlet condition for the velocity and the total energy.
  • The boundary convective fluxes of momentum and total energy are computed from a Rusanov scheme for stability reasons. Note that the pressure boundary value is needed to compute those two fluxes (seen by the pressure gradient of the momentum equation).
  • If the mass flow is coming in, Dirichlet condition for the scalars and the turbulent quantities is used (or zero-flux condition if no Dirichlet value has been specified).
  • If the mass flow is going out, zero-flux condition are set for the scalars and the turbulent quantities.
integer iespre

Error estimator for Navier-Stokes. iest = iespre: prediction, (default name: EsPre). After the velocity prediction step (yielding $\vect{u}^*$), the estimator $\eta^{\,pred}_{\,i,k}(\vect{u}^*)$, local variable calculated at every cell $ \Omega_i $, is created from $\vect{\mathcal R}^{\,pred}(\vect{u}^*)$, which represents the residual of the equation solved during this step: $\vect{u}$ and $ P $:

\begin{eqnarray*} \vect{\mathcal R}^{\,pred}(\vect{u}^*) & = & \rho^n \dfrac{\vect{u}^*-\vect{u}^n}{\Delta t} + \rho^n \vect{u}^n \cdot \gradt (\vect{u}^*) - \divv \left((\mu+\mu_t)^n \gradt (\vect{u}^*) \right) + \grad(P^n) \\ & - & \text{rest of the right-hand member } (\vect{u}^n, P^n, \text{other variables}^n) \end{eqnarray*}

.

  • By definition: $ \eta^{\,pred}_{\,i,k}(\vect{u}^*)= {|\Omega_i|}^{\,(k-2)/2}\ ||\vect{\mathcal R}^{\,pred}(\vect{u}^*)|| _{{IL}^{2}(\Omega_i)} $
  • The first family, k=1, suppresses the volume $ |\Omega_i| $ which intrinsicly appears with the norm $ {IL}^{2}(\Omega_i) $.
  • The second family, k=2, exactly represents the norm $ {IL}^{2}(\Omega_i) $. The size of the cell therefore appears in its calculation and induces a weighting effect.
  • $ \eta^{\,pred}_{\,i,k}(\vect{u}^*)$ is ideally equal to zero when the reconstruction methods are perfect and the associated system is solved exactly.
integer iestot

Error estimator for Navier-Stokes. iest = iestot: total, (default name: EsTot). The estimator $ \eta^{\,tot}_{\,i,k}(\vect{u}^{\,n+1})$, local variable calculated at every cell $\Omega_i$, is based on the quantity $\vect{\mathcal R}^{\,tot}(\vect{u}^{\,n+1})$, which represents the residual of the equation using the updated values of $\vect{u}$ and $P$:

\begin{eqnarray*} \vect{\mathcal R}^{\,pred}(\vect{u}^*) & = & \rho^n \dfrac{\vect{u}^*-\vect{u}^n}{\Delta t} + \rho^n \vect{u}^n \cdot \gradt (\vect{u}^*) - \divv \left((\mu+\mu_t)^n \gradt (\vect{u}^*) \right) + \grad(P^n) \\ & - & \text{rest of the right-hand member } (\vect{u}^n, P^n, \text{other variables}^n) \end{eqnarray*}

.

  • By definition: $ \eta^{\,tot}_{\,i,k}(\vect{u}^{\,n+1})= {|\Omega_i|}^{\,(k-2)/2}\ ||\vect{\mathcal R}^{\,tot}(\vect{u}^{\,n+1})|| _{{I\hspace{-.25em}L}^{2}(\Omega_i)} $
  • The mass flux in the convective term is recalculated from $\vect{u}^{n+1}$ expressed at the cell centers (and not taken from the updated mass flow at the faces).
  • As for the prediction estimator:
    • The first family, k=1, suppresses the volume $ |\Omega_i| $ which intrinsicly appears with the norm $ {IL}^{2}(\Omega_i) $.
    • The second family, k=2, exactly represents the norm $ {IL}^{2}(\Omega_i) $. The size of the cell therefore appears in its calculation and induces a weighting effect.
integer ifrent

if itypfb=ifrent: free entrance based on Bernoulli equation when the flow is incoming, standard outlet when outgoing

integer ifresf

if itypfb=ifresf: free surface for mobile mesh boundary condition

  • Homogeneous Neumann boundary condition for velocity and total energy (seen by the reconstruction gradients and the diffusion operator).
  • Dirichlet (icodcl=1) for the pressure. Alse a boundary condition type for mesh velocity in ALE for modelling free surface ( $ \vect{u} \cdot \vect{S} = \vect{w} \cdot \vect{S} $).
integer igliss

boundary condition type for mesh velocity in ALE: sliding wall

integer iindef

pointer for undefined type face (non-standard case)

integer iparoi

if itypfb=iparoi: smooth solid wall face, impermeable and with friction.

integer iparug

if itypfb=iparug: rough solid wall face, impermeable and with friction.

integer isolib

if itypfb=isolib: free outlet face (or more precisely free inlet/outlet with forced pressure)

  • The pressure is always treated with a Dirichlet condition, calculated with the constraint $\displaystyle \frac{\partial }{\partial n}\left(\frac{ \partial P}{\partial \tau}\right)=0$. The pressure is set to $P_0$ at the first isolib face met. The pressure calibration is always done on a single face, even if there are several outlets.
  • if the mass flow is coming in, the velocity is set to zero and a Dirichlet condition for the scalars and the turbulent quantities is used (or zero-flux condition if no Dirichlet value has been specified).
  • if the mass flow is going out, zero-flux condition are set for the velocity, the scalars and the turbulent quantities.
  • Nothing is written in icodcl or rcodcl for the pressure or the velocity. An optional Dirichlet condition can be specified for the scalars and turbulent quantities.
    Remarks
    A standard isolib outlet face amounts to a Dirichlet condition (icodcl=1) for the pressure, a free outlet condition (icodcl=9) for the velocity and a Dirichlet condition (icodcl=1) if the user has specified a Dirichlet value or a zero-flux condition (icodcl=3) for the other variables.
integer isopcf

if itypfb=isopcf: mixed outlet for compressible flow with a given pressure.

  • Boundary values are obtained by solving a Riemann problem between an inner (values at boundary cells center) and an outer state. The given pressure is considered as an outer value.
  • Homogeneous Neumann boundary condition for the pressure (seen by the reconstruction gradients and the diffusion operator).
  • Dirichlet (icodcl=1) for the velocity and the total energy.
  • Analytical boundary convective fluxes of momentum and total energy are computed. Note that the pressure boundary value is needed to compute those two fluxes. (seen by the pressure gradient of the momentum equation).
  • If the mass flow is coming in, Dirichlet condition for the scalars and the turbulent quantities is used (or zero-flux condition if no Dirichlet value has been specified).
  • If the mass flow is going out, zero-flux condition are set for the scalars and the turbulent quantities.
integer isspcf

if itypfb=isspcf: supersonic outlet for compressible flow.

  • Nothing needs to be given. The imposed state at the boundary is the upstream state (values in boundary cells).
  • Homogeneous Neumann boundary condition for the pressure (seen by the reconstruction gradients and the diffusion operator).
  • Dirichlet (icodcl=1) for the velocity and the total energy. (pressure boundary value seen by the pressure gradient of the momentum equation).
  • If the mass flow is coming in, Dirichlet condition for the scalars and the turbulent quantities is used (or zero-flux condition if no Dirichlet value has been specified).
  • If the mass flow is going out, zero-flux condition are set for the scalars and the turbulent quantities.
integer isymet

if itypfb=isymet: symmetry face (or wall without friction).

integer ivimpo

boundary condition type for mesh velocity in ALE: imposed velocity.

  • In the case where all the nodes of a face have a imposed displacement, it is not necessary to fill the tables with boundary conditions mesh velocity for this face, they will be erased. In the other case, the value of the Dirichlet must be given in rcodcl(ifac,ivar,1) for every value of ivar (iuma, ivma and iwma). The other boxes of rcodcl and icodcl are completed automatically. The tangential mesh velocity is taken like a tape speed under the boundary conditions of wall for the fluid, except if wall fluid velocity was specified by the user in the interface or cs_user_boundary_conditions (in which case it is this speed which is considered).
integer nestmx

maximal number of valuators for Navier-Stokes

integer ngrdmx

maximal number of physical quantities = nvarmx + npromx

integer npromx

maximal number of physical properties at cells. = nscamx (Lambda) + 100 (margin for most specific physics)

integer nscamx

maximum number of scalars solutions of an advection equation, apart from the variables of the turbulence model $ (k, \varepsilon, R_{ij}, \omega, \varphi, \overline{f}, \alpha, \nu_t$) , that is to say the temperature and other scalars (passive or not, user-defined or not)

integer nsmamx

maximal size of mass source terms arrays. (= nvarmx + 1 for smacel)

integer nstrmx

maximum number of structures in ALE

integer ntypmx

Maximal possible boundary condition types.

integer nvarmx

maximal number of variables = nscamx + 12 (u,v,w,P,Rij,e,alp)

integer nvppmx

number of displayed variables. = ngrdmx + 20 (20 > dt, tpucou, increased by 16 ...)