GithubHelp home page GithubHelp logo

hystrath / hystrath Goto Github PK

View Code? Open in Web Editor NEW
212.0 32.0 108.0 977.01 MB

Hypersonic / Rarefied gas dynamics code developments (GPL-3.0)

Home Page: https://hystrath.github.io/

License: GNU General Public License v3.0

Shell 0.06% C 9.54% C++ 90.38% MATLAB 0.01%
cfd hypersonics openfoam aerospace supersonic combustion dsmc gas-dynamics solver hybrid

hystrath's Introduction

hyStrath

Hypersonic / Rarefied gas dynamics code developments under license GPL-3.0

The only platform to conjointly host open-source CFD and DSMC codes designed for atmospheric re-entry analysis

The Fleming release includes

  • hyFoam: a CFD solver for supersonic combusting flows
  • hy2Foam: a CFD solver for hypersonic reacting flows with MHD capabilities
  • dsmcFoam+: the direct simulation Monte Carlo (DSMC) code with all the latest features
  • pdFoam: a hybrid PIC-DSMC solver

Please visit the hyStrath website

hystrath's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hystrath's Issues

Reacting chemistry model for CO2-N2

Hello sir,
I want to know chemical reactions are included for N2-O2 (5 species) only in dsmcFoam+ or other reactions can also be done?

If yes, please assist me on how to use it?

Is changing the respective parameters/properties in chemReactDict and dsmcProperties (tutorial heatBath-5species) is sufficient to model other chemical reactions, including n number of species.

I am trying to do a simulation for Mars Pathfinder with chemical reactions ( This model consisted of
eight species (02,
N2, 0, N, NO, C, CO, and CO,)
while accounting for dissociation (40) and exchange
(14) reactions.)

Code compilation error

I was trying a complete reinstall of hyStrath using
git clone https://github.com/vincentcasseau/hyStrath.git

I get compilation errors that look as shown below

%install.sh
----- INSTALLATION -----
1 - CFD module
2 - DSMC module
3 - Hybrid PIC-DSMC module
4 - CFD-MHD module
5 - All modules

----- SYNCHRONISATION -----
11 - CFD module
12 - DSMC module
13 - Hybrid PIC-DSMC module
14 - CFD-MHD module
15 - All modules

Enter choice: 5
[>>>>>>>>>>>>>>>>>>>>] 100% installed CFD module
SUCCESS
./install.sh: line 226: wait: -n: invalid option
wait: usage: wait [id]
[>>>>>>>>>>>>>>>>>>>>] 100% installed DSMC module
FAIL: check logInstall-DSMC
./install.sh: line 228: wait: -n: invalid option
wait: usage: wait [id]
[>>>>>>>>>>>>>>>>>>>>] 100% installed hybrid PIC-DSMC module
FAIL: check logInstall-hybridPICDSMC
./install.sh: line 230: wait: -n: invalid option
wait: usage: wait [id]
[>>>>>>>>>>>>>>>>>>>>] 100% installed CFD-MHD module
SUCCESS

The end of log-DSMCFoam looks like

from macroscopicProperties/derived/combined/dsmcVolFieldsFromFields/dsmcVolFieldsFromFields.C:35:
macroscopicProperties/derived/combined/dsmcVolFieldsFromFields/dsmcVolFieldsFromFields.C:280:20: error: ‘
rhoNMean_’ was not declared in this scope
forAll(rhoNMean_, celli)
^
reinstall_OpenFoam_hyStrath/OpenFOAM-v1706/src/OpenFOAM/lnInclude/stdFoam.H:154:30: note: in definition of macro ‘forAll’
for (Foam::label i=0; i<(list).size(); ++i)
^~~~
macroscopicProperties/derived/combined/dsmcVolFieldsFromFields/dsmcVolFieldsFromFields.C:280:20: note: su
ggested alternative: ‘dsmcNMean_’
forAll(rhoNMean_, celli)
^
/reinstall_OpenFoam_hyStrath/OpenFOAM-v1706/src/OpenFOAM/lnInclude/s
tdFoam.H:154:30: note: in definition of macro ‘forAll’
for (Foam::label i=0; i<(list).size(); ++i)
^~~~
make: *** [Make/linux64GccDPInt32Opt/macroscopicProperties/derived/combined/dsmcVolFieldsFromFields/dsmcV
olFieldsFromFields.o] Error 1

Missing boundary conditions pdFoam

The 2d sheath tutorial for pdFoam requires a pdReflectiveParticleMembranePatch class. This is not included in the repository source code, so the tutorial cannot be run.

Error in initializing the dsmcFoam+ case

Hello,
I was recently trying to run the orion107kmNR tutorial case of dsmcFoam+ with a few modifications of my own. When I tried initializing the case using the command dsmcInitialize+, I faced this error. If anyone could help me with it, I would really appreciate any help.

Screenshot 2021-04-02 122303

refining Orion107kmNR example (dsmcFoam+)

