These guidelines are based on the working folder located here.

Non-equilibrium flow modelling

The solver’s default behaviour is to use the two-temperature formulation with multiple vibro-electronic energy pools. In the thermophysicalProperties dictionary, two switches, downgradeToSingleTv and downgradeToSingleTemperature, can alter this behaviour to either produce a two-temperature solver with a single vibro-electronic energy pool or a single-temperature solver.


1) Thermal equilibrium

The single-temperature solver, hyFoam, is obtained with

    downgradeToSingleTv          no;
    downgradeToSingleTemperature yes;

There is a unique application, called hy2Foam, for both solvers: the use of hyFoam is more of a naming convention to clarify that the single-temperature model is adopted. All two-temperature-related object pointers are not allocated and the vibrational energy equation is not solved.

The command line to run hyFoam is thus identical to hy2Foam

hy2Foam > log.hyFoam 2>&1 &



2) Thermal non-equilibrium

As mentioned in the introduction, the non-equilibrium solver hy2Foam can take two forms: it can either solve the mixture vibro-electronic energy equation or multiple vibro-electronic energy equations. The choice of the former variant is highly recommended.

2.1 Single vibro-electronic energy pool

The thermophysicalProperties dictionary setup in this variant of hy2Foam is

    downgradeToSingleTv          yes;
    downgradeToSingleTemperature no;

The path to the non-equilibrium dictionary is also set in thermophysicalProperties

    twoTemperatureDictFile "<constant>/thermo2TModel";

and its default name is thermo2TModel. It is composed of one subdictionary, thermalRelaxationModels, for the selection of the energy transfer models, and various subdictionaries to store the models coefficients. The energy transfers that are allowed to take place are vibrational-translational (V—T) and heavy-particles — electrons (H—e). If the gas mixture is composed of neutral species only, then H—e energy transfer is automatically discarded. The subdictionary’s default implementation is as follows

thermalRelaxationModels
{
    VT
    {
        relaxationType        LandauTellerVT;
        model                 LeMANSMWP;
        fullCoeffsForm        on;
        overwriteDefault      on;
        speciesDependent      on;
        collidingPair         on;
    }
    
    he
    {
        relaxationType        AppletonBray;
    }
}

As is customary, the Landau-Teller equation is employed for V—T energy exchange and the V—T relaxation time is obtained using the Millikan & White semi-empirical formula, with or without Park’s correction. In the example above, the coefficients entering in the calculation of the V—T relaxation time are made colliding-pair specific and are read from one of the subsequent subdictionaries (since overwriteDefault is on). The meaning of the all entries in thermalRelaxationModels is given in the Table below

V—T energy exchange
Key Values Meaning
relaxationType LandauTellerVT  
noVTEnergyTransfer
name of the V—T energy transfer model
model LeMANSMWP  
MillikanWhite
if LandauTellerVT is chosen, whether to use Park's correction or not
fullCoeffsForm on  
off
whether to use the tabulated data or the Millikan and White formulas for _A_ and _B_
overwriteDefault on  
off
if fullCoeffsForm is on, whether to use the subdictionary values (MillikanWhite or Park) or the harcoded values
speciesDependent on  
off
if overwriteDefault is on, whether to use different coeffs for different species or coeffs common to all species
collidingPair on  
off
if speciesDependent is on, whether to use different coeffs for different colliding partners or not

The H—e energy transfer of Appleton & Bray (1963) does not require any input. It can be disabled using a relaxationType set to noHEEnergyTransfer.

2.2 Multiple vibro-electronic energy pools

>> Unavailable until further notice<<

In the current version of the code, this configuration has several limitations that are as follows

  • the gas mixture must be composed of neutral particles only
  • the electronic mode of all particles must be turned off (see A. §2.2)
  • the molecules must be planar

If the above conditions are fulfilled, then the thermophysicalProperties dictionary setup is

    downgradeToSingleTv          no;
    downgradeToSingleTemperature no;

In addition to the energy exchange processes described in §2.1, the thermalRelaxationModels subdictionary is complemented with vibrational-vibrational (V—V) and electron-vibrational (e—V) energy transfers and the thermalRelaxationModels takes the following form

thermalRelaxationModels
{
    VV
    {
        relaxationType        KnabVV;
        model                 Knab;
        overwriteDefault      on;
        speciesDependent      on;
        collidingPair         on;
    }
      
    eV
    {
        relaxationType        noeVEnergyTransfer; // not available yet
        model                 BourdonVervisch;
        overwriteDefault      off;
        speciesDependent      off;
    }
}