What settings does one have to change to increase the near-surface resolution in the Orion107kmNR example?
I tried addLayer true; (from false)
and refinementSurfaces
orion
{
// Surface-wise min and max refinement level
level (2 2);//Apply 6-levels of refinement to satisfy y+ requirement.

but when I run snappyHexMesh with the increased level (2 2) instead of (1 1) it dumps core. It dumps core for all levels except the default (1 1) level.

Just changing addLayer to true without any other changes decreases the number of cells from 91K to 60K.

Integrated total wall heat flux

  • Only the convection part of the total wall heat flux is calculated and printed.
  • Add the diffusion wall heat flux and the breakdown of the different contributions (convection trans-rotational, convection vibro-electronic and diffusion) for the integrated total wall heat flux.

Load balancing

There are 2 dicts for load balancing in system/, one of which is useless.

In balanceParDict, the first two entries are copy-pasted from decomposeParDict.

numberOfSubdomains 4;

method          scotch;

weightField     dsmcNMean_mixture;

I propose to remove balanceParDict and move weightField to loadBalanceDict.

  • loadBalancingUntilTime: changing sign < to <=, i.e., last domain repartitioning can happen at t = loadBalancingUntilTime: 4a40ae8
  • removing balanceParDict and moving weightField to loadBalanceDict: 40ac293
  • updating test cases: c0e529a

How-tos DSMC Load balancing

Hy2Foam_blunt_cone

I have a similar geometry as given in blunted_cone tutorial.
Mesh check was fine. No errors generated.
But while running hy2Foam command I encountered errors attached.
P.S - The example file ran fine.

Build  : v1706
Arch   : "LSB;label=32;scalar=64"
Exec   : hy2Foam
Date   : May 27 2020
Time   : 15:55:42
Host   : "tanmay"
PID    : 3495
Case   : /home/tanmay/OpenFOAM/tanmay-v1706/run/bbj_0
nProcs : 1
sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
fileModificationChecking : Monitoring run-time modified files using timeStampMaster (fileModificationSkew 10)
allowSystemOperations : Allowing user-supplied system call operations

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time

Create mesh for time = 0

Creating reaction model

Selecting hTC model laminar2<rho2ChemistryHTC>
Selecting chemistry type 
{
    chemistrySolver Euler2Implicit;
    chemistryThermo rho2;
}

Selecting thermodynamics package 
{
    type            heRho2Thermo;
    mixture         reacting2Mixture;
    transport       powerLawEucken;
    thermo          decoupledEnergyModes;
    energy          sensible2InternalEnergy;
    equationOfState perfect2Gas;
    specie          advancedSpecie;
}

Selecting chemistry2Reader foam2ChemistryReader
chemistry2Model: Number of species = 1 and reactions = 0
    using integrated reaction rate

Reading thermophysical properties

Reading field U

Creating turbulence model

Selecting turbulence model type laminar
Selecting laminar stress model Stokes

Loading the transport mixing rule:	molar

Loading the rarefaction parameters library

Loading the multispecies transport model:	noSpeciesDiffusion

Loading the V-T relaxation time model:	LandauTellerVT

No finite volume options present

fluxScheme: Kurganov
Mean and max Courant Numbers = 0.014834 0.52198
forces forces:
    Not including porosity effects
forces forceCoeffs:
    Not including porosity effects
forceCoeffs forceCoeffs:
    Not including porosity effects

wallShearStress wallShearStress:
    processing wall patches: 
        cone


Starting time loop

Mean and max Courant Numbers = 0.0142088 0.499981
deltaT = 9.57854e-11
Time = 9.578544061e-11

diagonal:  Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0
diagonal:  Solving for rhoUx, Initial residual = 0, Final residual = 0, No Iterations 0
diagonal:  Solving for rhoUy, Initial residual = 0, Final residual = 0, No Iterations 0
diagonal:  Solving for rhoUz, Initial residual = 0, Final residual = 0, No Iterations 0
smoothSolver:  Solving for Ux, Initial residual = 0.000423107, Final residual = 1.91178e-09, No Iterations 2
smoothSolver:  Solving for Uy, Initial residual = 1, Final residual = 2.73226e-06, No Iterations 2
#0  Foam::error::printStack(Foam::Ostream&) at ??:?
#1  Foam::sigFpe::sigHandler(int) at ??:?
#2  ? in "/lib/x86_64-linux-gnu/libc.so.6"
#3  Foam::smoothSolver::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const at ??:?
#4  Foam::fvMatrix<Foam::Vector<double> >::solveSegregated(Foam::dictionary const&) at ??:?
#5  Foam::fvMatrix<Foam::Vector<double> >::solveSegregatedOrCoupled(Foam::dictionary const&) at ??:?
#6  Foam::fvMesh::solve(Foam::fvMatrix<Foam::Vector<double> >&, Foam::dictionary const&) const at ??:?
#7  ? at ??:?
#8  ? at ??:?
#9  ? at ??:?
#10  __libc_start_main in "/lib/x86_64-linux-gnu/libc.so.6"
#11  ? at ??:?
Floating point exception (core dumped)

Problem with resuming DSMC case

Hello,
I have a DSMC case which I am unable to resume running the case after I stop it once. The case was set up without any errors, right from meshing, initializing, decomposing to run the case in parallel, renumbering the mesh, and run the case itself using mpirun. The initial run was for a flow time of 0.28 seconds, where I stopped the case by modifying the controlDict file by changing the endTime to writeNow. When I resumed the case by calling the mpirun command again (not modifying anything within the processor folders), I faced an error of floating-point exception. This is an inconvenience as restarting the simulation from time = 0 renders the initial run data useless. I have also attached a log file showing the error. Any help with this would be really helpful.

Regards,
Jai
log.txt

Permissions issues with Docker image

I'm using the Docker image of OpenFOAM 1706 on Fedora 28. When I try to run the install script, I get an error: mkdir: cannot create directory '/opt/OpenFOAM/user-v1706': Permission denied. Is there a reason hyStrath has to be installed to $FOAM_INST_DIR instead of $FOAM_RUN or something similar?

ls -al /opt shows the following for the /opt/OpenFOAM directory:

drwxr-xr-x. 5 1027 1001 4096 Jul 1 2017 OpenFOAM

I previously edited the permissions of this directory to allow the script to write to it, but the installation failed to find most of the source files (even though I could verify that they did exist in the correct places). I deleted the Docker container and reinstalled it for a fresh start; I have completed every step at https://www.openfoam.com/download/install-binary-linux.php using the 1706 install and start scripts from sourceforge. I suspect this problem is related, but I want to be sure I'm going about the installation process correctly before putting in a bunch of effort to get it working and messing up the Docker container's permissions in the process.

dsmcFoam+: Absorbed parcels do not contribute to q and fD boundary fields

As already outlined in #43 I think that in the currently implementation absorbed parcels are completely ignored in the calculation of qBF and fDBF (boundary fields) because measurePropertiesAfterControl is never called when a parcel is absorbed.

Note, that this was also not the case before the referenced merge request, I just discovered it while working on it

Edit: Woops, I should maybe add the files in question: dsmcAbsorbingDiffuseWallPatch.C, specifically line 122 and the function absorbParticle in dsmcAbsorbingWallPatch.C lines 157-182.

electrical conductivity model in hy2mhdFoam - SpitzerHarm model

I am trying to use the SpitzerHarm conductivity model with mhdproperties file set as
mhd true;

mhdModel lowReMag;

collisionData Gupta1989D;//constant;

conductivityModel SpitzerHarm;//;//Bush;Boltzmann

//T0 12000;

//n 2;

//sigma0 1;//5100 for Bush

hallEffect true;

but I get as error as
Selector 2: Selecting mhdModel lowReMag
Selector 2 returning
Constructor 1 was used
conductivity model initialising.
Looking for conductivityModel name
Selecting conductivityModel SpitzerHarm
Creating SpitzerHarm conductivity model
conductivity model initialised.
[39]
[39]
[39] --> FOAM FATAL ERROR:
[39] Different dimensions for =
dimensions : [-1 -3 3 0 0 2 0] = [1 -1 -3 0 0 0 0]
[39]
[39]
[39] From function bool Foam::dimensionSet::operator=(const Foam::dimensionSet&) const
[39] in file dimensionSet/dimensionSet.C at line 171.
[39]
FOAM parallel run aborting

I tried the collision data model set to constant and Gupta89D with the same result. I also tried an option with Sigma0 = 1.0 but got the same error. Can a sample mhdproperties file be provided with the correct settings for the SpitzerHarm options?

hy2foam: command not found

bash-4.2$  ./Allclean
Cleaning case /home/tanmay/hyStrath/run/hyStrath/hy2Foam/bluntedCone
bash-4.2$  ./Allrun 
Running gmshToFoam on /home/tanmay/hyStrath/run/hyStrath/hy2Foam/bluntedCone
Running checkMesh on /home/tanmay/hyStrath/run/hyStrath/hy2Foam/bluntedCone
Running hy2Foam on /home/tanmay/hyStrath/run/hyStrath/hy2Foam/bluntedCone
./Allrun: line 13: hy2Foam: command not found
Running postProcess on /home/tanmay/hyStrath/run/hyStrath/hy2Foam/bluntedCone

I was working on hy2foam tutorial problem and encountered the issue mentioned above.
gsmshToFoam and checkMesh are working fine but it is unable to find hy2Foam.

I am new to ubuntu and unable to resolve the issue. Kindly help to get this through.

writeHeatFluxes

This entry in the transportProperties dictionary is useless - remove it.

Results folder for Orion test case

Following Issue #73:

  • if possible, adjust the tolerance (currently SMALL) on the minimum number of parcels per cell to avoid non-physical results when computing macroscopic fields
  • provide results folder for the Orion test case

5 species , 5 reactions Park 94 model.

Greetings Professor,

I have simulated non - equilibrium for RAMC-II configuration with 5 species and 5 reaction with hTCReactionsEarth93 model.

The non-equilibrium ran fine for the configuration, validated with existing literature. Then , i switched to thermal equilibrium. There the solution blew away.

I have changed to "downgradeToSingleTv - no;" and "downgradeToSingleTemperature yes;" That is the only change that i have made with respect to non-equilibrium flow simulation.

I am attaching the log. Kindly let me know if i have to make some more changes.
Thankyou!!

hyFoam.txt

Convection heat flux (vibro-electronic)

  • For the vibro-electronic part of the convection heat flux, species with a mass fraction of zero are contributing to total vibro-electronic convection heat flux. See: Tutorial hy2MhdFoam - NASA_MSL_forebody_NR-MHD.

  • Use the mixture thermal diffusivity and vibrational energy instead of their species counterparts.

Dimensions of Jp in pdFoam

Hi, I am learning to use pdFoam for one of my study. There is one thing I could not understand. The Jp as I check from code here is Current Density (A/m2).

//- particle current density field A/m^2
volVectorField Jp_;

However, in definition here

dimensionSet(0, 0, -2, 0, 0, 1, 0),

It looks like (A/s2) to me. Kindly clarify.

--
Tarang

Collision integral data

Issue reported by Alexey Ryakhovskiy, Ioffe Physical Technical Institute, Saint Petersburg, Russia.

The Gupta90O dataset available on hyStrath (constant/transportProperties) is not similar to the one found in NASA-RP-1232 (Gupta, Yos, Thompson, Lee: Aug. 1990).

This is a mistake when naming this dataset and it should have been called differently: Wright2005O.

Please make sure you are using the right coefficients and referencing the correct papers while I am fixing this issue.

The revised version will look as follows:

collisionData
{
    neutralNeutralInteractions
    { 
        // NASA-TM-101528 (Gupta, Yos, Thompson: Feb. 1989)
        // Document ID: 19890011822
        // A review of reaction rates and thermodynamic and transport 
        // properties for the 11-species air model for chemical and thermal
        // nonequilibrium calculations to 30000 K
        Gupta1989D
        {
            // Table VI
            Dbar
            {
                N2_N2   (0 0.0112 1.6182 -11.3091);
                N2_O2   (0 0.0465 0.9271 -8.1137);
                O2_O2   (0 0.0410 1.0023 -8.3597);
                N_N2    (0 0.0195 1.4880 -10.3654);
                N_O2    (0 0.0179 1.4848 -10.2810);
                N_N     (0 0.0033 1.5572 -11.1616);
                O_N2    (0 0.0140 1.5824 -10.8819);
                O_O2    (0 0.0226 1.3700 -9.6631);
                O_N     (0 -0.0048 1.9195 -11.9261);
                O_O     (0 0.0034 1.5572 -11.1729);
                NO_N2   (0 0.0291 1.2676 -9.6878);
                NO_O2   (0 0.0438 0.9647 -8.2380);
                NO_N    (0 0.0185 1.4882 -10.3301);
                NO_O    (0 0.0179 1.4848 -10.3155);
                NO_NO   (0 0.0364 1.1176 -8.9695);
                
                NO+_N2  (0 0 1.9 -13.3343);
                NO+_O2  (0 0 1.9001 -13.3677);
                NO+_N   (0 0 1.8999 -13.1254);
                NO+_O   (0 0 1.9 -13.1701);
                NO+_NO  (0 0.0047 15.5552 -11.3713);
                NO+_NO+ (-0.1251 3.5135 -29.7280 74.1550);
                e-_N2   (-0.1147 2.8945 -23.0085 65.9815);
                e-_O2   (-0.0241 0.3464 0.1136 -1.3848);  // T = 1000-9000 K
              //e-_O2   (-0.0029 0.0856 0.6655 -0.8205); // T = 9000-30,000 K
                e-_N    (0 0 1.5 -2.9987);
                e-_O    (0.0581 -1.5975 15.4508 -40.7370);
                e-_NO   (0.2202 -5.2261 42.0630 -106.0937);  // T = 1000-8000 K
              //e-_NO   (-0.2871 -8.3759 82.8802 -267.0227); // T = 8000-30,000 K
                e-_NO+  (-0.1251 3.5134 -29.7272 79.2610);
                e-_e-   (-0.1251 3.5136 -29.7290 79.6126);
                N+_N2   (0 0 1.9 -13.1144);
                N+_O2   (0 0 1.9 -13.1357);
                N+_N    (0 0.0033 1.5572 -11.1616);
                N+_O    (0 0 1.9 -13.0028);
                N+_NO   (0 0 1.8999 -13.1254);
                N+_NO+  (-0.1251 3.5135 -29.7285 74.3825);
                N+_e-   (-0.1251 3.5134 -29.7272 79.2611);
                N+_N+   (-0.1251 3.5134 -29.7274 74.5342);
                O+_N2   (0 0 1.9 -13.1578);
                O+_O2   (0 0 1.9 -13.1810);
                O+_N    (0 0 1.9 -13.0028);
                O+_O    (0 0.0034 1.5572 -11.1729);
                O+_NO   (0 0 1.9 -13.1701);
                O+_NO+  (-0.1251 3.5133 -29.7268 74.3330);
                O+_e-   (-0.1251 3.5134 -29.7274 79.2616);
                O+_N+   (-0.1251 3.5134 -29.7275 74.5023);
                O+_O+   (-0.1251 3.5134 -29.7277 74.4687);
                N2+_N2  (0 0 1.9 -13.3173);
                N2+_O2  (0 0 1.9 -13.3495);
                N2+_N   (0 0 1.9 -13.1144);
                N2+_O   (0 0 1.9 -13.1578);
                N2+_NO  (0 0 1.9 -13.3343);
                N2+_NO+ (-0.1251 3.5134 -29.7279 74.1721);
                N2+_e-  (-0.1251 3.5134 -29.7273 79.2613);
                N2+_N+  (-0.1251 3.5135 -29.7288 74.3947);
                N2+_O+  (-0.1251 3.5133 -29.7269 74.3453);
                N2+_N2+ (-0.1251 3.5135 -29.7282 74.1899);
                O2+_N2  (0 0 1.9 -13.3173);
                O2+_O2  (0 0 1.9 -13.3495);
                O2+_N   (0 0 1.9 -13.1144);
                O2+_O   (0 0 1.9 -13.1578);
                O2+_NO  (0 0 1.9 -13.3343);
                O2+_NO+ (-0.1251 3.5134 -29.7279 74.1721);
                O2+_e-  (-0.1251 3.5134 -29.7273 79.2613);
                O2+_N+  (-0.1251 3.5135 -29.7288 74.3947);
                O2+_O+  (-0.1251 3.5133 -29.7269 74.3453);
                O2+_N2+ (-0.1251 3.5135 -29.7282 74.1899);
                O2+_O2+ (-0.1251 3.5135 -29.7282 74.1899);
            }
        }
        
        // NASA-RP-1232 (Gupta, Yos, Thompson, Lee: Aug. 1990)
        // Document ID: 19900017748
        // A review of reaction rates and thermodynamic and transport 
        // properties of an 11-species air model for chemical and thermal
        // nonequilibrium calculations to 30000 K
        Gupta1990D
        {
            // Table VII
            Dbar
            {
                N2_N2   (0 0.0112 1.6182 -11.3091);
                N2_O2   (0 0.0465 0.9271 -8.1137);
                O2_O2   (0 0.0410 1.0023 -8.3597);
                N_N2    (0 0.0195 1.4880 -10.3654);
                N_O2    (0 0.0179 1.4848 -10.2810);
                N_N     (0 0.0033 1.5572 -11.1616);
                O_N2    (0 0.0140 1.5824 -10.8819);
                O_O2    (0 0.0226 1.3700 -9.6631);
                O_N     (0 -0.0048 1.9195 -11.9261);
                O_O     (0 0.0034 1.5572 -11.1729);
                NO_N2   (0 0.0291 1.2676 -9.6878);
                NO_O2   (0 0.0438 0.9647 -8.2380);
                NO_N    (0 0.0185 1.4882 -10.3301);
                NO_O    (0 0.0179 1.4848 -10.3155);
                NO_NO   (0 0.0364 1.1176 -8.9695);
                
                NO+_N2  (0 0 1.9000 -13.3343);
                NO+_O2  (0 0 1.9001 -13.3677);
                NO+_N   (0 0 1.8999 -13.1254);
                NO+_O   (0 0 1.9000 -13.1701);
                NO+_NO  (0 0.0047 15.5552 -11.3713);
                NO+_NO+ (0 0 3.5000 -30.3210);
                e-_N2   (-0.1147 2.8945 -23.0085 65.9815);
                e-_O2   (-0.0241 0.3464 0.1136 -1.3848);  // T = 1000-9000 K
              //e-_O2   (-0.0029 0.0856 0.6655 -0.8205); // T = 9000-30,000 K
                e-_N    (0 0 1.5000 -2.9987);
                e-_O    (0.0581 -1.5975 15.4508 -40.7370);
                e-_NO   (0.2202 -5.2261 42.0630 -106.0937);  // T = 1000-8000 K
              //e-_NO   (-0.2871 -8.3759 82.8802 -267.0227); // T = 8000-30,000 K
                e-_NO+  (0 0 3.5000 -25.2128);
                e-_e-   (0 0 3.5000 -24.8662);
                N+_N2   (0 0 1.9000 -13.1144);
                N+_O2   (0 0 1.9000 -13.1357);
                N+_N    (0 0.0033 1.5572 -11.1616);
                N+_O    (0 0 1.9000 -13.0028);
                N+_NO   (0 0 1.8999 -13.1254);
                N+_NO+  (0 0 3.5000 -30.0951);
                N+_e-   (0 0 3.5000 -25.2128);
                N+_N+   (0 0 3.5000 -29.9401);
                O+_N2   (0 0 1.9000 -13.1578);
                O+_O2   (0 0 1.9000 -13.1810);
                O+_N    (0 0 1.9000 -13.0028);
                O+_O    (0 0.0034 1.5572 -11.1729);
                O+_NO   (0 0 1.9000 -13.1701);
                O+_NO+  (0 0 3.5000 -30.1395);
                O+_e-   (0 0 3.5000 -25.2128);
                O+_N+   (0 0 3.5000 -29.9722);
                O+_O+   (0 0 3.5000 -30.0066);
                N2+_N2  (0 0 1.9000 -13.3173);
                N2+_O2  (0 0 1.9000 -13.3495);
                N2+_N   (0 0 1.9000 -13.1144);
                N2+_O   (0 0 1.9000 -13.1578);
                N2+_NO  (0 0 1.9000 -13.3343);
                N2+_NO+ (0 0 3.5000 -30.3036);
                N2+_e-  (0 0 3.5000 -25.2128);
                N2+_N+  (0 0 3.5000 -30.0839);
                N2+_O+  (0 0 3.5000 -30.1273);
                N2+_N2+ (0 0 3.5000 -30.2867);
                O2+_N2  (0 0 1.9 -13.3173);
                O2+_O2  (0 0 1.9 -13.3495);
                O2+_N   (0 0 1.9 -13.1144);
                O2+_O   (0 0 1.9 -13.1578);
                O2+_NO  (0 0 1.9 -13.3343);
                O2+_NO+ (0 0 3.5000 -30.3036);
                O2+_e-  (0 0 3.5000 -25.2128);
                O2+_N+  (0 0 3.5000 -30.0839);
                O2+_O+  (0 0 3.5000 -30.1273);
                O2+_N2+ (0 0 3.5000 -30.2867);
                O2+_O2+ (0 0 3.5000 -30.2867);
            }
        }
        
        // NASA-TM-101528 (Gupta, Yos, Thompson: Feb. 1989)
        // Document ID: 19890011822
        // A review of reaction rates and thermodynamic and transport 
        // properties for the 11-species air model for chemical and thermal
        // nonequilibrium calculations to 30000 K
        Gupta1989O
        {
            // Table VII
            Omega11
            {
                N2_N2   (0 -0.0112 -0.1182 4.8464);
                N2_O2   (0 -0.0465 0.5729 1.6185);
                O2_O2   (0 -0.0410 0.4977 1.8302);
                N2_N    (0 -0.0194 0.0119 4.1055);
                O2_N    (0 -0.0179 0.0152 3.9996);
                N_N     (0 -0.0033 -0.0572 5.0452);
                N2_O    (0 -0.0139 -0.0825 4.5785);
                O2_O    (0 -0.0226 0.1300 3.3363);
                N_O     (0 0.0048 -0.4195 5.7774);
                O_O     (0 -0.0034 -0.0572 4.9901);
                N2_NO   (0 -0.0291 0.2324 3.2082);
                O2_NO   (0 -0.0438 0.5352 1.7252);
                NO_N    (0 -0.0185 0.0118 4.0590);
                NO_O    (0 -0.0179 0.0152 3.9996);
                NO_NO   (0 -0.0364 0.3825 2.4718);
                
                NO+_N2	(0 0 -0.4000 6.8543);
                NO+_O2  (0 0 -0.4000 6.8543);
                NO+_N		(0 0 -0.4000 6.8543);
                NO+_O		(0 0 -0.4000 6.8543);
                NO+_NO  (0 -0.0047 -0.0551 4.8737);
                NO+_NO+	(0.1251 -3.5134 31.2277 -80.6515);
                e-_N2		(0.1147 -2.8945 24.5080 -67.3691);
                e-_O2   (0.0241 -0.3467 1.3887 -0.0110); // T = 1000-9000	K	
              //e-_O2		(0.0025 -0.0742 0.7235 -0.2116); // T = 9000-30000 K
                e-_N		(0 0 0 1.6094);
                e-_O    (0.0164 -0.2431 1.1231 -1.5561); // T = 1000-9000	K	
              //e-_O		(-0.2027 5.6428 -51.5646 155.6091); // T = 9000-30,000 K
                e-_NO   (-0.2202 5.2265 -40.5659 104.7126); // T = 1000-8000 K		
              //e-_NO		(-0.2871 8.3757 -81.3787 265.6292); // T = 8000-30,000 K
                e-_NO+	(0.1251 -3.5134 31.2277 -80.6515);
                e-_e-		(0.1251 -3.5134 31.2277 -80.6515);
                N+_N2		(0 0 -0.4000 6.8543);
                N+_O2		(0 0 -0.4000 6.8543);
                N+_N		(0 -0.0033 -0.0572 5.0452);
                N+_O		(0 0 -0.4000 6.8543);
                N+_NO		(0 0 -0.4000 6.8543);
                N+_NO+	(0.1251 -3.5134 31.2277 -80.6515);
                N+_e-		(0.1251 -3.5134 31.2277 -80.6515);
                N+_N+		(0.1251 -3.5134 31.2277 -80.6515);
                O+_N2		(0 0 -0.4000 6.8543);
                O+_O2		(0 0 -0.4000 6.8543);
                O+_N		(0 0 -0.4000 6.8543);
                O+_O		(0 -0.0034 -0.0572 4.9901);
                O+_NO		(0 0 -0.4000 6.8543);
                O+_NO+	(0.1251 -3.5134 31.2277 -80.6515);
                O+_e-		(0.1251 -3.5134 31.2277 -80.6515);
                O+_N+		(0.1251 -3.5134 31.2277 -80.6515);
                O+_O+		(0.1251 -3.5134 31.2277 -80.6515);
                N2+_N2	(0 0 -0.4000 6.8543);
                N2+_O2	(0 0 -0.4000 6.8543);
                N2+_N		(0 0 -0.4000 6.8543);
                N2+_O		(0 0 -0.4000 6.8543);
                N2+_NO	(0 0 -0.4000 6.8543);
                N2+_NO+	(0.1251 -3.5134 31.2277 -80.6515);
                N2+_e-	(0.1251 -3.5134 31.2277 -80.6515);
                N2+_N+	(0.125 -3.5134 31.2277 -80.6515);
                N2+_O+	(0.1251 -3.5134 31.2277 -80.6515);
                N2+_N2+	(0.1251 -3.5134 31.2277 -80.6515);
                O2+_N2	(0 0 -0.4000 6.8543);
                O2+_O2	(0 0 -0.4000 6.8543);
                O2+_N		(0 0 -0.4000 6.8543);
                O2+_O		(0 0 -0.4000 6.8543);
                O2+_NO	(0 0 -0.4000 6.8543);
                O2+_NO+	(0.1251 -3.5134 31.2277 -80.6515);
                O2+_e-	(0.1251 -3.5134 31.2277 -80.6515);
                O2+_N+	(0.1251 -3.5134 31.2277 -80.6515);
                O2+_O+	(0.1251 -3.5134 31.2277 -80.6515);
                O2+_N2+	(0.1251 -3.5134 31.2277 -80.6515);
                O2+_O2+	(0.1251 -3.5134 31.2277 -80.6515);
            }
        
            // Table VIII
            Omega22
            {
                N2_N2		(0 -0.0203 0.0683 4.0900);
                N2_O2		(0 -0.0558 0.7590 0.8955);
                O2_O2		(0 -0.0485 0.6475 1.2607);
                N2_N		(0 -0.0190 0.0239 4.1782);
                O2_N		(0 -0.0203 0.0730 3.8818);
                N_N		  (0 -0.0118 -0.0960 4.3252);
                N2_O		(0 -0.0169 -0.0143 4.4195);
                O2_O		(0 -0.0247 0.1783 3.2517);
                N_O		  (0 0.0065 -0.4467 6.0426);
                O_O		  (0 -0.0207 0.0780 3.5658);
                N2_NO		(0 -0.0385 0.4226 2.4507);
                O2_NO		(0 -0.0522 0.7045 1.0738);
                NO_N		(0 -0.0196 0.0478 4.0321);
                NO_O		(0 -0.0203 0.0730 3.8818);
                NO_NO		(0 -0.0453 0.5624 1.7669);
                NO+_N2	(0 0 -0.4000 6.7760);
                NO+_O2	(0 0 -0.4000 6.7760);
                NO+_N		(0 0 -0.4000 6.7760);
                NO+_O		(0 0 -0.4000 6.7760);
                NO+_NO	(0 0 -0.4000 6.7760);
                NO+_NO+	(0.1251 -3.5135 31.2281 -80.1163);
                e-_N2		(0.1147 -2.8945 24.5080 -67.3691);
                e-_O2		(0.0241 -0.3467 1.3887 -0.0110); // T = 1000-9000	K	
              //e-_O2		(0.0025 -0.0742 0.7235 -0.2116); // T = 9000-30000 K
                e-_N		(0 0 0 1.6094);
                e-_O		(0.0164 -0.2431 1.1231 -1.5561); // T = 1000-9000	K	
              //e-_O		(-0.2027 5.6428 -51.5646 155.6091); // T = 9000-30,000 K
                e-_NO		(-0.2202 5.2265 -40.5659 104.7126); // T = 1000-8000 K		
              //e-_NO		(-0.2871 8.3757 -81.3787 265.6292); // T = 8000-30,000 K
                e-_NO+	(0.1251 -3.5134 31.2274 -80.1684);
                e-_e-		(0.1251 -3.5134 31.2274 -80.1684);
                N+_N2		(0 0 -0.4000 6.7760);
                N+_O2		(0 0 -0.4000 6.7760);
                N+_N		(0 0 -0.4146 6.9078);
                N+_O		(0 0 -0.4000 6.7760);
                N+_NO		(0 0 -0.4000 6.7760);
                N+_NO+	(0.1251 -3.5135 31.2281 -80.1163);
                N+_e-		(0.1251 -3.5134 31.2274 -80.1684);
                N+_N+		(0.1251 -3.5135 31.2281 -80.1163);
                O+_N2		(0 0 -0.4000 6.7760);
                O+_O2		(0 0 -0.4000 6.7760);
                O+_N		(0 0 -0.4000 6.7760);
                O+_O		(0 0 -0.4235 6.7787);
                O+_NO		(0 0 -0.4000 6.7760);
                O+_NO+	(0.1251 -3.5135 31.2281 -80.1163);
                O+_e-		(0.1251 -3.5134 31.2274 -80.1684);
                O+_N+		(0.1251 -3.5135 31.2281 -80.1163);
                O+_O+		(0.1251 -3.5135 31.2281 -80.1163);
                N2+_N2	(0 0 -0.4000 6.7760);
                N2+_O2	(0 0 -0.4000 6.7760);
                N2+_N		(0 0 -0.4000 6.7760);
                N2+_O		(0 0 -0.4000 6.7760);
                N2+_NO	(0 0 -0.4000 6.7760);
                N2+_NO+	(0.1251 -3.5135 31.2281 -80.1163);
                N2+_e-	(0.1251 -3.5134 31.2274 -80.1684);
                N2+_N+	(0.125 -3.5135 31.2281 -80.1163);
                N2+_O+	(0.1251 -3.5135 31.2281 -80.1163);
                N2+_N2+	(0.1251 -3.5135 31.2281 -80.1163);
                O2+_N2	(0 0 -0.4000 6.7760);
                O2+_O2	(0 0 -0.4000 6.7760);
                O2+_N		(0 0 -0.4000 6.7760);
                O2+_O		(0 0 -0.4000 6.7760);
                O2+_NO	(0 0 -0.4000 6.7760);
                O2+_NO+	(0.1251 -3.5135 31.2281 -80.1163);
                O2+_e-	(0.1251 -3.5135 31.2281 -80.1163);
                O2+_N+	(0.1251 -3.5135 31.2281 -80.1163);
                O2+_O+	(0.1251 -3.5135 31.2281 -80.1163);
                O2+_N2+	(0.1251 -3.5135 31.2281 -80.1163);
                O2+_O2+	(0.1251 -3.5135 31.2281 -80.1163);
            }
        }
    
        // NASA-RP-1232 (Gupta, Yos, Thompson, Lee: Aug. 1990)
        // Document ID: 19900017748
        // A review of reaction rates and thermodynamic and transport 
        // properties of an 11-species air model for chemical and thermal
        // nonequilibrium calculations to 30000 K
        Gupta1990O
        {
            // Table VIII
            Omega11
            {
                N2_N2   (0 -0.0112 -0.1182 4.8464);
                N2_O2   (0 -0.0465 0.5729 1.6185);
                O2_O2   (0 -0.0410 0.4977 1.8302);
                N2_N    (0 -0.0194 0.0119 4.1055);
                O2_N    (0 -0.0179 0.0152 3.9996);
                N_N     (0 -0.0033 -0.0572 5.0452);
                N2_O    (0 -0.0139 -0.0825 4.5785);
                O2_O    (0 -0.0226 0.1300 3.3363);
                N_O     (0 0.0048 -0.4195 5.7774);
                O_O     (0 -0.0034 -0.0572 4.9901);
                N2_NO   (0 -0.0291 0.2324 3.2082);
                O2_NO   (0 -0.0438 0.5352 1.7252);
                NO_N    (0 -0.0185 0.0118 4.0590);
                NO_O    (0 -0.0179 0.0152 3.9996);
                NO_NO   (0 -0.0364 0.3825 2.4718);
                
                NO+_N2	(0 0 -0.4000 6.8543);
                NO+_O2  (0 0 -0.4000 6.8543);
                NO+_N		(0 0 -0.4000 6.8543);
                NO+_O		(0 0 -0.4000 6.8543);
                NO+_NO  (0 -0.0047 -0.0551 4.8737);
                NO+_NO+	(0 0 -2.0000 23.8237);
                e-_N2		(0.1147 -2.8945 24.5080 -67.3691);
                e-_O2   (0.0241 -0.3467 1.3887 -0.0110); // T = 1000-9000	K	
              //e-_O2		(0.0025 -0.0742 0.7235 -0.2116); // T = 9000-30000 K
                e-_N		(0 0 0 1.6094);
                e-_O    (0.0164 -0.2431 1.1231 -1.5561); // T = 1000-9000	K	
              //e-_O		(-0.2027 5.6428 -51.5646 155.6091); // T = 9000-30,000 K
                e-_NO   (-0.2202 5.2265 -40.5659 104.7126); // T = 1000-8000 K		
              //e-_NO		(-0.2871 8.3757 -81.3787 265.6292); // T = 8000-30,000 K
                e-_NO+	(0 0 -2.0000 23.8237);
                e-_e-		(0 0 -2.0000 23.8237);
                N+_N2		(0 0 -0.4000 6.8543);
                N+_O2		(0 0 -0.4000 6.8543);
                N+_N		(0 -0.0033 -0.0572 5.0452);
                N+_O		(0 0 -0.4000 6.8543);
                N+_NO		(0 0 -0.4000 6.8543);
                N+_NO+	(0 0 -2.0000 23.8237);
                N+_e-		(0 0 -2.0000 23.8237);
                N+_N+		(0 0 -2.0000 23.8237);
                O+_N2		(0 0 -0.4000 6.8543);
                O+_O2		(0 0 -0.4000 6.8543);
                O+_N		(0 0 -0.4000 6.8543);
                O+_O		(0 -0.0034 -0.0572 4.9901);
                O+_NO		(0 0 -0.4000 6.8543);
                O+_NO+	(0 0 -2.0000 23.8237);
                O+_e-		(0 0 -2.0000 23.8237);
                O+_N+		(0 0 -2.0000 23.8237);
                O+_O+		(0 0 -2.0000 23.8237);
                N2+_N2	(0 0 -0.4000 6.8543);
                N2+_O2	(0 0 -0.4000 6.8543);
                N2+_N		(0 0 -0.4000 6.8543);
                N2+_O		(0 0 -0.4000 6.8543);
                N2+_NO	(0 0 -0.4000 6.8543);
                N2+_NO+	(0 0 -2.0000 23.8237);
                N2+_e-	(0 0 -2.0000 23.8237);
                N2+_N+	(0 0 -2.0000 23.8237);
                N2+_O+	(0 0 -2.0000 23.8237);
                N2+_N2+	(0 0 -2.0000 23.8237);
                O2+_N2	(0 0 -0.4000 6.8543);
                O2+_O2	(0 0 -0.4000 6.8543);
                O2+_N		(0 0 -0.4000 6.8543);
                O2+_O		(0 0 -0.4000 6.8543);
                O2+_NO	(0 0 -0.4000 6.8543);
                O2+_NO+	(0 0 -2.0000 23.8237);
                O2+_e-	(0 0 -2.0000 23.8237);
                O2+_N+	(0 0 -2.0000 23.8237);
                O2+_O+	(0 0 -2.0000 23.8237);
                O2+_N2+	(0 0 -2.0000 23.8237);
                O2+_O2+	(0 0 -2.0000 23.8237);
            }
        
            // Table IX
            Omega22
            {
                N2_N2		(0 -0.0203 0.0683 4.0900);
                N2_O2		(0 -0.0558 0.7590 0.8955);
                O2_O2		(0 -0.0485 0.6475 1.2607);
                N2_N		(0 -0.0190 0.0239 4.1782);
                O2_N		(0 -0.0203 0.0730 3.8818);
                N_N		  (0 -0.0118 -0.0960 4.3252);
                N2_O		(0 -0.0169 -0.0143 4.4195);
                O2_O		(0 -0.0247 0.1783 3.2517);
                N_O		  (0 0.0065 -0.4467 6.0426);
                O_O		  (0 -0.0207 0.0780 3.5658);
                N2_NO		(0 -0.0385 0.4226 2.4507);
                O2_NO		(0 -0.0522 0.7045 1.0738);
                NO_N		(0 -0.0196 0.0478 4.0321);
                NO_O		(0 -0.0203 0.0730 3.8818);
                NO_NO		(0 -0.0453 0.5624 1.7669);
                NO+_N2	(0 0 -0.4000 6.7760);
                NO+_O2	(0 0 -0.4000 6.7760);
                NO+_N		(0 0 -0.4000 6.7760);
                NO+_O		(0 0 -0.4000 6.7760);
                NO+_NO	(0 0 -0.4000 6.7760);
                NO+_NO+	(0 0 -2.0000 24.3602);
                e-_N2		(0.1147 -2.8945 24.5080 -67.3691);
                e-_O2		(0.0241 -0.3467 1.3887 -0.0110); // T = 1000-9000	K	
              //e-_O2		(0.0025 -0.0742 0.7235 -0.2116); // T = 9000-30000 K
                e-_N		(0 0 0 1.6094);
                e-_O		(0.0164 -0.2431 1.1231 -1.5561); // T = 1000-9000	K	
              //e-_O		(-0.2027 5.6428 -51.5646 155.6091); // T = 9000-30,000 K
                e-_NO		(-0.2202 5.2265 -40.5659 104.7126); // T = 1000-8000 K		
              //e-_NO		(-0.2871 8.3757 -81.3787 265.6292); // T = 8000-30,000 K
                e-_NO+	(0 0 -2.0000 24.3602);
                e-_e-		(0 0 -2.0000 24.3602);
                N+_N2		(0 0 -0.4000 6.7760);
                N+_O2		(0 0 -0.4000 6.7760);
                N+_N		(0 0 -0.4146 6.9078);
                N+_O		(0 0 -0.4000 6.7760);
                N+_NO		(0 0 -0.4000 6.7760);
                N+_NO+	(0 0 -2.0000 24.3602);
                N+_e-		(0 0 -2.0000 24.3061);
                N+_N+		(0 0 -2.0000 24.3602);
                O+_N2		(0 0 -0.4000 6.7760);
                O+_O2		(0 0 -0.4000 6.7760);
                O+_N		(0 0 -0.4000 6.7760);
                O+_O		(0 0 -0.4235 6.7787);
                O+_NO		(0 0 -0.4000 6.7760);
                O+_NO+	(0 0 -2.0000 24.3602);
                O+_e-		(0 0 -2.0000 24.3061);
                O+_N+		(0 0 -2.0000 24.3602);
                O+_O+		(0 0 -2.0000 24.3602);
                N2+_N2	(0 0 -0.4000 6.7760);
                N2+_O2	(0 0 -0.4000 6.7760);
                N2+_N		(0 0 -0.4000 6.7760);
                N2+_O		(0 0 -0.4000 6.7760);
                N2+_NO	(0 0 -0.4000 6.7760);
                N2+_NO+	(0 0 -2.0000 24.3602);
                N2+_e-	(0 0 -2.0000 24.3061);
                N2+_N+	(0 0 -2.0000 24.3602);
                N2+_O+	(0 0 -2.0000 24.3602);
                N2+_N2+	(0 0 -2.0000 24.3602);
                O2+_N2	(0 0 -0.4000 6.7760);
                O2+_O2	(0 0 -0.4000 6.7760);
                O2+_N		(0 0 -0.4000 6.7760);
                O2+_O		(0 0 -0.4000 6.7760);
                O2+_NO	(0 0 -0.4000 6.7760);
                O2+_NO+	(0 0 -2.0000 24.3602);
                O2+_e-	(0 0 -2.0000 24.3061);
                O2+_N+	(0 0 -2.0000 24.3602);
                O2+_O+	(0 0 -2.0000 24.3602);
                O2+_N2+	(0 0 -2.0000 24.3602);
                O2+_O2+	(0 0 -2.0000 24.3602);
            }
        }
        
        // DOI: 102514/1.16713 (Wright, Bose, Palmer, Levin: Aug. 2005)
        // Recommended Collision Integrals for Transport Property Computations,
        // Part 1: Air Species
        //
        // As cited by:
        // AIAA 2007-605 (Hash et al.: Jan. 2007)
        // FIRE II Calculations for Hypersonic nonequilibrium Aerothermo-
        // dynamics Code verification: DPLR, LAURA, and US3D
        Wright2005O
        {
            // Hash et al. 2007, Table V
            Omega11
            {
                N2_N2   (-6.0614558e-03 1.2689102e-01 -1.0616948 8.0955466e02);
                N2_O2   (-3.7959091e-03 9.5708295e-02 -1.0070611 8.9392313e02);
                O2_O2   (-8.0682650e-04 1.6602480e-02 -3.1472774e-01 1.4116458e02);
                N2_N    (-1.0796249e-02 2.2656509e-01 -1.7910602 4.0455218e03);
                O2_N    (-1.1453028e-03 1.2654140e-02 -2.2435218e-01 7.7201588e01);
                N_N     (-9.6083779e-03 2.0938971e-01 -1.7386904 3.3587983e03);
                N2_O    (-2.7244269e-03 6.9587171e-02 -7.9538667e-01 4.0673730e02);
                O2_O    (-4.8405803e-03 1.0297688e-01 -9.6876576e-01 6.1629812e02);
                N_O     (-7.8147689e-03 1.6792705e-01 -1.4308628 1.6628859e03);
                O_O     (-6.4040535e-03 1.4629949e-01 -1.3892121 2.0903441e03);
                N2_NO   (-1.9295666e-03 2.7995735e-02 -3.1588514e-01 1.2880734e02);
                O2_NO   (-6.4433840e-04 8.5378580e-03 -2.3225102e-01 1.1371608e02);
                NO_N    (-1.5770918e-03 1.9578381e-02 -2.7873624e-01 9.9547944e01);
                NO_O    (-1.0885815e-03 1.1883688e-02 -2.1844909e-01 7.5512560e01);
                NO_NO   (0.0000000 -1.1056066e-02 -5.9216250e-02 7.2542367e01);
                
                N2_NO+  (0.0000000 9.1205839e-02 -1.8728231 2.4432020e05);
                O2_NO+  (-3.7822765e-03 1.7967016e-01 -2.5409098 1.1840435e06);
                N_NO+   (-1.9605234e-02 5.5570872e-01 -5.4285702 1.3574446e09);
                O_NO+   (-1.6409054e-02 4.6352852e-01 -4.5479735 7.4250671e07);
                NO_NO+  (-8.1158474e-03 2.1474280e-01 -2.0148450 6.2986385e04);
                e-_N2   (-1.0525124e-02 1.3498950e-01 1.2524805e-01 1.5066506e-01);
                e-_O2   (2.3527001e-02 -6.9632323e-01 6.8035475 1.8335509e-09);
                e-_N    (0.0000000 1.6554247e-01 -3.4986344 5.9268038e08);
                e-_O    (9.9865506e-03 -2.7407431e-01 2.6561032 4.3080676e-04);
                e-_NO   (1.0414818e-01 -2.8369126 2.5323135e01 7.7138358e-32);
                N2_N+   (-1.0687805e-02 2.4479697e-01 -2.3192863e00 1.0689229e05);
                O2_N+   (0.0000000e00 8.7745537e-02 -1.8347158e00 1.9830120e05);
                N_N+    (-4.0078980e-03 1.0327487e-01 -9.9473323e-01 2.8178290e03);
                O_N+    (-1.5767256e-02 3.5405830e-01 -3.0686783e00 4.6336779e05);
                NO_N+   (0.0000000e00 8.6531037e-02 -1.8117931e00 1.8621272e05);
                N2_O+   (1.0352091e-02 -1.5733723e-01 2.9326150e-02 2.1003616e03);
                O2_O+   (0.0000000e00 9.3559978e-02 -1.9842999e00 4.3097490e05);
                N_O+    (-2.4288224e-02 5.6305072e-01 -4.6849679e00 2.7303024e07);
                O_O+    (-3.8347988e-03 9.9930498e-02 -9.6288891e-01 1.9669897e03);
                NO_O+   (8.3856973e-03 -1.0972656e-01 -3.3896281e-01 5.2004690e03);
                N2_N2+  (-2.9123716e-03 9.6850678e-02 -1.1416540e00 7.9252169e03);
                O2_N2+  (-4.0893007e-03 1.7795266e-01 -2.3800543e00 5.1949298e05);
                N_N2+   (-1.4501284e-02 4.1085338e-01 -4.0115094e00 1.5735451e07);
                O_N2+   (-1.6923472e-02 4.6067692e-01 -4.3294966e00 2.5538927e07);
                NO_N2+  (-9.2292933e-03 2.9813226e-01 -3.2899475e00 4.9147046e06);
                N2_O2+  (1.2405624e-02 -2.0452111e-01 3.5478475e-01 1.0778357e03);
                O2_O2+  (-8.9520932e-03 2.2749642e-01 -2.0758341e00 6.7674419e04);
                N_O2+   (0.0000000e00 8.3065769e-02 -1.7501512e00 1.0846799e05);
                O_O2+   (-2.9417970e-03 1.5129273e-01 -2.2497964e00 2.9325215e05);
                NO_O2+  (1.3731123e-02 -2.3920299e-01 6.7093226e-01 4.0068731e02);
            }
        
            // Hash et al. 2007, Table VI
            Omega22
            {
                N2_N2   (-7.6303990e-03 1.6878089e-01 -1.4004234e00 2.1427708e03);
                N2_O2   (-8.0457321e-03 1.9228905e-01 -1.7102854e00 5.2213857e03);
                O2_O2   (-6.2931612e-03 1.4624645e-01 -1.3006927e00 1.8066892e03);
                N2_N    (-8.3493693e-03 1.7808911e-01 -1.4466155e00 1.9324210e03);
                O2_N    (-1.0608832e-03 1.1782595e-02 -2.1246301e-01 8.4561598e01);
                N_N     (-7.7439615e-03 1.7129007e-01 -1.4809088e00 2.1284951e03);
                N2_O    (-8.3110691e-03 1.9617877e-01 -1.7205427e00 4.0812829e03);
                O2_O    (-3.7969686e-03 7.6789981e-02 -7.3056809e-01 3.3958171e02);
                N_O     (-5.0478143e-03 1.0236186e-01 -9.0058935e-01 4.4472565e02);
                O_O     (-4.2451096e-03 9.6820337e-02 -9.9770795e-01 8.3320644e02);
                N2_NO   (-6.8237776e-03 1.4360616e-01 -1.1922240e00 1.2433086e03);
                O2_NO   (-6.8508672e-03 1.5524564e-01 -1.3479583e00 2.0037890e03);
                NO_N    (-1.4719259e-03 1.8446968e-02 -2.6460411e-01 1.0911124e02);
                NO_O    (-1.0066279e-03 1.1029264e-02 -2.0671266e-01 8.2644384e01);
                NO_NO   (-7.4942466e-03 1.6626193e-01 -1.4107027e00 2.3097604e03);
                
                N2_NO+  (0.0000000e00 8.5112236e-02 -1.7460044e00 1.4498969e05);
                O2_NO+  (0.0000000e00 8.4737359e-02 -1.7290488e00 1.2485194e05);
                N_NO+   (-2.1009546e-02 5.8910426e-01 -5.6681361e00 2.4486594e09);
                O_NO+   (-1.5315132e-02 4.3541627e-01 -4.2864279e00 3.5125207e07);
                NO_NO+  (1.1055777e-02 -1.6621846e-01 1.4372166e-01 1.3182061e03);
                e-_N2   (-4.2254948e-03 -5.2965163e-02 1.9157708e00 6.3263309e-04);
                e-_O2   (9.6744867e-03 -3.3759583e-01 3.7952121e00 6.8468036e-06);
                e-_N    (-1.0903638e-01 2.8678381e00 -2.5297550e01 3.4838798e33);
                e-_O    (-1.7924100e-02 4.0402656e-01 -2.6712374e00 4.1447669e02);
                e-_NO   (0.0000000e00 5.4444485e-02 -1.2854128e00 1.3857556e04);
                N2_N+   (-7.0776069e-03 1.7917938e-01 -1.9102410e00 4.6736263e04);
                O2_N+   (9.8019578e-03 -1.4699425e-01 3.9382460e-02 1.5112165e03);
                N_N+    (-1.4271306e-02 3.0401993e-01 -2.4573879e00 5.3694705e04);
                O_N+    (-1.7907392e-02 4.1207892e-01 -3.5343610e00 1.4987678e06);
                NO_N+   (1.1716366e-02 -1.9289789e-01 4.0269474e-01 6.0891590e02);
                N2_O+   (1.8733000e-02 -3.6163781e-01 1.6947101e00 2.5244859e01);
                O2_O+   (1.4207970e-02 -2.4736726e-01 7.4561859e-01 3.2519188e02);
                N_O+    (-2.1681211e-02 5.2300453e-01 -4.5118623e00 2.3467766e07);
                O_O+    (-1.6032919e-02 3.7114396e-01 -3.2050078e00 5.8099314e05);
                NO_O+   (1.8015337e-02 -3.4415293e-01 1.5658151e00 3.3303758e01);
                N2_N2+  (-1.6447237e-02 4.7759522e-01 -4.7641986e00 2.9127542e08);
                O2_N2+  (-4.9176811e-03 1.9694738e-01 -2.5025540e00 6.8213629e05);
                N_N2+   (-1.2882395e-02 3.7306469e-01 -3.7106760e00 7.5444981e06);
                O_N2+   (-1.7420606e-02 4.7126950e-01 -4.3841087e00 2.8275095e07);
                NO_N2+  (-4.0133981e-03 1.7290664e-01 -2.2855449e00 3.6429320e05);
                N2_O2+  (2.2455421e-02 -4.5106797e-01 2.3763420e00 4.7754696e00);
                O2_O2+  (2.8664463e-02 -5.8087240e-01 3.2564558e00 6.6890428e-01);
                N_O2+   (1.1205000e-02 -1.8182149e-01 3.2624972e-01 5.5186183e02);
                O_O2+   (0.0000000e00 8.3446262e-02 -1.7191179e00 8.0539928e04);
                NO_O2+  (2.2679271e-02 -4.5710920e-01 2.4427275e00 3.6733514e00);
            }
        }
    }
  
    // TODO, REFERENCE TO BE ADDED
    shieldedCoulombPotential
    {
        // TODO, TABLE NUMBER TO BE ADDED
        Omega11
        {
            attractive
            {
                Cn  -0.476;
                cn  0.0313;
                Dn  0.784;
            }
            repulsive
            {
                Cn  0.138;
                cn  0.0106; 
                Dn  0.765;
            }
        } 
      
        // TODO, TABLE NUMBER TO BE ADDED
        Omega22
        {
            attractive
            {
                Cn  -0.146;
                cn  0.0377;
                Dn  1.262;
            }
            repulsive
            {
                Cn  0.157;
                cn  0.0274; 
                Dn  1.235;
            }    
        } 
    }      
}

Equilibrium constant calculation

Hello Vincent,

I first posted this question on:
https://www.cfd-online.com/Forums/openfoam-news-announcements-other/184650-hypersonic-supersonic-flow-solvers-2.html#post786755

First of all I would like to say that I like your work very much. I have written a similar solver but in a very light and immature version (compared to your project). My programming skills are unfortunately quite moderate. My solver is based on sonicFoam instead of rhoCentralFoam, I wrote it based on foam-extend-4.0 and I use 3-temperature model for thermal non-equilibrium.

I am currently testing your hy2Foam solver. I have a question regarding chemistry:
As I have seen in the chemical mechanisms in the hy2Foam tutorials, you calculate the forward reaction rate constant (k_f) in m^3/(kmole * s). Then you calculate the equilibrium constant K_eq by using the curve-fit coefficients in order to calculate k_b. But the unit of k_b can vary depending on the reaction. For example, the backward constant remains in m^3/(kmole * s) for such reactions as NO + O = O2 + N (exchange reaction). This means that K_eq is in this case dimensionless. For reactions of type AB -> A + B (dissociation reaction), such as N2 + M = 2N + M, k_b is in m^6/(kmole^2 * s). In this case K_eq is no longer dimensionless and gets the following dimensions: m^3/(kmole * s). Since the Arrhenius coefficients are mostly (Gupta, Dunn and Kang Park ...) given in cm^3/(mole * s) or cm^6/(mole^2 * s), you have to multiply K_eq by 1000 for the reactions of the type AB -> A + B in order to convert K_eq from CGS units to MKS units.
My question is: where does it happen in the source code?
Or am I mistaken?

Thanks in advance.

Kind Regards

Alexander

Installation Error

Hi Vincent,

Thank you for sharing your great work. I'm a new user and having difficulties installing hyStrath on an ubuntu device (18:04). An error occurs in the followings and I'm not clear on the reason. Thank you very much in advance.

Kind regards,

"~/hyStrath/src/thermophysicalModels/strath/strathChemistryModel/functionObjects/specieReactionRates/specieReactionRates.C.

It states:
....
functionObjects/specieReactionRates/specieReactionRates.C:155:5: warning: there are no arguments to ‘file’ that depend on a template parameter, so a declaration of ‘file’ must be available [-fpermissive]
file() << nl << endl;
^~~~
functionObjects/specieReactionRates/specieReactionRates.C: In instantiation of ‘Foam::functionObjects::specieReactionRates::specieReactionRates(const Foam::word&, const Foam::Time&, const Foam::dictionary&) [with ChemistryModelType = Foam::rho2ChemistryModel]’:
/opt/openfoam7/src/OpenFOAM/lnInclude/functionObject.H:164:9: required from ‘static Foam::autoPtrFoam::functionObject Foam::functionObject::adddictionaryConstructorToTable::New(const Foam::word&, const Foam::Time&, const Foam::dictionary&) [with functionObjectType = Foam::functionObjects::specieReactionRatesFoam::rho2ChemistryModel]’
/opt/openfoam7/src/OpenFOAM/lnInclude/functionObject.H:164:9: required from ‘Foam::functionObject::adddictionaryConstructorToTable::adddictionaryConstructorToTable(const Foam::word&) [with functionObjectType = Foam::functionObjects::specieReactionRatesFoam::rho2ChemistryModel]’
functionObjects/specieReactionRates/specieReactionRates.C:178:5: required from here

functionObjects/specieReactionRates/specieReactionRates.C:79:5: error: no matching function for call to ‘Foam::functionObjects::writeFile::writeFile(const Foam::objectRegistry&, const Foam::word&, const Foam::word&, const Foam::dictionary&)’
)
^
In file included from /opt/openfoam7/src/finiteVolume/lnInclude/volRegion.H:70:0,
from functionObjects/specieReactionRates/specieReactionRates.H:48,
from functionObjects/specieReactionRates/specieReactionRates.C:26:
/opt/openfoam7/src/OpenFOAM/lnInclude/writeFile.H:82:9: note: candidate: Foam::functionObjects::writeFile::writeFile(const Foam::objectRegistry&, const Foam::word&)
writeFile
^~~~~~~~~
/opt/openfoam7/src/OpenFOAM/lnInclude/writeFile.H:82:9: note: candidate expects 2 arguments, 4 provided
functionObjects/specieReactionRates/specieReactionRates.C:81:25: error: ‘file’ was not declared in this scope
writeFileHeader(file());
~~~~^~
functionObjects/specieReactionRates/specieReactionRates.C:81:25: note: suggested alternative: ‘kill’
writeFileHeader(file());
~~~~^~
kill
functionObjects/specieReactionRates/specieReactionRates.C: In instantiation of ‘bool Foam::functionObjects::specieReactionRates::write() [with ChemistryModelType = Foam::rho2ChemistryModel]’:
functionObjects/specieReactionRates/specieReactionRates.C:184:1: required from here
functionObjects/specieReactionRates/specieReactionRates.C:125:23: error: ‘file’ was not declared in this scope
writeTime(file());
~~~~^~
....

Running hy2Foam with 5 neutral species and 19 reactions

I am trying to run hy2Foam with all file as as in the example case cylinderReactingMach20 but with the shocktube example. This case works fine with two species N2 and N and the associated reactions in hTCReactionsQK/thermoDEM (default setting for cylinderReactingMach20). When I try to run the same case with all the neutral species on all 19 reactions, the code crashes immediately (see part of output file). I have the 0/ directory set-up to include O2, O, NO species and include/initialConditions has Y_N2 = 0.77, Y_O2=0.23. Are there any other changes to be made?

===== part of output file
Selecting thermodynamics package
{
type heRho2Thermo;
mixture reacting2Mixture;
transport BlottnerEucken;
thermo decoupledEnergyModes;
energy sensible2InternalEnergy;
equationOfState perfect2Gas;
specie advancedSpecie;
}

Selecting chemistry2Reader foam2ChemistryReader
chemistry2Model: Number of species = 5 and reactions = 19
using integrated reaction rate
#0 Foam::error::printStack(Foam::Ostream&) at ??:?
#1 Foam::sigFpe::sigHandler(int) at ??:?
#2 ? in "/lib64/libc.so.6"
#3 ? at rho2ReactionThermos.C:?
#4 Foam::species::multiThermo<Foam::decoupledEnergyModesThermo<Foam::perfect2GasFoam::advancedSpecie >, Foam::sensible2InternalEnergy>::evels(double, double) const at ??:?
#5 Foam::Specie2Mixture<Foam::reacting2Mixture<Foam::BlottnerEuckenTransport<Foam::species::multiThermo<Foam::decoupledEnergyModesThermo<Foam::perfect2GasFoam::advancedSpecie >, Foam::sensible2InternalEnergy> > > >::HEvel(int, double, double) const at ??:?
#6 Foam::rho2ReactionThermo::initialiseLight() at ??:?
#7 Foam::rho2ReactionThermo::initialise2T_Light() at ??:?
#8 ? at ??:?
#9 ? at ??:?
#10 __libc_start_main in "/lib64/libc.so.6"
#11 ? at ??:?
Floating point exception (core dumped)