V—V energy transfer presented in Knab et al. (1992) is the unique V—V model implemented. Similarly to the V—T model, it can be made collision-pair specific by switching on the collidingPair key. V—V energy exchange can also be disabled by setting the relaxationType to noVVEnergyTransfer.

e—V energy transfer is not tested and should not be used.

In this variant of hy2Foam, species are grouped into several vibro-electronic energy pools. This is done in the hTCReactions#name dictionary by using the vibTempAssociativity() list. The elements’ order in vibTempAssociativity() is similar to the species() list and the integer value 0 is reserved to neutral molecules. For a 5-species air:

    species
    (
        N2
        O2
        NO
      //N2+
      //O2+
      //NO+
        N
        O
      //N+
      //O+
      //e-
    );

    vibTempAssociativity (0 0 0 1 2);

A value of 1 in 4th position means that the 4th species in the species() list, N, is grouped into the same vibro-electronic energy pool as the 1st molecule appearing in the list, here N2.



3) Mean free path and breakdown parameter

These two quantities are calculated according to the entries specified in the transportProperties/rarefiedParameters dictionary.

3.1 Mean free path

There are three mfpModel models available for the computation of the mean free path (mfp): maxwellian, hardSphere, and variableHardSphere.

You may want to compute the mfp at boundary patches only to speed-up the calculations: indeed, knowledge of the mfp at boundary patches is enough to use the Smoluchowski temperature jump boundary condition. To this aim, two switches (computeFieldAndBoundaries and computeMfpBoundaries) are implemented and the correct combination is shown below

rarefiedParameters
{
    computeFieldAndBoundaries      off;
    computeMfpBoundaries           on;
    
    mfpModel                       variableHardSphere;
    writeMfpSpecies                off;
    writeMfpMixture                on;  
}

NB: Always switch computeMfpBoundaries on when using the Smoluchowski temperature jump and the Maxwell velocity slip boundary conditions.

To compute the mfp in the entire domain, computeFieldAndBoundaries must be switched on. The species and mixture mfp can be printed using the writeMfpSpecies and writeMfpMixture switches.

3.2 Knudsen number

3.2.1 Overall Knudsen number

The overall Knudsen number, defined as the ratio of the local mean free path to the characteristic length of the problem (characteristicLength, in meters) can be computed and printed using the following settings

rarefiedParameters
{
    computeFieldAndBoundaries      on;
 
    characteristicLength           2.0;
    writeKn_overall                on;
}

 

3.2.2 Breakdown parameter: gradient-length Knudsen number

The gradient-length Knudsen number, KnGLL, serves as the breakdown parameter in hy2Foam. It is defined as the maximum of four gradient-length Knudsen numbers (called components) based on trans-rotational and vibro-electronic temperatures, density, and velocity. It can be printed using the following setup

rarefiedParameters
{
    computeFieldAndBoundaries      on;
 
    writeKnGLL                     on;
    writeKnGLL_components          off;   
}



4) Chemistry-vibration coupling

There are two chemistry-vibration models implemented but it is strongly recommended to use the Park TTv model.

4.1 Park TTv model

4.1.1 General settings

The subdictionary chemistryVibrationCoupling is added to the chemistryProperties dict and the use of the Park TTv model is illustrated below

chemistryVibrationCoupling
{
    model ParkTTv;
    
    ParkTTvCoeffs
    {
        exponentTtr         0.7;
        sourceTermModel     preferential;
        
        preferentialModel
        {
            factorType      constant;
            constantFactor  0.3;   
        }
    } 
}

Park's temperature, defined as $$T_{tr}^{\color{magenta}{\textrm{exponentTtr}}} * T_{ve}^{1 - \color{magenta}{\textrm{exponentTtr}}}$$ is utilised for dissociation reactions if need be and a value of 0.7 is usually employed for exponentTtr. In this example, the preferential model is retained (the other sourceTermModel being nonPreferential).

4.1.2 Reactions dictionary

A controlling temperature, controlT, is added to the hTCReactions#name dictionary. For example, Park’s temperature exponentTtr will be used for forward reaction rate calculations if controlT is defined as follows

controlT dissociation;

Other accepted values for controlT can be found in hTCReactionsEarth93.

4.2 Coupled vibration-dissociation-vibration (CVDV) model

The default settings of the CVDV model are as follows

chemistryVibrationCoupling
{
    model CVDV;
    
    CVDVCoeffs
    {
        reciprocalU     3;
        simpleHarmonicOscillatorVibCutOff
        {
            N2   34;
            O2   27;
            NO   28;
            N2+  34;
            O2+  27;
            NO+  28;
        }
    }
}

and there should be no need to edit them.