compilation issues

I am a retired engineer with an interest in hypersonic flows. I was trying to install hy2foam to play around with it a bit. Many thanks for having this resource available to the community.

I have installed OF6 (1706) and downloaded the hy2foam files
git clone https://github.com/vincentcasseau/hyStrath.git

and tried to compile it as

cd hyStrath
./install-all.sh 8 > log.install.hy2foam 2>&1 &

I use gcc/7.3.0 and openmpi/3.1.3

The first error I get is ...

wmake ./strathChemistryModel
wmakeLnIncludeAll: running wmakeLnInclude on dependent libraries:
wmakeLnInclude error: base directory /basepath/src/thermophysicalModels/chemistrySolver/ does not exist

Indeed
ls /basepath/src/thermophysicalModels/

shows chemistryModel (not chemistrySolver)
-rwxrwx---+ 1 641 Nov 14 16:41 Allwmake
drwxrwx---+ 13 512 Nov 14 17:05 specie
drwxrwx---+ 7 512 Nov 14 17:05 solidSpecie
drwxrwx---+ 9 512 Nov 14 17:05 thermophysicalProperties
drwxrwx---+ 11 512 Nov 14 17:05 basic
drwxrwx---+ 11 32768 Nov 14 17:06 reactionThermo
drwxrwx---+ 9 512 Nov 14 17:07 laminarFlameSpeed
drwxrwx---+ 7 512 Nov 14 17:07 chemistryModel
drwxrwx---+ 8 512 Nov 14 17:09 barotropicCompressibilityModel
drwxrwx---+ 5 512 Nov 14 17:09 SLGThermo
drwxrwx---+ 6 512 Nov 14 17:09 solidThermo
drwxrwx---+ 8 512 Nov 14 17:09 solidChemistryModel
drwxrwx---+ 9 512 Nov 14 17:10 radiation

after modifying

$sendingDir/src/thermophysicalModels/strath/strathChemistryModel/Make/options to
-I$(LIB_SRC)/thermophysicalModels/chemistryModel/lnInclude \

the error goes away but I get another set of errors (see below).

Is there an error in my compilation procedure?

Thanks

Iain

functionObjects/specieReactionRates/specieReactionRates.C: In constructor ‘Foam::functionObjects::specieReactionRates::specieReactionRates(const Foam::word&, const Foam::Time&, const Foam::dictionary&)’:
functionObjects/specieReactionRates/specieReactionRates.C:81:21: error: there are no arguments to ‘file’ that depend on a templa
te parameter, so a declaration of ‘file’ must be available [-fpermissive]
writeFileHeader(file());
^~~~
functionObjects/specieReactionRates/specieReactionRates.C:81:21: note: (if you use ‘-fpermissive’, G++ will accept your code, bu
t allowing the use of an undeclared name is deprecated)
functionObjects/specieReactionRates/specieReactionRates.C: In member function ‘virtual bool Foam::functionObjects::specieReactio
nRates::write()’:
functionObjects/specieReactionRates/specieReactionRates.C:125:19: error: there are no arguments to ‘file’ that depend on a templ
ate parameter, so a declaration of ‘file’ must be available [-fpermissive]
writeTime(file());
^~~~
functionObjects/specieReactionRates/specieReactionRates.C:126:9: error: there are no arguments to ‘file’ that depend on a templa
te parameter, so a declaration of ‘file’ must be available [-fpermissive]
file() << token::TAB << ri;
^~~~
functionObjects/specieReactionRates/specieReactionRates.C:149:13: error: there are no arguments to ‘file’ that depend on a templ
ate parameter, so a declaration of ‘file’ must be available [-fpermissive]
file() << token::TAB << sumVRRi/V;
^~~~
functionObjects/specieReactionRates/specieReactionRates.C:152:9: error: there are no arguments to ‘file’ that depend on a templa
te parameter, so a declaration of ‘file’ must be available [-fpermissive]
file() << nl;
^~~~
functionObjects/specieReactionRates/specieReactionRates.C:155:5: error: there are no arguments to ‘file’ that depend on a templa
te parameter, so a declaration of ‘file’ must be available [-fpermissive]
file() << nl << endl;
^~~~
functionObjects/specieReactionRates/specieReactionRates.C: In instantiation of ‘Foam::functionObjects::specieReactionRates::specieReactionRates(const Foam::word&, const Foam::Time&, const Foam::dictionary&) [with ChemistryModelType = Fo
am::rho2ChemistryModel]’:
/lcrc/project/NE_SciDAC/shashi/gccOpenFoam6/OpenFOAM/OpenFOAM-6/src/OpenFOAM/lnInclude/functionObject.H:173:9: required from ‘
static Foam::autoPtrFoam::functionObject Foam::functionObject::adddictionaryConstructorToTable::New(const
Foam::word&, const Foam::Time&, const Foam::dictionary&) [with functionObjectType = Foam::functionObjects::specieReactionRates]’
/lcrc/project/NE_SciDAC/shashi/gccOpenFoam6/OpenFOAM/OpenFOAM-6/src/OpenFOAM/lnInclude/functionObject.H:173:9: required from ‘
Foam::functionObject::adddictionaryConstructorToTable::adddictionaryConstructorToTable(const Foam::word&) [w
ith functionObjectType = Foam::functionObjects::specieReactionRatesFoam::rho2ChemistryModel]’
functionObjects/specieReactionRates/specieReactionRates.C:178:5: required from here
functionObjects/specieReactionRates/specieReactionRates.C:79:5: error: no matching function for call to ‘Foam::functionObjects::
writeFile::writeFile(const Foam::objectRegistry&, const Foam::word&, const Foam::word&, const Foam::dictionary&)’
)
^
In file included from /lcrc/project/NE_SciDAC/shashi/gccOpenFoam6/OpenFOAM/OpenFOAM-6/src/finiteVolume/lnInclude/volRegion.H:70:
0,
from functionObjects/specieReactionRates/specieReactionRates.H:48,
from functionObjects/specieReactionRates/specieReactionRates.C:26:
/lcrc/project/NE_SciDAC/shashi/gccOpenFoam6/OpenFOAM/OpenFOAM-6/src/OpenFOAM/lnInclude/writeFile.H:93:9: note: candidate: Foam::
functionObjects::writeFile::writeFile(const Foam::objectRegistry&, const Foam::word&)
writeFile
^~~~~~~~~
/lcrc/project/NE_SciDAC/shashi/gccOpenFoam6/OpenFOAM/OpenFOAM-6/src/OpenFOAM/lnInclude/writeFile.H:93:9: note: candidate expec
ts 2 arguments, 4 provided
/lcrc/project/NE_SciDAC/shashi/gccOpenFoam6/OpenFOAM/OpenFOAM-6/src/OpenFOAM/lnInclude/writeFile.H:75:9: note: candidate: Foam::
functionObjects::writeFile::writeFile(const Foam::functionObjects::writeFile&)
writeFile(const writeFile&);
^~~~~~~~~
/lcrc/project/NE_SciDAC/shashi/gccOpenFoam6/OpenFOAM/OpenFOAM-6/src/OpenFOAM/lnInclude/writeFile.H:75:9: note: candidate expec
ts 1 argument, 4 provided
functionObjects/specieReactionRates/specieReactionRates.C:81:25: error: ‘file’ was not declared in this scope
writeFileHeader(file());
~~~~^~
functionObjects/specieReactionRates/specieReactionRates.C:81:25: note: suggested alternative: ‘kill’
writeFileHeader(file());
~~~~^~
kill
functionObjects/specieReactionRates/specieReactionRates.C: In instantiation of ‘bool Foam::functionObjects::specieReactionRates<
ChemistryModelType>::write() [with ChemistryModelType = Foam::rho2ChemistryModel]’:
functionObjects/specieReactionRates/specieReactionRates.C:184:1: required from here
functionObjects/specieReactionRates/specieReactionRates.C:125:23: error: ‘file’ was not declared in this scope
writeTime(file());
~~~~^~
functionObjects/specieReactionRates/specieReactionRates.C:125:23: note: suggested alternative: ‘kill’
writeTime(file());
~~~~^~
kill
functionObjects/specieReactionRates/specieReactionRates.C:155:9: error: ‘file’ was not declared in this scope
file() << nl << endl;
~~~~^~
functionObjects/specieReactionRates/specieReactionRates.C:155:9: note: suggested alternative: ‘kill’
file() << nl << endl;
~~~~^~
kill
make: *** [Make/linux64GccDPInt32Opt/functionObjects/specieReactionRates/specieReactionRates.o] Error 1
make: *** Waiting for unfinished jobs....

Compilation of the hyTwoFoam library on Ubuntu 20.04

On Ubuntu 20.04, using GCC-5 compiler, I am unable to get the hyTwoFoam library to compile. This is likely because the compiler picks up errors in the code that older versions included with previous versions of Ubuntu don't. For example, in the Reaction2I.H file, the first function must be removed for the compilation to continue. This error was also present in the OpenFOAM-v1706 base.

I also get these 4 errors that I haven't been able to solve yet:

n file included from fields/fvPatchFields/derived/rampInlet/rampInletFvPatchFields.H:29,
from fields/fvPatchFields/derived/rampInlet/rampInletFvPatchFields.C:26:
fields/fvPatchFields/derived/rampInlet/rampInletFvPatchField.H: In member function ‘Foam::scalar Foam::rampInletFvPatchField::amplitude() const’:
fields/fvPatchFields/derived/rampInlet/rampInletFvPatchField.H:216:24: error: cannot convert ‘const Foam::autoPtr<Foam::Function1 >’ to ‘Foam::scalar’ {aka ‘double’} in return
216 | return amplitude_;
| ^~~~~~~~~~
| |
| const Foam::autoPtr<Foam::Function1 >
fields/fvPatchFields/derived/rampInlet/rampInletFvPatchField.H: In member function ‘Foam::scalar& Foam::rampInletFvPatchField::amplitude()’:
fields/fvPatchFields/derived/rampInlet/rampInletFvPatchField.H:221:24: error: invalid initialization of reference of type ‘Foam::scalar&’ {aka ‘double&’} from expression of type ‘Foam::autoPtr<Foam::Function1 >’
221 | return amplitude_;
| ^~~~~~~~~~
fields/fvPatchFields/derived/rampInlet/rampInletFvPatchField.H: In member function ‘Foam::scalar Foam::rampInletFvPatchField::timeDuration() const’:
fields/fvPatchFields/derived/rampInlet/rampInletFvPatchField.H:227:24: error: cannot convert ‘const Foam::autoPtr<Foam::Function1 >’ to ‘Foam::scalar’ {aka ‘double’} in return
227 | return timeDuration_;
| ^~~~~~~~~~~~~
| |
| const Foam::autoPtr<Foam::Function1 >
fields/fvPatchFields/derived/rampInlet/rampInletFvPatchField.H: In member function ‘Foam::scalar& Foam::rampInletFvPatchField::timeDuration()’:
fields/fvPatchFields/derived/rampInlet/rampInletFvPatchField.H:232:24: error: invalid initialization of reference of type ‘Foam::scalar&’ {aka ‘double&’} from expression of type ‘Foam::autoPtr<Foam::Function1 >’
232 | return timeDuration_;

As I say, these are errors that older versions of the GCC compiler didn't pick up and so the code compiled.

electrical conductivity models in hy2mdhFoam - Boltzmann

When I try to use the Boltzmann model for hy2mhdFoam with the mhdproperties file set as

mhd true;

mhdModel lowReMag;

collisionData constant;

conductivityModel Boltzmann;

//T0 12000;

//n 2;

//sigma0 1;//5100 for Bush

hallEffect true;

I get an error as

Looking for conductivityModel name
Selecting conductivityModel Boltzmann
Creating Boltzmann conductivity model
conductivity model initialised.
Getting conductivity values from the model
max(nD_e-) [0 -3 0 0 0 0 0] 0
min(nD_e-) [0 -3 0 0 0 0 0] 0
Calculating electron velocity
max(ve) [0 1 -1 0 0 0 0] 116793.4692
Calculating Coulomb logarithm
Calculating number density of neutrals
max(nn) [0 -3 0 0 0 0 0] 3.76634194e+23
[17] [7]
[7]
[7] --> FOAM FATAL IO ERROR:
[7] keyword transportPropertiesFile is undefined in dictionary "IOstream"
[7]
[7] file: IOstream from line 0 to line 0.
[7]
[7] From function const Foam::entry& Foam::dictionary::lookupEntry(const Foam::word&, bool, bool) const
[7] in file db/dictionary/dictionary.C at line 551.
[7]
FOAM parallel run exiting

I tried using the collisionData as "GuptaD1989" as in my transportproperties file but that too gives the same error.
Can you provide the mhdproperties file for the Boltzmann option?

Reversible reaction

Issue with reversible reactions in hTCReactionsEarth93 (only)
Please use the irreversible reaction type for this chemDict until this is fixed.

install-DSMC compilation error

Running ./install-DSMC.sh gives the following errors
log.txt

:

1.)
/home/alexey/OpenFOAM/OpenFOAM-v1706/src/OpenFOAM/lnInclude/List.C:211:44: error: no matching function for call to ‘distance(int&, int&)’
List(begIter, endIter, std::distance(begIter, endIter))
...
2.)
/usr/include/c++/7/bits/stl_iterator_base_funcs.h:138:5: error: no type named ‘difference_type’ in ‘struct std::iterator_traits’
make: *** [Make/linux64GccDPInt64Opt/parcels/dsmcParcel.o] Error 1
[1]+ Exit 2

[dsmcFoam+] Axisymmetric weighting, patch / boundary values

Hi,
I have a question regarding the axisymmetric weighting in dsmcFoam+. More specifically my question is concerned with the way that the RWF is calculated during particle insertion via boundaries.

For example in dsmcFreeStreamInflowPatch the number of particles that are inserted on a given boundary face are calculated with cloud_.nParticles(patchI, faceI) (cf. l. 135ff.), which translates to dsmcAxisymmetric::nParticles(patchI, faceI) in case axisymmetric weighting is active. This in turn uses pRWF(patchI, faceI) to calculate the RWF on the patch face via recalculatepRWF(patchI, faceI). This finally reveals the algorithm as
1.0 + (maxRWF() - 1.0) * radius/radialExtent()
where radius = polar component of face center.
However, the particle(s) that is/are inserted into the geometry are created with RWF = cloud_.coordSystem().RWF(cellI) (cf. l. 351ff.). This is calculated via recalculateRWF(cellI) which uses the following algorithm
1.0 + (maxRWF() - 1.0) * radius/radialExtent()
where radius = polar component of cell center.
Therefore, for finite dimensioned cells both values will never be the same. I do not understand the reasoning behind this. From my current understanding the current behavior leads to a (very, very small) number / mass / momentum / energy difference (per particle). Therefore I would initialize the particles with the RWF on the boundary. This is also the case in the other boundaries that insert particles.

Probably my understanding is wrong or I have overlooked something, therefore I would really appreciate if you could elaborate on the reasoning behind the current implementation.

If the current behavior is indeed flawed I can prepare a patch.

Thanks in advance!
Best regards,
Tim

hi, vincent, have you met carbuncle problem?

how do you get rid of the carbuncle problem>
somebody says AUSM is free of carbuncle problem, but I find some paper says even AUSM scheme cannot get rid of the annoying problem, have you tried that?

Tutorial case crash

Hi Vincent,

The "cylinderReactingMach20" case crashes at Time = 1.0961947261e-06. I tried to run it with 4 processors with the commands below:

$ decomposePar
$ mpirun -np 4 hy2Foam -parallel > log.run

I didn't alter any major settings in system folder (e. g. Courant Number adaptation, scheme etc.). I only made the following changes in system/controlDict:

- purgeWrite       0;                //15;
- timeFormat       scientific;       //general;

Do you have any idea about this issue?

Thanks,

Onur Paça

P.S. The other tutorial cases ran just fine.

Edit: I attached the end of the log file below. I have no idea why those strange characters appear (could be a Windows thing?)

Mean and max Courant Numbers = 0.00044824 0.0999993
deltaT = 2.95131e-10
^[[1;33mTime = 1.0958995952e-06^[[0m

diagonal:  Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0
^[[1;32mcorrectSpeciesDiffusion 0.03 s^[[0m
^[[1;32mcorrectReactions        0.09 s^[[0m
DILUPBiCG:  Solving for N2, Initial residual = 0.0161543, Final residual = 3.32762e-13, No Iterations 2
DILUPBiCG:  Solving for N, Initial residual = 0.00137431, Final residual = 5.7077e-16, No Iterations 2
^[[1;32mcorrectTransport        0.08 s^[[0m
^[[1;34mYEqn time       0.29 s^[[0m
diagonal:  Solving for rhoUx, Initial residual = 0, Final residual = 0, No Iterations 0
diagonal:  Solving for rhoUy, Initial residual = 0, Final residual = 0, No Iterations 0
smoothSolver:  Solving for Ux, Initial residual = 3.0357e-06, Final residual = 2.01573e-08, No Iterations 4
smoothSolver:  Solving for Uy, Initial residual = 4.84973e-06, Final residual = 3.73157e-08, No Iterations 6
diagonal:  Solving for rhoE, Initial residual = 0, Final residual = 0, No Iterations 0
smoothSolver:  Solving for e, Initial residual = 1.20158e-06, Final residual = 1.08299e-09, No Iterations 12
^[[1;32mcorrectThermo   0.01 s^[[0m
^[[1;33mPhase no 1.0  ExecutionTime = 2537.92 s  ClockTime = 2742 s  Iteration no 3706 (0.63 s)^[[0m

Mean and max Courant Numbers = 0.000448242 0.0999993
deltaT = 2.95131e-10
^[[1;33mTime = 1.0961947261e-06^[[0m

diagonal:  Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0
^[[1;32mcorrectSpeciesDiffusion 0.02 s^[[0m
^[[1;32mcorrectReactions        0.09 s^[[0m
--------------------------------------------------------------------------
mpirun noticed that process rank 2 with PID 27448 on node brego exited on signal 8 (Floating point exception).
--------------------------------------------------------------------------
2 total processes killed (some possibly by mpirun during cleanup)

dsmcFoam+: Double free or corruption

To keep the issue tracker a bit more cleaned this is in reply to:

Vincent:
I was trying out the Orion107km example which runs to completion but then crashes as shown below.  The problem is that because of the crash, the job does not exit - the processes have to be manually killed.  I was running this example on 36 cores.
Finalising parallel run*** Error in dsmcFoam+': double free or corruption (!prev): 0x0000000002cfb0f0 ****** Error in dsmcFoam+': double free or corruption (!prev): 0x000000000349d5e0 ****** Error in dsmcFoam+': double free or corruption (!prev): 0x000000000314e280 ****** Error in dsmcFoam+': double free or corruption (!prev): 0x00000000037b3ef0 ***======= Backtrace: ================ Backtrace: =========/lib64/libc.so.6(+0x81299)[0x2b813bd98299]/lib64/libc.so.6(__cxa_finalize+0x9a)[0x2b813bd5105a]OpenFOAM/iain-v1706/platforms/linux64GccDPInt32Opt/lib/liblagrangian+.so(+0xbf23)[0x2b8138cdbf23]
I see a similar problem when running snappyhexMesh in the Allrun script ...After snappyHexMesh finishes I see the following again in liblagranian.so ...
Finished meshing without any errorsFinished meshing in = 10.31 s.End
*** Error in `snappyHexMesh': double free or corruption (fasttop): 0x0000000001bd3350 ***======= Backtrace: =========/lib64/libc.so.6(+0x81299)[0x2ba54dd4f299]/lib64/libc.so.6(__cxa_finalize+0x9a)[0x2ba54dd0805a]/home/user/OF/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/liblagrangian.so(+0x10853)[0x2ba54ffbd853]======= Memory map: ========

Originally posted by @iainsymthe in #67 (comment)

If this is a bug chances are high that I have introduced it last year. Ian, could you give me some input on whether you did a clean rebuild of the entire repository after the recent changes? From my experience the issue you describe occurs due to a "version mismatch" of the dsmcFoam+ solver / dmscInitialise+ utility and the lagrangian dsmc library.

I could not reproduce the issue with a clean rebuild.

Unable to run hy2Foam in parallel

Thanks for your help on the other problem with installation, @vincentcasseau .

I opened another issue because I believe this is a separate problem. When attempting to run hy2Foam in parallel with line 10 in hyStrath/hyFoam/laminarFlatPlateLTS changed to hy2Foam -np 4 -parallel > hyFoam.log, I still get an error about running in parallel on 1 core:

--> FOAM FATAL ERROR: 
bool IPstream::init(int& argc, char**& argv) : attempt to run parallel on 1 processor

    From function static bool Foam::UPstream::init(int&, char**&)
    in file UPstream.C at line 79.

FOAM aborting

#0  Foam::error::printStack(Foam::Ostream&) at ??:?
#1  Foam::error::abort() at ??:?
#2  Foam::UPstream::init(int&, char**&) at ??:?
#3  Foam::argList::argList(int&, char**&, bool, bool, bool) at ??:?
#4  ? at ??:?
#5  __libc_start_main in "/lib64/libc.so.6"
#6  ? at ??:?
[324a7ecb1de0:21638] *** Process received signal ***
[324a7ecb1de0:21638] Signal: Aborted (6)
[324a7ecb1de0:21638] Signal code:  (-6)
[324a7ecb1de0:21638] [ 0] /lib64/libc.so.6(+0x35250)[0x7f447e3c8250]
[324a7ecb1de0:21638] [ 1] /lib64/libc.so.6(gsignal+0x37)[0x7f447e3c81d7]
[324a7ecb1de0:21638] [ 2] /lib64/libc.so.6(abort+0x148)[0x7f447e3c98c8]
[324a7ecb1de0:21638] [ 3] /opt/OpenFOAM/OpenFOAM- v1706/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so(_ZN4Foam5error5abortEv+0x145) 
[0x7f447f452845]
[324a7ecb1de0:21638] [ 4] /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/openmpi-1.10.4/libPstream.so(_ZN4Foam8UPstream4initERiRPPc+0x1b8)[0x7f447e18a888]
[324a7ecb1de0:21638] [ 5] /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so(_ZN4Foam7argListC1ERiRPPcbbb+0x7cb)[0x7f447f47683b]
[324a7ecb1de0:21638] [ 6] hy2Foam[0x42e6aa]
[324a7ecb1de0:21638] [ 7] /lib64/libc.so.6(__libc_start_main+0xf5)[0x7f447e3b4b35]
[324a7ecb1de0:21638] [ 8] hy2Foam[0x430319]
[324a7ecb1de0:21638] *** End of error message ***
./Allrun: line 10: 21638 Aborted                 (core dumped) hy2Foam -np 4 -parallel > log.hyFoam

Sorry if this is a simple syntax error, I'm not very familiar with OpenFOAM. Is this an actual issue or am I just trying to run the solver incorrectly?

IO error with vibrationalEnergy

Dear Vincent,

When I turn on all the fields in constant/hTCProperties in mixtureOutputs section I get the following error while reconstructPar in parallel and foamToVTK in serial:

--> FOAM FATAL IO ERROR: 

Cannot find 'value' entry on patch outlet of field e in file "/home/opaca/hy2Foam_tutorial_run/hyStrath/rotorbit_tutorials/wedge_ver6/1.2000000000e-08/e"
which is required to set the values of the generic patch field.
(Actual type gradient2Energy)

Please add the 'value' entry to the write function of the user-defined boundary-condition
file: /home/opaca/hy2Foam_tutorial_run/hyStrath/rotorbit_tutorials/wedge_ver6/1.2000000000e-08/e.boundaryField.outlet from line 8557 to line 8558.

From function genericFvPatchField<Type>::genericFvPatchField(const fvPatch&, const Field<Type>&, const dictionary&)
in file genericFvPatchField/genericFvPatchField.C at line 71.
FOAM exiting

The reason I want to accomplish this is to map the solution from a coarse mesh to a finer mesh as initial condition, but to do this I need the Tv field in the solution file. So, I'm planning to use the e and zeta fields to get Tv. Do you have any recommendation to resolve this?

Thanks,
Onur

P.S This is a case that I generated based on the cylinderReactingMach20 case.

laminarFlatPlateLTS has multiple file naming issues

There are three file naming issues within the laminarFlatPlateLTS example:

  • The log file is named log.hyFoam, but the gnuplot scripts are looking for log.hyFoamLTS
  • The Alltest script looks for line_p_rho_Tt.xy (line 16), but the corresponding file in postProcessing/singleGraph/5e-05 is line_Tt_p_rho.xy. Changing the name in Alltest still results in the script failing because the corresponding file in gnuplot/solution/singleGraph/5e-05 is named line_p_rho_Tt.xy.
  • The Alltest script also looks for log.hy2Foam (line 60). When I change log.hy2Foam to log.hyFoam, I get an awk syntax error:
TEST FAILED: line_Tt_p_rho.xy, line 175
awk: cmd. line:1: /^Time =/,/^Time =/ {lastc = $0; next}{ if ( lastc != \"\") { print lastc; lastc = \"\"; } print }
awk: cmd. line:1:                                                       ^ backslash not last character on line
awk: cmd. line:1: /^Time =/,/^Time =/ {lastc = $0; next}{ if ( lastc != \"\") { print lastc; lastc = \"\"; } print }
awk: cmd. line:1:                                                       ^ syntax error
TEST FAILED: logIntegratedWallHeatFlux

installation

when running ./install.sh 8 2>/dev/null the terminal reports failed to install modules, is the installation only compatible with V17.06?

Expected a word but found on line 0 an error - hy2Foam with reacting nitrogen

Hi,

I'm trying to simulate a case with reacting nitrogen that dissociates and ionises. I was previously using hTCReactionsQK but I realised that it's not possible so I change to hTCReactionsDPLR.

Since it only involves nitrogen, I removed the others, leaving those involving N and e.

However, when I tried to run it, I got the error:

Create time

Create mesh for time = 0

Creating reaction model

Selecting hTC model laminar2<rho2ChemistryHTC>
Selecting chemistry type
{
    chemistrySolver Euler2Implicit;
    chemistryThermo rho2;
}

Selecting thermodynamics package
{
    type            heRho2Thermo;
    mixture         reacting2Mixture;
    transport       BlottnerEucken;
    thermo          decoupledEnergyModes;
    energy          sensible2InternalEnergy;
    equationOfState perfect2Gas;
    specie          advancedSpecie;
}

Selecting chemistry2Reader foam2ChemistryReader

--> FOAM FATAL IO ERROR:
Expected a word but found on line 0 an error

file: IStringStream.sourceFile at line 0.

    From function Reaction2<Reaction2Thermo>::lrhs(Istream& is)
    in file lnInclude/Reaction2.C at line 240.

FOAM exiting

I realised that if I use hTCReactionsQK, it works but there's only 2 reactions involving nitrogen. I tried to add the reactions form hTCReactionsDPLR but it can't work, giving the error:

Selecting chemistry2Reader foam2ChemistryReader


--> FOAM FATAL IO ERROR:
keyword ni is undefined in dictionary "/scratch/users/nus/tsltaywb/OpenFOAM/eilmer_finite_cylinder_hy2Foam/constant/hTCReactionsQK.reactions.nitrogenElectronImpactDissociationReaction"

file: /scratch/users/nus/tsltaywb/OpenFOAM/eilmer_finite_cylinder_hy2Foam/constant/hTCReactionsQK.reactions.nitrogenElectronImpactDissociationReaction from line 79 to line 84.

    From function const Foam::entry& Foam::dictionary::lookupEntry(const Foam::word&, bool, bool) const
    in file db/dictionary/dictionary.C at line 551.

FOAM exiting

I have attached the files for reference. Thanks.
hTCReactionsQK.txt
hTCReactionsDPLR.txt

hy2Foam post-processing error with openFoam routines

Trying to run the hy2Foam bluntedCone and cylinderReacting cases. Running it on Windows using the Windows Subsystem for Linux with Ubuntu.

I modified the Allrun scripts decompose and run on multiple cores. But I always end up with an error on the next postprocess step.

FOAM throws an error it can't find wallHeatFlux or wallShearStress, however, it appears to have been installed correctly because I can call those functions from my terminal.

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time

Create mesh for time = 0

--> FOAM Warning :
From function bool Foam::functionObjectList::read()
in file db/functionObjects/functionObjectList/functionObjectList.C at line 777
Caught FatalError
--> FOAM FATAL ERROR:
Unable to find the wallHeatFlux

From function Foam::functionObjects::StantonNo::StantonNo(const Foam::word&, const Foam::Time&, const Foam::dictionary&)
in file StantonNo/StantonNo.C at line 121.

--> FOAM Warning :
From function bool Foam::functionObjectList::read()
in file db/functionObjects/functionObjectList/functionObjectList.C at line 777
Caught FatalError
--> FOAM FATAL ERROR:
Unable to find the wallShearStress

From function Foam::functionObjects::frictionCoefficient::frictionCoefficient(const Foam::word&, const Foam::Time&, const Foam::dictionary&)
in file frictionCoefficient/frictionCoefficient.C at line 121.

Time = 0
Creating reaction model

Selecting hTC model laminar2
Selecting chemistry type
{
chemistrySolver Euler2Implicit;
chemistryThermo rho2;
}

Selecting thermodynamics package
{
type heRho2Thermo;
mixture reacting2Mixture;
transport BlottnerEucken;
thermo decoupledEnergyModes;
energy sensible2InternalEnergy;
equationOfState perfect2Gas;
specie advancedSpecie;
}

Selecting chemistry2Reader foam2ChemistryReader
chemistry2Model: Number of species = 2 and reactions = 2
using integrated reaction rate

Reading thermophysical properties

Reading field U

Creating turbulence model

Selecting turbulence model type laminar
Selecting laminar stress model Stokes

Loading the transport mixing rule: Wilke

Loading the rarefaction parameters library

Loading the multispecies transport model: Fick

Loading the V-T relaxation time model: LandauTellerVT

pressureCoefficient pressureCoefficient write:
writing field pressureCoefficient
patch cylinder Cp : min = 0.00357142, max = 0.00357142, average = 0.00357142

End

Shock tube case runs with older version of hy2Foam runs but dumps core with new version

With build
commit 7e6c616
Tue Jul 14 23:57:52 2020 -0400
A simple shock tube case with chemistry works fine

with build
commit 914694f
Date: Tue Dec 29 19:52:01 2020 -0500
the case crashes as
Create time

Create mesh for time = 0

Creating reaction model

Selecting hTC model laminar2
Selecting chemistry type
{
chemistrySolver Euler2Implicit;
chemistryThermo rho2;
}

Selecting thermodynamics package
{
type heRho2Thermo;
mixture reacting2Mixture;
transport BlottnerEucken;
thermo decoupledEnergyModes;
energy sensible2InternalEnergy;
equationOfState perfect2Gas;
specie advancedSpecie;
}

Selecting chemistry2Reader foam2ChemistryReader
chemistry2Model: Number of species = 14 and reactions = 33
using integrated reaction rate

Reading thermophysical properties

Reading field U

Creating turbulence model

Selecting turbulence model type laminar
Selecting laminar stress model Stokes

Loading the transport mixing rule: Wilke

Loading the rarefaction parameters library

Loading the multispecies transport model: noSpeciesDiffusion

No finite volume options present

fluxScheme: Kurganov
#0 Foam::error::printStack(Foam::Ostream&) at ??:?
#1 Foam::sigFpe::sigHandler(int) at ??:?
#2 ? in "/lib64/libc.so.6"
#3 ? at rho2ReactionThermos.C:?
#4 ? at rho2ReactionThermos.C:?
#5 Foam::he2Thermo<Foam::rho2ReactionThermo, Foam::Specie2Mixture<Foam::reacting2Mixture<Foam::BlottnerEuckenTransport<Foam::species::multiThermo<Foam::decoupledEnergyModesThermo<Foam::perfect2GasFoam::advancedSpecie >, Foam::sensible2InternalEnergy> > > > >::Cp() const at ??:?
#6 ? at ??:?
#7 ? at ??:?
#8 __libc_start_main in "/lib64/libc.so.6"
#9 ? at ??:?
Floating point exception (core dumped)

Both cases are run on a single core. The newer build requires a different transportProperties file but the settings in it as the same as the setting from the transportProperties file of the old case. Everything else is the same.

Coud not load turbulence models

I was trying to run hyfoam in parallel. When I executed a command decomposePar. It is showing me the following warning:

 --> FOAM Warning :
From function void* Foam::dlOpen(const Foam::fileName&, bool)
in file POSIX.C at line 1321
dlopen error : /home/pranay/OpenFOAM/pranay-v1706/platforms/linux64GccDPInt32Opt/lib/libstrathTurbulenceModels.so: undefined symbol: _ZTIN4Foam15turbulenceModelE
--> FOAM Warning :
From function bool Foam::dlLibraryTable::open(const Foam::fileName&, bool)
in file db/dynamicLibrary/dlLibraryTable/dlLibraryTable.C at line 101
could not load "libstrathTurbulenceModels.so"

Installation Issue - dsmcmodule (dsmcFoam+) - for openfoam-v1706 - make: *** [dsmcInitialise+] Error 2

System:- Ubuntu 18.04.4 LTS (Linux) and also on Ubuntu 20.04 (WSL)

Steps followed:-
1.for Openfoam:- https://openfoamwiki.net/index.php/Installation/Linux/OpenFOAM%2B-v1606%2B/Ubuntu
2.for dsmcFoam+ :- https://vincentcasseau.github.io/installation/

Installation error: - cannot find -lhybridStrath+
complete file:- logInstall-DSMC.txt

file's end description
"-L/home/shock/OpenFOAM/shock-v1706/platforms/linux64GccDPInt32Opt/lib -lmeshTools -lfiniteVolume -llagrangian+ -ldecompositionMethods -ldsmcFoam+ -lhybridStrath+ -lgeneralMolecule -ldynamicMesh -ldynamicFvMesh -lOpenFOAM -ldl
-lm -o /home/shock/OpenFOAM/shock-v1706/platforms/linux64GccDPInt32Opt/bin/dsmcInitialise+
/usr/bin/ld: cannot find -lhybridStrath+
collect2: error: ld returned 1 exit status
/opt/openfoam/OpenFOAM-v1706/wmake/makefiles/general:140: recipe for target '/home/shock/OpenFOAM/shock-v1706/platforms/linux64GccDPInt32Opt/bin/dsmcInitialise+' failed
make[1]: *** [/home/shock/OpenFOAM/shock-v1706/platforms/linux64GccDPInt32Opt/bin/dsmcInitialise+] Error 1
/opt/openfoam/OpenFOAM-v1706/wmake/makefiles/apps:39: recipe for target 'dsmcInitialise+' failed
make: *** [dsmcInitialise+] Error 2"

Equilibrium constant - Park 1990

Hi,

I realized there is an inconsistency between Eq. (2.68), page 30
(see https://github.com/vincentcasseau/hyStrath/blob/master/doc/PhDthesis-vincentcasseau.pdf)
and the source code when forward and backward controlling temperatures differ (i.e., for dissociation & associaive ionization reactions).

What was intended:
kb(Tcb) = kf(Tcb) / Keq(Tcb) ......... (Eq. 2.68)

Currently in the source code:
kb(Tcb) = kf(Tcf) / Keq(Tcb)

where Tcf and Tcb are the forward and backward controlling temperatures, respectively.

Does anyone have access to Park's 1990 book (I don't until libraries reopen) and could confirm that Eq. (2.68) is indeed correct? This is an easy fix but I would like to be 100% sure.

Thanks,
Vince

installation issues

Hey Vincent,

I am currently helping someone to add your OF extension to OpenFOAM v1712 but we are both running into the same installation error, maybe you have come across it and may be able to help us out? I am using Win 10 with the Ubuntu subsystem with default gnu compilers, I have attached my logInstall and the screen output I get during the installation procedure.

logInstall.txt
screen_output.txt

Cheers,
Tom

Boundary conditions and ignition hyfoam

What I understood was that this solver calculates the reaction rates using arrhenius kinetic expression and turbulence chemistry coupling is ignored.I will be working on this turbulence chemistry coupling as a part of my phd work.

Currently, I am simulating supersonic combustion with your hyfoam solver. To know the boundary conditions, I read createFields header file.I have few doubts.

I could not able find the terminology of "kappatr" and "kappave" and how to ignite the mixture ? Do I need to patch the region with high temperature as similar to the reactingFoam cases ? Do I have to give energy released per unit time (dQ) as B.C's/I.C' condition or is this field created during the calculations or what exactly this dQ means here?

Thanks

Lorrain combustion test case

I am trying to run the Lorrain test case with hyFoam solver including chemistry and combustion.
I used the profiles for u, p and T from the fuel off configuration as the flow conditions for the inlet of the combustor and the file hTCReactionsES to define the set of chemical reactions.
The program failed after 400 iterations.
[7] #0 Foam::error::printStack(Foam::Ostream&) in "/userhome/ef77211/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so"
[7] #1 Foam::sigFpe::sigHandler(int) in "/userhome/ef77211/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so"
[7] #2 ? in "/lib64/libc.so.6"
[7] #3 ? in "/lib64/libm.so.6"
[7] #4 exp in "/lib64/libm.so.6"
[7] #5 Foam::Specie2Mixture<Foam::reacting2Mixture<Foam::CEATransport<Foam::species::multiThermo<Foam::decoupledEnergyModesThermo<Foam::perfect2GasFoam::advancedSpecie >, Foam::sensible2InternalEnergy> > > >::mu(int, double,
double) const in "/userhome/ef77211/OpenFOAM/ef77211-v1706/platforms/linux64GccDPInt32Opt/lib/libstrathReactionThermophysicalModels.so"
[7] #6 Foam::WilkeMR<Foam::CEATransport<Foam::species::multiThermo<Foam::decoupledEnergyModesThermo<Foam::perfect2GasFoam::advancedSpecie >, Foam::sensible2InternalEnergy> > >::updatePhi() in
"/userhome/ef77211/OpenFOAM/ef77211-v1706/platforms/linux64GccDPInt32Opt/lib/libmixingRules.so"
[7] #7 Foam::WilkeMR<Foam::CEATransport<Foam::species::multiThermo<Foam::decoupledEnergyModesThermo<Foam::perfect2GasFoam::advancedSpecie >, Foam::sensible2InternalEnergy> > >::correct() in
"/userhome/ef77211/OpenFOAM/ef77211-v1706/platforms/linux64GccDPInt32Opt/lib/libmixingRules.so"
[7] #8 ? in "/userhome/ef77211/OpenFOAM/ef77211-v1706/platforms/linux64GccDPInt32Opt/bin/hy2Foam"
[7] #9 ? in "/userhome/ef77211/OpenFOAM/ef77211-v1706/platforms/linux64GccDPInt32Opt/bin/hy2Foam"
[7] #10 __libc_start_main in "/lib64/libc.so.6"
[7] #11 Foam::UOPstream::write(float) in "/userhome/ef77211/OpenFOAM/ef77211-v1706/platforms/linux64GccDPInt32Opt/bin/hy2Foam"
[tuxe040:28595] *** Process received signal ***
[tuxe040:28595] Signal: Floating point exception (8)
[tuxe040:28595] Signal code: (-6)
[tuxe040:28595] Failing at address: 0x89000006fb3
[tuxe040:28595] [ 0] /lib64/libc.so.6[0x383da32660]
[tuxe040:28595] [ 1] /lib64/libc.so.6(gsignal+0x35)[0x383da325e5]
[tuxe040:28595] [ 2] /lib64/libc.so.6[0x383da32660]
[tuxe040:28595] [ 3] /lib64/libm.so.6[0x383ea0ebb0]
[tuxe040:28595] [ 4] /lib64/libm.so.6(exp+0x12)[0x383ea24b52]
[tuxe040:28595] [ 5]
/userhome/ef77211/OpenFOAM/ef77211-v1706/platforms/linux64GccDPInt32Opt/lib/libstrathReactionThermophysicalModels.so(_ZNK4Foam14Specie2MixtureINS_16reacting2MixtureINS_12CEATransportINS_7species11multiThermoINS_26decoupledEnergyModesThermoINS_11perfect2GasINS_14advancedSpecieEEEEENS_23sensible2InternalEnergyEEEEEEEE2muEidd+0xad)[0x7fe92b2462ed]
[tuxe040:28595] [ 6]
/userhome/ef77211/OpenFOAM/ef77211-v1706/platforms/linux64GccDPInt32Opt/lib/libmixingRules.so(_ZN4Foam7WilkeMRINS_12CEATransportINS_7species11multiThermoINS_26decoupledEnergyModesThermoINS_11perfect2GasINS_14advancedSpecieEEEEENS_23sensible2InternalEnergyEEEEEE9updatePhiEv+0x1e9)[0x7fe9295f7099]
[tuxe040:28595] [ 7]
/userhome/ef77211/OpenFOAM/ef77211-v1706/platforms/linux64GccDPInt32Opt/lib/libmixingRules.so(_ZN4Foam7WilkeMRINS_12CEATransportINS_7species11multiThermoINS_26decoupledEnergyModesThermoINS_11perfect2GasINS_14advancedSpecieEEEEENS_23sensible2InternalEnergyEEEEEE7correctEv+0x1d)[0x7fe92960f2fd]
[tuxe040:28595] [ 8] hy2Foam[0x444219]
[tuxe040:28595] [ 9] hy2Foam[0x49a4ed]
[tuxe040:28595] [10] /lib64/libc.so.6(__libc_start_main+0xfd)[0x383da1ed1d]
[tuxe040:28595] [11] hy2Foam(_ZN4Foam9UOPstream5writeEf+0x189)[0x42c779]
[tuxe040:28595] *** End of error message ***
DILUPBiCG: Solving for H, Initial residual = 0.5031483291, Final residual = 3.805196343e-13, No Iterations 3
diagonal: Solving for rhoUx, Initial residual = 0, Final residual = 0, No Iterations 0
diagonal: Solving for rhoUy, Initial residual = 0, Final residual = 0, No Iterations 0

[1] Exit 136 mpirun -np 8 hy2Foam -parallel > log.hy2Foam

Have you got any idea about this issue?

Question about charge neutrality with multiple ionic species

Is there some place where charge neutrality is enforced in h2yFoam (and hy2MhdFoam)? Since all species transport equations are solved independently with their own source terms, if charge neutrality is not enforced, then it is likely that the sum of positive charge densities might not equal the negative charge densities at every time step/location.
Any insight into this will be helpful.

Thanks
Iain

[dsmcFoam+] Crash after mesh change when using sticking wall patch(es)

Currently the solver will crash reliably if there are stuck parcels and the mesh is changed (e.g. in a parallel run after load balancing where each processor will have a freshly assigned mesh). In such a case the parcels stuck properties (patch and patch face that a parcel is stuck to) are not valid anymore.

Edit: This happens only if a stuck parcel is desorbed after the mesh has changed. Setting a finite residenceTime is therefore necessary to reproduce the issue.

As there is no simple / elegant way to get a global patch / face identifier in parallel runs and this would also introduce additional overhead, the most elegant solution seems to be to relocate the parcels when the solver is restarted.

See related pull request for a fix.

fireII example with hy2DyMFoam crashes with core dump

When the fire-II example with 11 species is run with

the dynamicMeshDict file show in the "Adaptive mesh refinement" section of
https://vincentcasseau.github.io/how-tos-cfd-fleming/how-tos-cfd-fleming-advanced/

crashes with a core dump.

After the specified number of steps = refinementInterval,
The log file shows
Selected 4748 cells for refinement out of 11682.
Refined from 11682 to 44918 cells.

followed by

Selected 0 split points out of a possible 4748.
Execution time for mesh.update() = 0.07 s
*** Error in `hy2DyMFoam': corrupted double-linked list: 0x00000000022739c0 ***

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.