diff --git a/.gitignore b/.gitignore
index a148a68ef..b567196c9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -84,3 +84,23 @@ doc/Doxygen/DTAGS
# Ignore the test directory
/tutorialsTest
+
+#Ignore all tutorial files that are not configs, resources or scripts
+/tutorials
+
+!Allwmake
+!Alltest
+!Allclean
+!Allrun
+!*.yaml
+!*.cti
+!*Properties
+
+!/tutorials/resources/
+
+!/tutorials/**/system/
+!/tutorials/**/0/
+
+!/tutorials/**/constant/*reaction*
+!/tutorials/**/constant/*thermo*
+
diff --git a/applications/solvers/CTreactingFoam/CTreactingFoam.C b/applications/solvers/CTreactingFoam/CTreactingFoam.C
new file mode 100644
index 000000000..d27ae5459
--- /dev/null
+++ b/applications/solvers/CTreactingFoam/CTreactingFoam.C
@@ -0,0 +1,135 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration | Website: https://openfoam.org
+ \\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+Application
+ reactingFoam
+
+Description
+ Solver for combustion with chemical reactions.
+
+\*---------------------------------------------------------------------------*/
+
+#include "fvCFD.H"
+#include "turbulentFluidThermoModel.H"
+#include "psiReactionThermo.H"
+#include "CombustionModel.H"
+#include "multivariateScheme.H"
+#include "pimpleControl.H"
+#include "pressureControl.H"
+#include "fvOptions.H"
+#include "localEulerDdtScheme.H"
+#include "fvcSmooth.H"
+#include "reactingMixture.H"
+#include "thermoPhysicsTypes.H"
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+int main(int argc, char *argv[])
+{
+ #include "postProcess.H"
+
+ #include "setRootCaseLists.H"
+ #include "createTime.H"
+ #include "createMesh.H"
+ #include "createControl.H"
+ #include "createTimeControls.H"
+ #include "initContinuityErrs.H"
+ #include "createFields.H"
+ #include "createFieldRefs.H"
+
+ turbulence->validate();
+
+ if (!LTS)
+ {
+ #include "compressibleCourantNo.H"
+ #include "setInitialDeltaT.H"
+ }
+
+ // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+ Info<< "\nStarting time loop\n" << endl;
+
+ while (runTime.run())
+ {
+ #include "readTimeControls.H"
+
+ if (LTS)
+ {
+ #include "setRDeltaT.H"
+ }
+ else
+ {
+ #include "compressibleCourantNo.H"
+ #include "setDeltaT.H"
+ }
+
+ runTime++;
+
+ Info<< "Time = " << runTime.timeName() << nl << endl;
+
+ #include "rhoEqn.H"
+
+ while (pimple.loop())
+ {
+ #include "UEqn.H"
+ #include "YEqn.H"
+ #include "EEqn.H"
+
+ // --- Pressure corrector loop
+ while (pimple.correct())
+ {
+ if (pimple.consistent())
+ {
+ #include "pcEqn.H"
+ }
+ else
+ {
+ #include "pEqn.H"
+ }
+ }
+
+ if (pimple.turbCorr())
+ {
+ turbulence->correct();
+ }
+ }
+
+ rho = thermo.rho();
+
+ runTime.write();
+
+ Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
+ << " ClockTime = " << runTime.elapsedClockTime() << " s"
+ << nl << endl;
+ }
+
+ #include "LewisNumber.H"
+
+ Info<< "End\n" << endl;
+
+ return 0;
+}
+
+
+// ************************************************************************* //
diff --git a/applications/solvers/CTreactingFoam/EEqn.H b/applications/solvers/CTreactingFoam/EEqn.H
new file mode 100644
index 000000000..218116e4d
--- /dev/null
+++ b/applications/solvers/CTreactingFoam/EEqn.H
@@ -0,0 +1,47 @@
+{
+ volScalarField tempT = T;
+ volScalarField& he = thermo.he();
+
+ fvScalarMatrix EEqn
+ (
+ fvm::ddt(rho, he) + mvConvection->fvmDiv(phi, he)
+ + fvc::ddt(rho, K) + fvc::div(phi, K)
+ + (
+ he.name() == "e"
+ ? fvc::div
+ (
+ fvc::absolute(phi/fvc::interpolate(rho), U),
+ p,
+ "div(phiv,p)"
+ )
+ : -dpdt
+ )
+ - fvm::laplacian(turbulence->alphaEff(), he)
+ ==
+ Qdot
+ + fvOptions(rho, he)
+ );
+
+ forAll(Y, k)
+ {
+ EEqn -= fvc::laplacian(turbulence->alphaEff()*hsi[k], Y[k]);
+ EEqn -= fvc::div(J[k], hsi[k], "div(Ji,hsi)");
+ }
+
+ EEqn.relax();
+
+ fvOptions.constrain(EEqn);
+
+ EEqn.solve();
+
+ fvOptions.correct(he);
+
+ thermo.correct();
+
+ Info << "min/max(T) = "
+ << min(T).value() << ", " << max(T).value() << endl;
+ // update oldT for CoDAC
+ //oldT = tempT;
+}
+
+
diff --git a/applications/solvers/CTreactingFoam/LewisNumber.H b/applications/solvers/CTreactingFoam/LewisNumber.H
new file mode 100644
index 000000000..509f81a3c
--- /dev/null
+++ b/applications/solvers/CTreactingFoam/LewisNumber.H
@@ -0,0 +1,26 @@
+/*OFstream LewisNumber
+(
+ "LewisNumber.dat"
+);
+
+LewisNumber
+ << "species" << " Lewis Number" << endl;
+
+forAll(mesh.cells(), celli)
+{
+ if ( abs( T[celli]-max(T).value() ) < 1.0e-20 )
+ {
+ forAll (Y, k)
+ {
+ scalar Diff = dynamic_cast&>
+ (composition).D(p, T, Y)[k][celli];
+ if (Diff > 1.0e-20)
+ {
+ scalar Lewis = thermo.alpha()[celli]/Diff;
+ LewisNumber
+ << k << tab << tab << Lewis << endl;
+ }
+
+ }
+ }
+}*/
diff --git a/applications/solvers/CTreactingFoam/Make/files b/applications/solvers/CTreactingFoam/Make/files
new file mode 100644
index 000000000..f405955d7
--- /dev/null
+++ b/applications/solvers/CTreactingFoam/Make/files
@@ -0,0 +1,3 @@
+CTreactingFoam.C
+
+EXE = $(FOAM_APPBIN)/CTreactingFoam
diff --git a/applications/solvers/CTreactingFoam/Make/options b/applications/solvers/CTreactingFoam/Make/options
new file mode 100644
index 000000000..fc1f952fc
--- /dev/null
+++ b/applications/solvers/CTreactingFoam/Make/options
@@ -0,0 +1,39 @@
+EXE_INC = \
+ -I$(LIB_SRC)/finiteVolume/lnInclude \
+ -I$(LIB_SRC)/meshTools/lnInclude \
+ -I$(LIB_SRC)/sampling/lnInclude \
+ -I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
+ -I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
+ -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
+ -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
+ -I$(LIB_SRC)/transportModels/compressible/lnInclude \
+ -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
+ -I$(LIB_SRC)/thermophysicalModels/chemistryModel/lnInclude \
+ -I$(LIB_SRC)/ODE/lnInclude \
+ -I$(LIB_SRC)/combustionModels/lnInclude \
+ -I$(WM_CANTERA_DIR) \
+ -I$(WM_CANTERA_DIR)/cantera \
+ -I$(WM_CANTERA_DIR)/cantera/kinetics \
+ -I$(WM_CANTERA_DIR)/cantera/base \
+ -I$(WM_CANTERA_DIR)/cantera/transport \
+ -I$(WM_CANTERA_DIR)/cantera/thermo \
+ -I$(WM_CANTERA_DIR)/cantera/ext \
+ -I$(WM_CANTERA_DIR)/cantera/ext/fmt
+
+EXE_LIBS = \
+ -L$(FOAM_USER_LIBBIN) \
+ -lfiniteVolume \
+ -lmeshTools \
+ -lsampling \
+ -lturbulenceModels \
+ -lcompressibleTransportModels \
+ -lspecie \
+ -lfluidThermophysicalModels \
+ -lODE \
+ -lchemistryModel \
+ -lreactionThermophysicalModels \
+ -lcompressibleTurbulenceModels \
+ -lfvOptions \
+ -lcombustionModels \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared
diff --git a/applications/solvers/CTreactingFoam/UEqn.H b/applications/solvers/CTreactingFoam/UEqn.H
new file mode 100644
index 000000000..e4caa1cea
--- /dev/null
+++ b/applications/solvers/CTreactingFoam/UEqn.H
@@ -0,0 +1,25 @@
+// Solve the Momentum equation
+
+MRF.correctBoundaryVelocity(U);
+
+tmp tUEqn
+(
+ fvm::ddt(rho, U) + fvm::div(phi, U)
+ + MRF.DDt(rho, U)
+ + turbulence->divDevRhoReff(U)
+ ==
+ fvOptions(rho, U)
+);
+fvVectorMatrix& UEqn = tUEqn.ref();
+
+UEqn.relax();
+
+fvOptions.constrain(UEqn);
+
+if (pimple.momentumPredictor())
+{
+ solve(UEqn == -fvc::grad(p));
+
+ fvOptions.correct(U);
+ K = 0.5*magSqr(U);
+}
diff --git a/applications/solvers/CTreactingFoam/YEqn.H b/applications/solvers/CTreactingFoam/YEqn.H
new file mode 100644
index 000000000..8924eea5f
--- /dev/null
+++ b/applications/solvers/CTreactingFoam/YEqn.H
@@ -0,0 +1,207 @@
+tmp> mvConvection
+(
+ fv::convectionScheme::New
+ (
+ mesh,
+ fields,
+ phi,
+ mesh.divScheme("div(phi,Yi_h)")
+ )
+);
+
+
+// Added by Taaresh - Mix Avg Diffusivity (m2/s)
+
+PtrList D =
+dynamic_cast&>
+(composition).D(p, T, Y, rho);
+
+PtrList hsi(Y.size());
+PtrList J(Y.size());
+PtrList tempY(Y.size());
+PtrList YV(Y.size());
+
+
+forAll(Y, i)
+{
+ hsi.set
+ (
+ i,
+ new volScalarField
+ (
+ IOobject
+ (
+ "hsi",
+ mesh.time().timeName(),
+ mesh
+ ),
+ mesh,
+ dimensionedScalar
+ (
+ "hsi",
+ dimEnergy/dimMass,
+ Zero
+ )
+ )
+ );
+
+ tempY.set
+ (
+ i,
+ new volScalarField
+ (
+ IOobject
+ (
+ "tempY",
+ mesh.time().timeName(),
+ mesh
+ ),
+ mesh,
+ scalar(0.0)
+ )
+ );
+
+ // product of mass fraction and diffusion vel of each specie
+
+ YV.set
+ (
+ i,
+ new volVectorField
+ (
+ IOobject
+ (
+ "YV",
+ mesh.time().timeName(),
+ mesh
+ ),
+ mesh,
+ dimensionedVector("YV", dimVelocity, vector(0.0, 0.0, 0.0))
+ )
+ );
+
+
+}
+
+forAll (Y, i)
+{
+ volScalarField& tHsi = hsi[i];
+ forAll(tHsi, celli)
+ {
+ tHsi[celli] = composition.Hs(i, p[celli], T[celli]);
+ }
+ volScalarField::Boundary& Bf = tHsi.boundaryFieldRef();
+ forAll(Bf, patchi)
+ {
+ forAll(Bf[patchi], facei)
+ {
+ Bf[patchi][facei] =
+ composition.Hs
+ (
+ i,
+ p.boundaryField()[patchi][facei],
+ T.boundaryField()[patchi][facei]
+ );
+ }
+ }
+}
+
+// add turbulence effect on D, assuming constant turbulence Lewis number
+// turbulence thermal diffusivity alphat
+volScalarField alphat = turbulence->alphat();
+//volScalarField nut = turbulence->nut();
+//Info << rho*nut/(dimensionedScalar("SMALL", dimensionSet(1,-1,-1,0,0), Foam::SMALL)+alphat) << endl;
+const scalar Let(thermo.lookupOrDefault("Let", 1.0));
+volScalarField Dt = alphat/(rho*Let);
+forAll(Y, i)
+{
+ D[i] = D[i] + Dt;
+}
+
+{
+
+ reaction->correct();
+ Qdot = reaction->Qdot();
+ volScalarField Yt(0.0*Y[0]);
+
+ Vc *= 0.0;
+
+// Compute Correction Velocity
+
+ forAll(Y, i)
+ {
+ Vc += D[i]*fvc::grad(Y[i]) + (D[i]*Y[i]/Wmix)*fvc::grad(Wmix);
+ }
+
+ phiVc = linearInterpolate(rho*Vc) & mesh.Sf();
+
+
+ forAll(Y, i)
+ {
+ if (i != inertIndex && composition.active(i))
+ {
+ volScalarField& Yi = Y[i];
+
+ fvScalarMatrix YiEqn
+ (
+ fvm::ddt(rho, Yi)
+ + mvConvection->fvmDiv(phi, Yi)
+ == fvm::laplacian(rho*D[i], Yi) + fvc::laplacian(rho*D[i]*Yi/Wmix, Wmix)
+ - fvm::div(phiVc, Yi, "div(phiVc,Yi_h)") +
+ reaction->R(Yi)
+ + fvOptions(rho, Yi)
+ );
+
+ YiEqn.relax();
+
+ fvOptions.constrain(YiEqn);
+
+ YiEqn.solve(mesh.solver("Yi"));
+
+ fvOptions.correct(Yi);
+
+ Yi.max(0.0);
+ Yt += Yi;
+
+ }
+ }
+
+ Y[inertIndex] = scalar(1) - Yt;
+ Y[inertIndex].max(0.0);
+
+ volVectorField YV_balance(0.0*YV[0]);
+
+ forAll(YV, i)
+ {
+ // Calculate diff velocity for each species (including inertSpecies) for use in EEqn.H
+
+ YV[i] = (-D[i]*fvc::grad(Y[i])) - (D[i]*Y[i]/Wmix)*fvc::grad(Wmix);
+
+ if (i != inertIndex && composition.active(i))
+ {
+ YV_balance += YV[i];
+ }
+ }
+
+ YV[inertIndex] = -YV_balance; // since sum(Y[i]*V[i]) over all species = 0 for global mass conservation
+
+ forAll(Y, i)
+ {
+
+ // Species Diffusion Flux term used in EEqn.H
+
+ J.set
+ (
+ i,
+ linearInterpolate(YV[i]*rho) & mesh.Sf()
+ );
+ }
+
+}
+
+
+D_O2 = D[O2_index];
+D_N2 = D[N2_index];
+D_O = D[O_index];
+
+Info << "Max O2 diff = " << max(D[O2_index]) << endl;
+
diff --git a/applications/solvers/CTreactingFoam/YEqn_WuSplitting.H b/applications/solvers/CTreactingFoam/YEqn_WuSplitting.H
new file mode 100644
index 000000000..3bf05f33e
--- /dev/null
+++ b/applications/solvers/CTreactingFoam/YEqn_WuSplitting.H
@@ -0,0 +1,265 @@
+tmp> mvConvection
+(
+ fv::convectionScheme::New
+ (
+ mesh,
+ fields,
+ phi,
+ mesh.divScheme("div(phi,Yi_h)")
+ )
+);
+
+
+PtrList Dm =
+dynamic_cast&>
+(composition).Dm(p, T, Y, rho);
+
+PtrList hsi(Y.size());
+PtrList J(Y.size());
+PtrList D(Y.size());
+PtrList tempY(Y.size()), YSave(Y.size());
+forAll(Y, i)
+{
+ hsi.set
+ (
+ i,
+ new volScalarField
+ (
+ IOobject
+ (
+ "hsi",
+ mesh.time().timeName(),
+ mesh
+ ),
+ mesh,
+ dimensionedScalar
+ (
+ "hsi",
+ dimEnergy/dimMass,
+ Zero
+ )
+ )
+ );
+
+ tempY.set
+ (
+ i,
+ new volScalarField
+ (
+ IOobject
+ (
+ "tempY",
+ mesh.time().timeName(),
+ mesh
+ ),
+ mesh,
+ scalar(0.0)
+ )
+ );
+
+ YSave.set(i, Y[i]);
+
+ D.set
+ (
+ i,
+ mag(Dm[i])/(dimensionedScalar("SMALL", dimensionSet(0,-1,0,0,0), Foam::SMALL)
+ +mag(fvc::grad(Y[i]).ref()))
+ );
+
+ J.set
+ (
+ i,
+ linearInterpolate(Dm[i]*rho) & mesh.Sf()
+ );
+}
+
+forAll (Y, i)
+{
+ volScalarField& tHsi = hsi[i];
+ forAll(tHsi, celli)
+ {
+ tHsi[celli] = composition.Hs(i, p[celli], T[celli]);
+ }
+ volScalarField::Boundary& Bf = tHsi.boundaryFieldRef();
+ forAll(Bf, patchi)
+ {
+ forAll(Bf[patchi], facei)
+ {
+ Bf[patchi][facei] =
+ composition.Hs
+ (
+ i,
+ p.boundaryField()[patchi][facei],
+ T.boundaryField()[patchi][facei]
+ );
+ }
+ }
+}
+
+
+{
+ tempY = Y;
+ volScalarField Yt(0.0*Y[0]);
+
+ // do simple balanced splitting
+ // reference: Computer Physics Communications 243 (2019) 81–96
+ // evaluate cn term, which will be constant during the splitting integration
+
+ // -----------------------------step 1, integrate R-cn by dt------------------------------------
+ // cn is included in the chemistry model
+ // but we do not necessarily need cn to be integrated in the chemistry model
+ // because we can use explicit for Transport (Cn) and then S, it will be no splitting error
+ scalar dtSave = runTime.deltaT().value();
+ reaction->correct();
+ Qdot = reaction->Qdot();
+
+ // --------Substep 1a, integrate the transport term explicitly by dt--------
+ forAll(Y, i)
+ {
+ if (i != inertIndex && composition.active(i))
+ {
+ volScalarField& Yi = Y[i];
+
+ fvScalarMatrix YiEqn
+ (
+ fvm::ddt(rho, Yi)
+ + mvConvection->fvcDiv(phi, Yi)
+ - fvc::laplacian(rho*D[i], Yi)
+ == fvOptions(rho, Yi)
+ );
+
+ fvOptions.constrain(YiEqn);
+
+ YiEqn.solve(mesh.solver("Yi"));
+
+ fvOptions.correct(Yi);
+
+ Yi.max(0.0);
+ Yt += Yi;
+
+ }
+ }
+
+ Y[inertIndex] = scalar(1) - Yt;
+ Y[inertIndex].max(0.0);
+ //YSave[inertIndex] = Y[inertIndex];
+
+
+ // update Rho oldTime field, this could be done with a smarter way: write
+ // fvm::ddt(rho, Yi)-fvc::ddt(rho, Yi) == reaction->R(Yi)
+ // for the transport Equation, here we still use the "update oldTime field" way
+ volScalarField& tRho = rho.oldTime();
+ volScalarField::Boundary& Bf = tRho.boundaryFieldRef();
+ forAll (tRho, celli)
+ {
+ tRho[celli] = rho[celli];
+ }
+
+ forAll(Bf, patchi)
+ {
+ forAll(Bf[patchi], facei)
+ {
+ Bf[patchi][facei] = rho.boundaryField()[patchi][facei];
+ }
+ }
+
+ //update Y.oldTime(), which will be used in fvm::ddt
+ forAll (Y, i)
+ {
+ volScalarField& tYi = Y[i].oldTime();
+
+ forAll(tYi, celli)
+ {
+ tYi[celli] = Y[i][celli];
+ }
+ volScalarField::Boundary& Bf = tYi.boundaryFieldRef();
+ forAll(Bf, patchi)
+ {
+ forAll(Bf[patchi], facei)
+ {
+ Bf[patchi][facei] = Y[i].boundaryField()[patchi][facei];
+ }
+ }
+ }
+ // --------Substep 1b, integrate the chemical source term by dt--------
+ forAll(Y, i)
+ {
+ if (i != inertIndex && composition.active(i))
+ {
+ volScalarField& Yi = Y[i];
+ fvScalarMatrix YiEqn
+ (
+ fvm::ddt(rho, Yi)
+ ==
+ reaction->R(Yi)
+ );
+ YiEqn.relax();
+
+ YiEqn.solve(mesh.solver("Yi"));
+
+ Yi.max(0.0);
+ Yt += Yi;
+ }
+ }
+ Y[inertIndex] = scalar(1) - Yt;
+ Y[inertIndex].max(0.0);
+
+ // ----------------------- step 2, integrate T+cn by dt/2 ----------------------------
+ //update Y.oldTime(), which will be used in fvm::ddt
+ forAll (Y, i)
+ {
+ volScalarField& tYi = Y[i].oldTime();
+
+ forAll(tYi, celli)
+ {
+ tYi[celli] = Y[i][celli];
+ }
+ volScalarField::Boundary& Bf = tYi.boundaryFieldRef();
+ forAll(Bf, patchi)
+ {
+ forAll(Bf[patchi], facei)
+ {
+ Bf[patchi][facei] = Y[i].boundaryField()[patchi][facei];
+ }
+ }
+ }
+ Yt = 0.0;
+ runTime.setDeltaT(dtSave/2.0);
+ forAll(Y, i)
+ {
+ if (i != inertIndex && composition.active(i))
+ {
+ volScalarField& Yi = Y[i];
+
+ fvScalarMatrix YiEqn
+ (
+ fvm::ddt(rho, Yi)
+ + mvConvection->fvmDiv(phi, Yi)
+ - fvm::laplacian(rho*D[i], Yi)
+ ==
+ mvConvection->fvcDiv(phi, YSave[i])
+ - fvc::laplacian(rho*D[i], YSave[i])
+ + fvOptions(rho, Yi)
+ );
+
+ YiEqn.relax();
+
+ fvOptions.constrain(YiEqn);
+
+ YiEqn.solve(mesh.solver("Yi"));
+
+ fvOptions.correct(Yi);
+
+ Yi.max(0.0);
+ Yt += Yi;
+ }
+ }
+ Y[inertIndex] = scalar(1) - Yt;
+ Y[inertIndex].max(0.0);
+
+ runTime.setDeltaT(dtSave);
+ // update oldY here for CoDAC
+ // oldY = tempY;
+}
+
+
diff --git a/applications/solvers/CTreactingFoam/createFieldRefs.H b/applications/solvers/CTreactingFoam/createFieldRefs.H
new file mode 100644
index 000000000..fdc479bc2
--- /dev/null
+++ b/applications/solvers/CTreactingFoam/createFieldRefs.H
@@ -0,0 +1,3 @@
+const volScalarField& psi = thermo.psi();
+const volScalarField& T = thermo.T();
+const label inertIndex(composition.species()[inertSpecie]);
diff --git a/applications/solvers/CTreactingFoam/createFields.H b/applications/solvers/CTreactingFoam/createFields.H
new file mode 100644
index 000000000..069284295
--- /dev/null
+++ b/applications/solvers/CTreactingFoam/createFields.H
@@ -0,0 +1,286 @@
+#include "createRDeltaT.H"
+
+Info<< "Reading thermophysical properties\n" << endl;
+autoPtr pThermo(psiReactionThermo::New(mesh));
+
+psiReactionThermo& thermo = pThermo();
+thermo.validate(args.executable(), "h", "e");
+
+basicSpecieMixture& composition = thermo.composition();
+PtrList& Y = composition.Y();
+
+// initilize omega, diff, omegaT and diffT for use in CEMA
+//PtrList& omega = composition.omega();
+//PtrList& diff = composition.diff();
+//volScalarField& omegaT = composition.omegaT();
+//volScalarField& diffT = composition.diffT();
+
+// initilize oldY for CoDAC, it will be large numbers to aviod similarity initially
+//PtrList& oldY = composition.oldY();
+//forAll(Y, i)
+//{
+// oldY[i] = 1000.0;
+//}
+const word inertSpecie(thermo.lookup("inertSpecie"));
+if (!composition.species().found(inertSpecie))
+{
+ FatalIOErrorIn(args.executable().c_str(), thermo)
+ << "Inert specie " << inertSpecie << " not found in available species "
+ << composition.species() << exit(FatalIOError);
+}
+
+volScalarField rho
+(
+ IOobject
+ (
+ "rho",
+ runTime.timeName(),
+ mesh
+ ),
+ thermo.rho()
+);
+
+Info<< "Reading field U\n" << endl;
+volVectorField U
+(
+ IOobject
+ (
+ "U",
+ runTime.timeName(),
+ mesh,
+ IOobject::MUST_READ,
+ IOobject::AUTO_WRITE
+ ),
+ mesh
+);
+
+
+volVectorField Vc
+(
+ IOobject
+ (
+ "Vc",
+ runTime.timeName(),
+ mesh,
+ IOobject::NO_READ,
+ IOobject::AUTO_WRITE
+ ),
+ mesh,
+ dimensionedVector("Vc", dimVelocity, vector(0,0,0))
+);
+
+volScalarField& p = thermo.p();
+
+#include "compressibleCreatePhi.H"
+
+pressureControl pressureControl(p, rho, pimple.dict(), false);
+
+mesh.setFluxRequired(p.name());
+
+Info << "Creating turbulence model.\n" << nl;
+autoPtr turbulence
+(
+ compressible::turbulenceModel::New
+ (
+ rho,
+ U,
+ phi,
+ thermo
+ )
+);
+
+Info<< "Creating reaction model\n" << endl;
+autoPtr> reaction
+(
+ CombustionModel::New(thermo, turbulence())
+);
+
+Info<< "Creating field dpdt\n" << endl;
+volScalarField dpdt
+(
+ IOobject
+ (
+ "dpdt",
+ runTime.timeName(),
+ mesh
+ ),
+ mesh,
+ dimensionedScalar("dpdt", p.dimensions()/dimTime, 0)
+);
+
+Info<< "Creating field kinetic energy K\n" << endl;
+volScalarField K("K", 0.5*magSqr(U));
+
+
+multivariateSurfaceInterpolationScheme::fieldTable fields;
+
+forAll(Y, i)
+{
+ fields.add(Y[i]);
+}
+fields.add(thermo.he());
+
+volScalarField Qdot
+(
+ IOobject
+ (
+ "Qdot",
+ runTime.timeName(),
+ mesh,
+ IOobject::READ_IF_PRESENT,
+ IOobject::AUTO_WRITE
+ ),
+ mesh,
+ dimensionedScalar("Qdot", dimEnergy/dimVolume/dimTime, 0.0)
+);
+
+// add mixture fraction field
+volScalarField Zmix
+(
+ IOobject
+ (
+ "Zmix",
+ runTime.timeName(),
+ mesh,
+ IOobject::READ_IF_PRESENT,
+ IOobject::AUTO_WRITE
+ ),
+ mesh,
+ scalar(0.0)
+);
+
+// add progress variable field
+volScalarField Prog
+(
+ IOobject
+ (
+ "Prog",
+ runTime.timeName(),
+ mesh,
+ IOobject::READ_IF_PRESENT,
+ IOobject::AUTO_WRITE
+ ),
+ mesh,
+ scalar(0.0)
+);
+#include "createMRF.H"
+#include "createFvOptions.H"
+
+label O_index, O2_index, N2_index;
+
+forAll(Y,i)
+{
+ if (Y[i].member() == "O")
+ {
+ O_index = i;
+ Info << "O_index = " << O_index << endl;
+ Info << Y[O_index].member() << endl;
+ }
+ else if (Y[i].member() == "O2")
+ {
+ O2_index = i;
+ Info << "O2_index = " << O2_index << endl;
+ Info << Y[O2_index].member() << endl;
+ }
+ else if (Y[i].member() == "N2")
+ {
+ N2_index = i;
+ Info << "N2 index = " << N2_index << endl;
+ }
+
+}
+
+volScalarField D_O2
+{
+ IOobject
+ (
+ "D_O2",
+ runTime.timeName(),
+ mesh,
+ IOobject::NO_READ,
+ IOobject::AUTO_WRITE
+ ),
+ mesh,
+ dimensionedScalar("D_O2", dimArea/dimTime, 0.0)
+};
+
+volScalarField D_N2
+{
+ IOobject
+ (
+ "D_N2",
+ runTime.timeName(),
+ mesh,
+ IOobject::NO_READ,
+ IOobject::AUTO_WRITE
+ ),
+ mesh,
+ dimensionedScalar("D_N2", dimArea/dimTime, 0.0)
+};
+
+
+volScalarField D_O
+{
+ IOobject
+ (
+ "D_O",
+ runTime.timeName(),
+ mesh,
+ IOobject::NO_READ,
+ IOobject::AUTO_WRITE
+ ),
+ mesh,
+ dimensionedScalar("D_O", dimArea/dimTime, 0.0)
+};
+
+
+
+volScalarField gradY_O2
+{
+ IOobject
+ (
+ "gradY_O2",
+ runTime.timeName(),
+ mesh,
+ IOobject::NO_READ,
+ IOobject::AUTO_WRITE
+ ),
+ mesh,
+ dimensionedScalar("gradY_O2", dimless/dimLength, 0.0)
+};
+
+OFstream maxDataFile
+(
+ "max_data_myrf.dat"
+);
+
+volScalarField Wmix
+{
+ IOobject
+ (
+ "Wmix",
+ runTime.timeName(),
+ mesh,
+ IOobject::NO_READ,
+ IOobject::AUTO_WRITE
+ ),
+ thermo.W()
+};
+
+
+surfaceScalarField phiVc
+(
+ IOobject
+ (
+ "phiVc",
+ runTime.timeName(),
+ mesh,
+ IOobject::NO_READ,
+ IOobject::NO_WRITE
+ ),
+ linearInterpolate(rho*Vc) & mesh.Sf()
+);
+
+
+
+
diff --git a/applications/solvers/CTreactingFoam/pEqn.H b/applications/solvers/CTreactingFoam/pEqn.H
new file mode 100644
index 000000000..9c30e8e7e
--- /dev/null
+++ b/applications/solvers/CTreactingFoam/pEqn.H
@@ -0,0 +1,104 @@
+rho = thermo.rho();
+
+volScalarField rAU(1.0/UEqn.A());
+surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
+volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
+
+if (pimple.nCorrPISO() <= 1)
+{
+ tUEqn.clear();
+}
+
+if (pimple.transonic())
+{
+ surfaceScalarField phid
+ (
+ "phid",
+ fvc::interpolate(psi)
+ *(
+ fvc::flux(HbyA)
+ + MRF.zeroFilter
+ (
+ rhorAUf*fvc::ddtCorr(rho, U, phi)/fvc::interpolate(rho)
+ )
+ )
+ );
+
+ MRF.makeRelative(fvc::interpolate(psi), phid);
+
+ while (pimple.correctNonOrthogonal())
+ {
+ fvScalarMatrix pEqn
+ (
+ fvm::ddt(psi, p)
+ + fvm::div(phid, p)
+ - fvm::laplacian(rhorAUf, p)
+ ==
+ fvOptions(psi, p, rho.name())
+ );
+
+ pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
+
+ if (pimple.finalNonOrthogonalIter())
+ {
+ phi == pEqn.flux();
+ }
+ }
+}
+else
+{
+ surfaceScalarField phiHbyA
+ (
+ "phiHbyA",
+ (
+ fvc::flux(rho*HbyA)
+ + MRF.zeroFilter(rhorAUf*fvc::ddtCorr(rho, U, phi))
+ )
+ );
+
+ MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
+
+ // Update the pressure BCs to ensure flux consistency
+ constrainPressure(p, rho, U, phiHbyA, rhorAUf, MRF);
+
+ while (pimple.correctNonOrthogonal())
+ {
+ fvScalarMatrix pEqn
+ (
+ fvm::ddt(psi, p)
+ + fvc::div(phiHbyA)
+ - fvm::laplacian(rhorAUf, p)
+ ==
+ fvOptions(psi, p, rho.name())
+ );
+
+ pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
+
+ if (pimple.finalNonOrthogonalIter())
+ {
+ phi = phiHbyA + pEqn.flux();
+ }
+ }
+}
+
+#include "rhoEqn.H"
+#include "compressibleContinuityErrs.H"
+
+// Explicitly relax pressure for momentum corrector
+p.relax();
+
+U = HbyA - rAU*fvc::grad(p);
+U.correctBoundaryConditions();
+fvOptions.correct(U);
+K = 0.5*magSqr(U);
+
+if (pressureControl.limit(p))
+{
+ p.correctBoundaryConditions();
+ rho = thermo.rho();
+}
+
+if (thermo.dpdt())
+{
+ dpdt = fvc::ddt(p);
+}
diff --git a/applications/solvers/CTreactingFoam/pcEqn.H b/applications/solvers/CTreactingFoam/pcEqn.H
new file mode 100644
index 000000000..5ca9b4adc
--- /dev/null
+++ b/applications/solvers/CTreactingFoam/pcEqn.H
@@ -0,0 +1,121 @@
+rho = thermo.rho();
+
+volScalarField rAU(1.0/UEqn.A());
+volScalarField rAtU(1.0/(1.0/rAU - UEqn.H1()));
+volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
+
+if (pimple.nCorrPISO() <= 1)
+{
+ tUEqn.clear();
+}
+
+if (pimple.transonic())
+{
+ surfaceScalarField phid
+ (
+ "phid",
+ fvc::interpolate(psi)
+ *(
+ fvc::flux(HbyA)
+ + MRF.zeroFilter
+ (
+ fvc::interpolate(rho*rAU)*fvc::ddtCorr(rho, U, phi)
+ /fvc::interpolate(rho)
+ )
+ )
+ );
+
+ MRF.makeRelative(fvc::interpolate(psi), phid);
+
+ surfaceScalarField phic
+ (
+ "phic",
+ fvc::interpolate(rho*(rAtU - rAU))*fvc::snGrad(p)*mesh.magSf()
+ );
+
+ HbyA -= (rAU - rAtU)*fvc::grad(p);
+
+ volScalarField rhorAtU("rhorAtU", rho*rAtU);
+
+ while (pimple.correctNonOrthogonal())
+ {
+ fvScalarMatrix pEqn
+ (
+ fvm::ddt(psi, p)
+ + fvm::div(phid, p)
+ + fvc::div(phic)
+ - fvm::laplacian(rhorAtU, p)
+ ==
+ fvOptions(psi, p, rho.name())
+ );
+
+ pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
+
+ if (pimple.finalNonOrthogonalIter())
+ {
+ phi == phic + pEqn.flux();
+ }
+ }
+}
+else
+{
+ surfaceScalarField phiHbyA
+ (
+ "phiHbyA",
+ (
+ fvc::flux(rho*HbyA)
+ + MRF.zeroFilter(fvc::interpolate(rho*rAU)*fvc::ddtCorr(rho, U, phi))
+ )
+ );
+
+ MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
+
+ phiHbyA += fvc::interpolate(rho*(rAtU - rAU))*fvc::snGrad(p)*mesh.magSf();
+ HbyA -= (rAU - rAtU)*fvc::grad(p);
+
+ volScalarField rhorAtU("rhorAtU", rho*rAtU);
+
+ // Update the pressure BCs to ensure flux consistency
+ constrainPressure(p, rho, U, phiHbyA, rhorAtU, MRF);
+
+ while (pimple.correctNonOrthogonal())
+ {
+ fvScalarMatrix pEqn
+ (
+ fvm::ddt(psi, p)
+ + fvc::div(phiHbyA)
+ - fvm::laplacian(rhorAtU, p)
+ ==
+ fvOptions(psi, p, rho.name())
+ );
+
+ pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
+
+ if (pimple.finalNonOrthogonalIter())
+ {
+ phi = phiHbyA + pEqn.flux();
+ }
+ }
+}
+
+#include "rhoEqn.H"
+#include "compressibleContinuityErrs.H"
+
+// Explicitly relax pressure for momentum corrector
+p.relax();
+
+U = HbyA - rAtU*fvc::grad(p);
+U.correctBoundaryConditions();
+fvOptions.correct(U);
+K = 0.5*magSqr(U);
+
+if (pressureControl.limit(p))
+{
+ p.correctBoundaryConditions();
+ rho = thermo.rho();
+}
+
+if (thermo.dpdt())
+{
+ dpdt = fvc::ddt(p);
+}
diff --git a/applications/solvers/CTreactingFoam/setRDeltaT.H b/applications/solvers/CTreactingFoam/setRDeltaT.H
new file mode 100644
index 000000000..524d64862
--- /dev/null
+++ b/applications/solvers/CTreactingFoam/setRDeltaT.H
@@ -0,0 +1,186 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration | Website: https://openfoam.org
+ \\ / A nd | Copyright (C) 2013-2018 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+\*---------------------------------------------------------------------------*/
+
+{
+ volScalarField& rDeltaT = trDeltaT.ref();
+
+ const dictionary& pimpleDict = pimple.dict();
+
+ // Maximum flow Courant number
+ scalar maxCo(readScalar(pimpleDict.lookup("maxCo")));
+
+ // Maximum time scale
+ scalar maxDeltaT(pimpleDict.lookupOrDefault("maxDeltaT", great));
+
+ // Smoothing parameter (0-1) when smoothing iterations > 0
+ scalar rDeltaTSmoothingCoeff
+ (
+ pimpleDict.lookupOrDefault("rDeltaTSmoothingCoeff", 0.1)
+ );
+
+ // Damping coefficient (1-0)
+ scalar rDeltaTDampingCoeff
+ (
+ pimpleDict.lookupOrDefault("rDeltaTDampingCoeff", 1.0)
+ );
+
+ // Maximum change in cell temperature per iteration
+ // (relative to previous value)
+ scalar alphaTemp(pimpleDict.lookupOrDefault("alphaTemp", 0.05));
+
+ // Maximum change in cell concentration per iteration
+ // (relative to reference value)
+ scalar alphaY(pimpleDict.lookupOrDefault("alphaY", 1.0));
+
+ Info<< "Time scales min/max:" << endl;
+
+ // Cache old reciprocal time scale field
+ volScalarField rDeltaT0("rDeltaT0", rDeltaT);
+
+ // Flow time scale
+ {
+ rDeltaT.ref() =
+ (
+ fvc::surfaceSum(mag(phi))()()
+ /((2*maxCo)*mesh.V()*rho())
+ );
+
+ // Limit the largest time scale
+ rDeltaT.max(1/maxDeltaT);
+
+ Info<< " Flow = "
+ << 1/gMax(rDeltaT.primitiveField()) << ", "
+ << 1/gMin(rDeltaT.primitiveField()) << endl;
+ }
+
+ // Heat release rate time scale
+ if (alphaTemp < 1)
+ {
+ volScalarField::Internal rDeltaTT
+ (
+ mag(Qdot)/(alphaTemp*rho*thermo.Cp()*T)
+ );
+
+ Info<< " Temperature = "
+ << 1/(gMax(rDeltaTT.field()) + vSmall) << ", "
+ << 1/(gMin(rDeltaTT.field()) + vSmall) << endl;
+
+ rDeltaT.ref() = max(rDeltaT(), rDeltaTT);
+ }
+
+ // Reaction rate time scale
+ if (alphaY < 1)
+ {
+ dictionary Yref(pimpleDict.subDict("Yref"));
+
+ volScalarField::Internal rDeltaTY
+ (
+ IOobject
+ (
+ "rDeltaTY",
+ runTime.timeName(),
+ mesh
+ ),
+ mesh,
+ dimensionedScalar("rDeltaTY", rDeltaT.dimensions(), 0)
+ );
+
+ bool foundY = false;
+
+ forAll(Y, i)
+ {
+ if (i != inertIndex && composition.active(i))
+ {
+ volScalarField& Yi = Y[i];
+
+ if (Yref.found(Yi.name()))
+ {
+ foundY = true;
+ scalar Yrefi = readScalar(Yref.lookup(Yi.name()));
+
+ rDeltaTY.field() = max
+ (
+ mag
+ (
+ reaction->R(Yi)().source()
+ /((Yrefi*alphaY)*(rho*mesh.V()))
+ ),
+ rDeltaTY
+ );
+ }
+ }
+ }
+
+ if (foundY)
+ {
+ Info<< " Composition = "
+ << 1/(gMax(rDeltaTY.field()) + vSmall) << ", "
+ << 1/(gMin(rDeltaTY.field()) + vSmall) << endl;
+
+ rDeltaT.ref() = max(rDeltaT(), rDeltaTY);
+ }
+ else
+ {
+ IOWarningIn(args.executable().c_str(), Yref)
+ << "Cannot find any active species in Yref " << Yref
+ << endl;
+ }
+ }
+
+ // Update tho boundary values of the reciprocal time-step
+ rDeltaT.correctBoundaryConditions();
+
+ // Spatially smooth the time scale field
+ if (rDeltaTSmoothingCoeff < 1)
+ {
+ fvc::smooth(rDeltaT, rDeltaTSmoothingCoeff);
+ }
+
+ // Limit rate of change of time scale
+ // - reduce as much as required
+ // - only increase at a fraction of old time scale
+ if
+ (
+ rDeltaTDampingCoeff < 1
+ && runTime.timeIndex() > runTime.startTimeIndex() + 1
+ )
+ {
+ rDeltaT = max
+ (
+ rDeltaT,
+ (scalar(1) - rDeltaTDampingCoeff)*rDeltaT0
+ );
+ }
+
+ // Update tho boundary values of the reciprocal time-step
+ rDeltaT.correctBoundaryConditions();
+
+ Info<< " Overall = "
+ << 1/gMax(rDeltaT.primitiveField())
+ << ", " << 1/gMin(rDeltaT.primitiveField()) << endl;
+}
+
+
+// ************************************************************************* //
diff --git a/applications/solvers/DNS/dnsFoam/Make/options b/applications/solvers/DNS/dnsFoam/Make/options
index ca6ebb8c8..9ba56d21c 100644
--- a/applications/solvers/DNS/dnsFoam/Make/options
+++ b/applications/solvers/DNS/dnsFoam/Make/options
@@ -4,6 +4,8 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lrandomProcesses \
-lfiniteVolume \
-lmeshTools
diff --git a/applications/solvers/basic/laplacianFoam/Make/options b/applications/solvers/basic/laplacianFoam/Make/options
index 04ef6c148..f22a541b0 100644
--- a/applications/solvers/basic/laplacianFoam/Make/options
+++ b/applications/solvers/basic/laplacianFoam/Make/options
@@ -5,4 +5,6 @@ EXE_INC = \
EXE_LIBS = \
-lfiniteVolume \
-lfvOptions \
- -lmeshTools
+ -lmeshTools \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared
diff --git a/applications/solvers/basic/potentialFoam/Make/options b/applications/solvers/basic/potentialFoam/Make/options
index b4ad3d8bd..636aa6413 100644
--- a/applications/solvers/basic/potentialFoam/Make/options
+++ b/applications/solvers/basic/potentialFoam/Make/options
@@ -4,6 +4,8 @@ EXE_INC = \
-I$(LIB_SRC)/sampling/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lmeshTools \
-lsampling
diff --git a/applications/solvers/basic/scalarTransportFoam/Make/options b/applications/solvers/basic/scalarTransportFoam/Make/options
index acbe7a647..fb26f88d7 100644
--- a/applications/solvers/basic/scalarTransportFoam/Make/options
+++ b/applications/solvers/basic/scalarTransportFoam/Make/options
@@ -4,6 +4,8 @@ EXE_INC = \
-I$(LIB_SRC)/sampling/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lfvOptions \
-lmeshTools \
diff --git a/applications/solvers/combustion/PDRFoam/Make/options b/applications/solvers/combustion/PDRFoam/Make/options
index a7c8e12f6..2dd1ff4e9 100644
--- a/applications/solvers/combustion/PDRFoam/Make/options
+++ b/applications/solvers/combustion/PDRFoam/Make/options
@@ -34,6 +34,8 @@ EXE_INC = \
-I$(LIB_SRC)/triSurface/lnInclude \
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lengine \
-lmeshTools \
-lturbulenceModels \
diff --git a/applications/solvers/combustion/XiFoam/Make/options b/applications/solvers/combustion/XiFoam/Make/options
index f659b4dcb..13cc6a0c4 100644
--- a/applications/solvers/combustion/XiFoam/Make/options
+++ b/applications/solvers/combustion/XiFoam/Make/options
@@ -12,6 +12,8 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lengine \
-lturbulenceModels \
-lcompressibleTurbulenceModels \
diff --git a/applications/solvers/combustion/XiFoam/XiEngineFoam/Make/options b/applications/solvers/combustion/XiFoam/XiEngineFoam/Make/options
index 957735be5..207c21aa6 100644
--- a/applications/solvers/combustion/XiFoam/XiEngineFoam/Make/options
+++ b/applications/solvers/combustion/XiFoam/XiEngineFoam/Make/options
@@ -13,6 +13,8 @@ EXE_INC = \
-I$(LIB_SRC)/thermophysicalModels/laminarFlameSpeed/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lfvOptions \
-lsampling \
diff --git a/applications/solvers/combustion/chemFoam/Make/options b/applications/solvers/combustion/chemFoam/Make/options
index 176ec9fd9..42fd35694 100644
--- a/applications/solvers/combustion/chemFoam/Make/options
+++ b/applications/solvers/combustion/chemFoam/Make/options
@@ -6,9 +6,19 @@ EXE_INC = \
-I$(LIB_SRC)/ODE/lnInclude\
-I$(LIB_SRC)/thermophysicalModels/chemistryModel/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \
- -I$(LIB_SRC)/meshTools/lnInclude
+ -I$(LIB_SRC)/meshTools/lnInclude \
+ -I$(WM_CANTERA_DIR) \
+ -I$(WM_CANTERA_DIR)/cantera \
+ -I$(WM_CANTERA_DIR)/cantera/kinetics \
+ -I$(WM_CANTERA_DIR)/cantera/base \
+ -I$(WM_CANTERA_DIR)/cantera/transport \
+ -I$(WM_CANTERA_DIR)/cantera/thermo \
+ -I$(WM_CANTERA_DIR)/cantera/ext \
+ -I$(WM_CANTERA_DIR)/cantera/ext/fmt
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lchemistryModel \
-lfiniteVolume \
- -lmeshTools
+ -lmeshTools
diff --git a/applications/solvers/combustion/coldEngineFoam/Make/options b/applications/solvers/combustion/coldEngineFoam/Make/options
index 1e267e19e..97828c7de 100644
--- a/applications/solvers/combustion/coldEngineFoam/Make/options
+++ b/applications/solvers/combustion/coldEngineFoam/Make/options
@@ -15,6 +15,8 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude \
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lengine \
-lturbulenceModels \
-lcompressibleTurbulenceModels \
diff --git a/applications/solvers/combustion/fireFoam/Make/options b/applications/solvers/combustion/fireFoam/Make/options
index b50245d7e..b5f0d0f25 100644
--- a/applications/solvers/combustion/fireFoam/Make/options
+++ b/applications/solvers/combustion/fireFoam/Make/options
@@ -22,9 +22,19 @@ EXE_INC = \
-I$(LIB_SRC)/regionModels/pyrolysisModels/lnInclude \
-I$(LIB_SRC)/lagrangian/basic/lnInclude \
-I$(LIB_SRC)/lagrangian/intermediate/lnInclude \
- -I$(LIB_SRC)/ODE/lnInclude
+ -I$(LIB_SRC)/ODE/lnInclude \
+ -I$(WM_CANTERA_DIR) \
+ -I$(WM_CANTERA_DIR)/cantera \
+ -I$(WM_CANTERA_DIR)/cantera/kinetics \
+ -I$(WM_CANTERA_DIR)/cantera/base \
+ -I$(WM_CANTERA_DIR)/cantera/transport \
+ -I$(WM_CANTERA_DIR)/cantera/thermo \
+ -I$(WM_CANTERA_DIR)/cantera/ext \
+ -I$(WM_CANTERA_DIR)/cantera/ext/fmt
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lfvOptions \
-lmeshTools \
@@ -47,4 +57,4 @@ EXE_LIBS = \
-lregionCoupling \
-llagrangianIntermediate \
-llagrangianTurbulence \
- -lODE
+ -lODE
diff --git a/applications/solvers/combustion/reactingFoam/Make/options b/applications/solvers/combustion/reactingFoam/Make/options
index 6363f6d80..3d21528d4 100644
--- a/applications/solvers/combustion/reactingFoam/Make/options
+++ b/applications/solvers/combustion/reactingFoam/Make/options
@@ -10,9 +10,19 @@ EXE_INC = \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/chemistryModel/lnInclude \
-I$(LIB_SRC)/ODE/lnInclude \
- -I$(LIB_SRC)/combustionModels/lnInclude
+ -I$(LIB_SRC)/combustionModels/lnInclude \
+ -I$(WM_CANTERA_DIR) \
+ -I$(WM_CANTERA_DIR)/cantera \
+ -I$(WM_CANTERA_DIR)/cantera/kinetics \
+ -I$(WM_CANTERA_DIR)/cantera/base \
+ -I$(WM_CANTERA_DIR)/cantera/transport \
+ -I$(WM_CANTERA_DIR)/cantera/thermo \
+ -I$(WM_CANTERA_DIR)/cantera/ext \
+ -I$(WM_CANTERA_DIR)/cantera/ext/fmt
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lfvOptions \
-lmeshTools \
diff --git a/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/Make/options b/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/Make/options
index b403a0268..4ae944649 100644
--- a/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/Make/options
+++ b/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/Make/options
@@ -16,6 +16,8 @@ EXE_INC = \
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lfvOptions \
-lmeshTools \
diff --git a/applications/solvers/combustion/reactingFoam/rhoReactingFoam/Make/options b/applications/solvers/combustion/reactingFoam/rhoReactingFoam/Make/options
index b403a0268..4ae944649 100644
--- a/applications/solvers/combustion/reactingFoam/rhoReactingFoam/Make/options
+++ b/applications/solvers/combustion/reactingFoam/rhoReactingFoam/Make/options
@@ -16,6 +16,8 @@ EXE_INC = \
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lfvOptions \
-lmeshTools \
diff --git a/applications/solvers/compressible/rhoCentralFoam/Make/options b/applications/solvers/compressible/rhoCentralFoam/Make/options
index 24fc2d966..6d489635a 100644
--- a/applications/solvers/compressible/rhoCentralFoam/Make/options
+++ b/applications/solvers/compressible/rhoCentralFoam/Make/options
@@ -10,6 +10,8 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lfvOptions \
-lcompressibleTransportModels \
diff --git a/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/Make/options b/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/Make/options
index 29b8a6faa..d694e2d59 100644
--- a/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/Make/options
+++ b/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/Make/options
@@ -12,6 +12,8 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lfvOptions \
-lcompressibleTransportModels \
diff --git a/applications/solvers/compressible/rhoPimpleFoam/Make/options b/applications/solvers/compressible/rhoPimpleFoam/Make/options
index c3f820e3b..952189af2 100644
--- a/applications/solvers/compressible/rhoPimpleFoam/Make/options
+++ b/applications/solvers/compressible/rhoPimpleFoam/Make/options
@@ -11,6 +11,8 @@ EXE_INC = \
-I$(LIB_SRC)/dynamicMesh/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lcompressibleTransportModels \
-lfluidThermophysicalModels \
-lspecie \
diff --git a/applications/solvers/compressible/rhoSimpleFoam/Make/options b/applications/solvers/compressible/rhoSimpleFoam/Make/options
index aecfa919e..98a5e0729 100644
--- a/applications/solvers/compressible/rhoSimpleFoam/Make/options
+++ b/applications/solvers/compressible/rhoSimpleFoam/Make/options
@@ -9,6 +9,8 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude \
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lcompressibleTransportModels \
-lfluidThermophysicalModels \
-lspecie \
diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/Make/options b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/Make/options
index 02ddee513..6f4f3f869 100644
--- a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/Make/options
+++ b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/Make/options
@@ -11,6 +11,8 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude \
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lcompressibleTransportModels \
-lfluidThermophysicalModels \
-lspecie \
diff --git a/applications/solvers/compressible/sonicFoam/Make/options b/applications/solvers/compressible/sonicFoam/Make/options
index 35d223f26..df603b9b8 100644
--- a/applications/solvers/compressible/sonicFoam/Make/options
+++ b/applications/solvers/compressible/sonicFoam/Make/options
@@ -8,6 +8,8 @@ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lcompressibleTransportModels \
-lfluidThermophysicalModels \
-lspecie \
diff --git a/applications/solvers/compressible/sonicFoam/sonicDyMFoam/Make/options b/applications/solvers/compressible/sonicFoam/sonicDyMFoam/Make/options
index fdca07420..656ec136f 100644
--- a/applications/solvers/compressible/sonicFoam/sonicDyMFoam/Make/options
+++ b/applications/solvers/compressible/sonicFoam/sonicDyMFoam/Make/options
@@ -13,6 +13,8 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude \
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lcompressibleTransportModels \
-lfluidThermophysicalModels \
-lspecie \
diff --git a/applications/solvers/compressible/sonicFoam/sonicLiquidFoam/Make/options b/applications/solvers/compressible/sonicFoam/sonicLiquidFoam/Make/options
index d27c95d03..f85dc2e15 100644
--- a/applications/solvers/compressible/sonicFoam/sonicLiquidFoam/Make/options
+++ b/applications/solvers/compressible/sonicFoam/sonicLiquidFoam/Make/options
@@ -3,5 +3,7 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lmeshTools
diff --git a/applications/solvers/discreteMethods/dsmc/dsmcFoam/Make/options b/applications/solvers/discreteMethods/dsmc/dsmcFoam/Make/options
index fa35b0bbd..e9165087e 100644
--- a/applications/solvers/discreteMethods/dsmc/dsmcFoam/Make/options
+++ b/applications/solvers/discreteMethods/dsmc/dsmcFoam/Make/options
@@ -5,6 +5,8 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lmeshTools \
-lfiniteVolume \
-llagrangian \
diff --git a/applications/solvers/discreteMethods/molecularDynamics/mdEquilibrationFoam/Make/options b/applications/solvers/discreteMethods/molecularDynamics/mdEquilibrationFoam/Make/options
index 91cab4609..1ce10ec8c 100644
--- a/applications/solvers/discreteMethods/molecularDynamics/mdEquilibrationFoam/Make/options
+++ b/applications/solvers/discreteMethods/molecularDynamics/mdEquilibrationFoam/Make/options
@@ -7,6 +7,8 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lmeshTools \
-lfiniteVolume \
-llagrangian \
diff --git a/applications/solvers/discreteMethods/molecularDynamics/mdFoam/Make/options b/applications/solvers/discreteMethods/molecularDynamics/mdFoam/Make/options
index 91cab4609..1ce10ec8c 100644
--- a/applications/solvers/discreteMethods/molecularDynamics/mdFoam/Make/options
+++ b/applications/solvers/discreteMethods/molecularDynamics/mdFoam/Make/options
@@ -7,6 +7,8 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lmeshTools \
-lfiniteVolume \
-llagrangian \
diff --git a/applications/solvers/electromagnetics/electrostaticFoam/Make/options b/applications/solvers/electromagnetics/electrostaticFoam/Make/options
index d27c95d03..f85dc2e15 100644
--- a/applications/solvers/electromagnetics/electrostaticFoam/Make/options
+++ b/applications/solvers/electromagnetics/electrostaticFoam/Make/options
@@ -3,5 +3,7 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lmeshTools
diff --git a/applications/solvers/electromagnetics/magneticFoam/Make/options b/applications/solvers/electromagnetics/magneticFoam/Make/options
index d27c95d03..f85dc2e15 100644
--- a/applications/solvers/electromagnetics/magneticFoam/Make/options
+++ b/applications/solvers/electromagnetics/magneticFoam/Make/options
@@ -3,5 +3,7 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lmeshTools
diff --git a/applications/solvers/electromagnetics/mhdFoam/Make/options b/applications/solvers/electromagnetics/mhdFoam/Make/options
index d27c95d03..f85dc2e15 100644
--- a/applications/solvers/electromagnetics/mhdFoam/Make/options
+++ b/applications/solvers/electromagnetics/mhdFoam/Make/options
@@ -3,5 +3,7 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lmeshTools
diff --git a/applications/solvers/financial/financialFoam/Make/options b/applications/solvers/financial/financialFoam/Make/options
index b4ad3d8bd..636aa6413 100644
--- a/applications/solvers/financial/financialFoam/Make/options
+++ b/applications/solvers/financial/financialFoam/Make/options
@@ -4,6 +4,8 @@ EXE_INC = \
-I$(LIB_SRC)/sampling/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lmeshTools \
-lsampling
diff --git a/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/Make/options b/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/Make/options
index 043be5d13..e34834bf7 100644
--- a/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/Make/options
+++ b/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/Make/options
@@ -11,6 +11,8 @@ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lturbulenceModels \
-lincompressibleTurbulenceModels \
-lincompressibleTransportModels \
diff --git a/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/Make/options b/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/Make/options
index 904699412..965512bda 100644
--- a/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/Make/options
+++ b/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/Make/options
@@ -9,6 +9,8 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude \
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lturbulenceModels \
-lincompressibleTurbulenceModels \
-lincompressibleTransportModels \
diff --git a/applications/solvers/heatTransfer/buoyantPimpleFoam/Make/options b/applications/solvers/heatTransfer/buoyantPimpleFoam/Make/options
index 934083f2b..3bb10406f 100644
--- a/applications/solvers/heatTransfer/buoyantPimpleFoam/Make/options
+++ b/applications/solvers/heatTransfer/buoyantPimpleFoam/Make/options
@@ -9,6 +9,8 @@ EXE_INC = \
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lsampling \
-lmeshTools \
diff --git a/applications/solvers/heatTransfer/buoyantSimpleFoam/Make/options b/applications/solvers/heatTransfer/buoyantSimpleFoam/Make/options
index 0d9433bac..7edba88dd 100644
--- a/applications/solvers/heatTransfer/buoyantSimpleFoam/Make/options
+++ b/applications/solvers/heatTransfer/buoyantSimpleFoam/Make/options
@@ -9,6 +9,8 @@ EXE_INC = \
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lfvOptions \
-lsampling \
diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/Make/options b/applications/solvers/heatTransfer/chtMultiRegionFoam/Make/options
index 2b9836121..dbba8da42 100644
--- a/applications/solvers/heatTransfer/chtMultiRegionFoam/Make/options
+++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/Make/options
@@ -24,6 +24,8 @@ EXE_INC = \
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lcompressibleTransportModels \
-lfluidThermophysicalModels \
-lspecie \
diff --git a/applications/solvers/heatTransfer/thermoFoam/Make/options b/applications/solvers/heatTransfer/thermoFoam/Make/options
index 934083f2b..3bb10406f 100644
--- a/applications/solvers/heatTransfer/thermoFoam/Make/options
+++ b/applications/solvers/heatTransfer/thermoFoam/Make/options
@@ -9,6 +9,8 @@ EXE_INC = \
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lsampling \
-lmeshTools \
diff --git a/applications/solvers/incompressible/adjointShapeOptimizationFoam/Make/options b/applications/solvers/incompressible/adjointShapeOptimizationFoam/Make/options
index 4fcb4c778..799707e10 100644
--- a/applications/solvers/incompressible/adjointShapeOptimizationFoam/Make/options
+++ b/applications/solvers/incompressible/adjointShapeOptimizationFoam/Make/options
@@ -10,6 +10,8 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude \
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lturbulenceModels \
-lincompressibleTurbulenceModels \
-lincompressibleTransportModels \
diff --git a/applications/solvers/incompressible/boundaryFoam/Make/options b/applications/solvers/incompressible/boundaryFoam/Make/options
index 9af500124..ba5fe2332 100644
--- a/applications/solvers/incompressible/boundaryFoam/Make/options
+++ b/applications/solvers/incompressible/boundaryFoam/Make/options
@@ -8,6 +8,8 @@ EXE_INC = \
-I$(LIB_SRC)/sampling/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lturbulenceModels \
-lincompressibleTurbulenceModels \
-lincompressibleTransportModels \
diff --git a/applications/solvers/incompressible/icoFoam/Make/options b/applications/solvers/incompressible/icoFoam/Make/options
index d27c95d03..f85dc2e15 100644
--- a/applications/solvers/incompressible/icoFoam/Make/options
+++ b/applications/solvers/incompressible/icoFoam/Make/options
@@ -3,5 +3,7 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lmeshTools
diff --git a/applications/solvers/incompressible/nonNewtonianIcoFoam/Make/options b/applications/solvers/incompressible/nonNewtonianIcoFoam/Make/options
index a3c242605..3ad42dd0a 100644
--- a/applications/solvers/incompressible/nonNewtonianIcoFoam/Make/options
+++ b/applications/solvers/incompressible/nonNewtonianIcoFoam/Make/options
@@ -5,6 +5,8 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lincompressibleTransportModels \
-lfiniteVolume \
-lmeshTools
diff --git a/applications/solvers/incompressible/pimpleFoam/Make/options b/applications/solvers/incompressible/pimpleFoam/Make/options
index 14a5a2d92..bea3ee79c 100644
--- a/applications/solvers/incompressible/pimpleFoam/Make/options
+++ b/applications/solvers/incompressible/pimpleFoam/Make/options
@@ -10,6 +10,8 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude \
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lturbulenceModels \
-lincompressibleTurbulenceModels \
-lincompressibleTransportModels \
diff --git a/applications/solvers/incompressible/pimpleFoam/SRFPimpleFoam/Make/options b/applications/solvers/incompressible/pimpleFoam/SRFPimpleFoam/Make/options
index 4c2a78fa5..0f9b8f1a9 100644
--- a/applications/solvers/incompressible/pimpleFoam/SRFPimpleFoam/Make/options
+++ b/applications/solvers/incompressible/pimpleFoam/SRFPimpleFoam/Make/options
@@ -10,6 +10,8 @@ EXE_INC = \
-I$(LIB_SRC)/sampling/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lturbulenceModels \
-lincompressibleTurbulenceModels \
-lincompressibleTransportModels \
diff --git a/applications/solvers/incompressible/pisoFoam/Make/options b/applications/solvers/incompressible/pisoFoam/Make/options
index 9af500124..ba5fe2332 100644
--- a/applications/solvers/incompressible/pisoFoam/Make/options
+++ b/applications/solvers/incompressible/pisoFoam/Make/options
@@ -8,6 +8,8 @@ EXE_INC = \
-I$(LIB_SRC)/sampling/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lturbulenceModels \
-lincompressibleTurbulenceModels \
-lincompressibleTransportModels \
diff --git a/applications/solvers/incompressible/shallowWaterFoam/Make/options b/applications/solvers/incompressible/shallowWaterFoam/Make/options
index d27c95d03..f85dc2e15 100644
--- a/applications/solvers/incompressible/shallowWaterFoam/Make/options
+++ b/applications/solvers/incompressible/shallowWaterFoam/Make/options
@@ -3,5 +3,7 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lmeshTools
diff --git a/applications/solvers/incompressible/simpleFoam/Make/options b/applications/solvers/incompressible/simpleFoam/Make/options
index 1d9ded80b..c8f76ed20 100644
--- a/applications/solvers/incompressible/simpleFoam/Make/options
+++ b/applications/solvers/incompressible/simpleFoam/Make/options
@@ -9,6 +9,8 @@ EXE_INC = \
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lturbulenceModels \
-lincompressibleTurbulenceModels \
-lincompressibleTransportModels \
diff --git a/applications/solvers/incompressible/simpleFoam/SRFSimpleFoam/Make/options b/applications/solvers/incompressible/simpleFoam/SRFSimpleFoam/Make/options
index 90df60107..bd30d3ced 100644
--- a/applications/solvers/incompressible/simpleFoam/SRFSimpleFoam/Make/options
+++ b/applications/solvers/incompressible/simpleFoam/SRFSimpleFoam/Make/options
@@ -10,6 +10,8 @@ EXE_INC = \
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lturbulenceModels \
-lincompressibleTurbulenceModels \
-lincompressibleTransportModels \
diff --git a/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/Make/options b/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/Make/options
index 90df60107..bd30d3ced 100644
--- a/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/Make/options
+++ b/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/Make/options
@@ -10,6 +10,8 @@ EXE_INC = \
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lturbulenceModels \
-lincompressibleTurbulenceModels \
-lincompressibleTransportModels \
diff --git a/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/MPPICDyMFoam/Make/options b/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/MPPICDyMFoam/Make/options
index 741b07f6c..bda31e9d5 100644
--- a/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/MPPICDyMFoam/Make/options
+++ b/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/MPPICDyMFoam/Make/options
@@ -22,6 +22,8 @@ EXE_INC = \
-I$(LIB_SRC)/dynamicMesh/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lfvOptions \
-lmeshTools \
diff --git a/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/Make/options b/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/Make/options
index a4c0fcc13..2c7b0be56 100644
--- a/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/Make/options
+++ b/applications/solvers/lagrangian/DPMFoam/DPMDyMFoam/Make/options
@@ -21,6 +21,8 @@ EXE_INC = \
-I$(LIB_SRC)/dynamicMesh/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-llagrangian \
-llagrangianIntermediate \
-llagrangianTurbulence \
diff --git a/applications/solvers/lagrangian/DPMFoam/MPPICFoam/Make/options b/applications/solvers/lagrangian/DPMFoam/MPPICFoam/Make/options
index b0eaf6453..626e73428 100644
--- a/applications/solvers/lagrangian/DPMFoam/MPPICFoam/Make/options
+++ b/applications/solvers/lagrangian/DPMFoam/MPPICFoam/Make/options
@@ -19,6 +19,8 @@ EXE_INC = \
-I$(LIB_SRC)/regionModels/surfaceFilmModels/lnInclude \
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lfvOptions \
-lmeshTools \
diff --git a/applications/solvers/lagrangian/DPMFoam/Make/options b/applications/solvers/lagrangian/DPMFoam/Make/options
index b1f295e29..4a1ef3292 100644
--- a/applications/solvers/lagrangian/DPMFoam/Make/options
+++ b/applications/solvers/lagrangian/DPMFoam/Make/options
@@ -18,6 +18,8 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-llagrangian \
-llagrangianIntermediate \
-llagrangianTurbulence \
diff --git a/applications/solvers/lagrangian/coalChemistryFoam/Make/options b/applications/solvers/lagrangian/coalChemistryFoam/Make/options
index c4a1e2feb..57531e7ad 100644
--- a/applications/solvers/lagrangian/coalChemistryFoam/Make/options
+++ b/applications/solvers/lagrangian/coalChemistryFoam/Make/options
@@ -23,6 +23,8 @@ EXE_INC = \
-I$(LIB_SRC)/sampling/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lmeshTools \
-lturbulenceModels \
diff --git a/applications/solvers/lagrangian/icoUncoupledKinematicParcelFoam/Make/options b/applications/solvers/lagrangian/icoUncoupledKinematicParcelFoam/Make/options
index aebc4519b..c2d976944 100644
--- a/applications/solvers/lagrangian/icoUncoupledKinematicParcelFoam/Make/options
+++ b/applications/solvers/lagrangian/icoUncoupledKinematicParcelFoam/Make/options
@@ -16,6 +16,8 @@ EXE_INC = \
-I$(LIB_SRC)/regionModels/surfaceFilmModels/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-llagrangian \
-llagrangianIntermediate \
-llagrangianTurbulence \
diff --git a/applications/solvers/lagrangian/icoUncoupledKinematicParcelFoam/icoUncoupledKinematicParcelDyMFoam/Make/options b/applications/solvers/lagrangian/icoUncoupledKinematicParcelFoam/icoUncoupledKinematicParcelDyMFoam/Make/options
index 76fa725a3..801b2c07d 100644
--- a/applications/solvers/lagrangian/icoUncoupledKinematicParcelFoam/icoUncoupledKinematicParcelDyMFoam/Make/options
+++ b/applications/solvers/lagrangian/icoUncoupledKinematicParcelFoam/icoUncoupledKinematicParcelDyMFoam/Make/options
@@ -20,6 +20,8 @@ EXE_INC = \
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-llagrangian \
-llagrangianIntermediate \
-llagrangianTurbulence \
diff --git a/applications/solvers/lagrangian/reactingParcelFoam/Make/options b/applications/solvers/lagrangian/reactingParcelFoam/Make/options
index 3951ecdbf..c4a1edf87 100644
--- a/applications/solvers/lagrangian/reactingParcelFoam/Make/options
+++ b/applications/solvers/lagrangian/reactingParcelFoam/Make/options
@@ -24,6 +24,8 @@ EXE_INC = \
-I$(FOAM_SOLVERS)/combustion/reactingFoam
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lfvOptions \
-lsampling \
diff --git a/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/Make/options b/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/Make/options
index a67ee74ec..139ed69a7 100644
--- a/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/Make/options
+++ b/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/Make/options
@@ -25,6 +25,8 @@ EXE_INC = \
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lmeshTools \
-lturbulenceModels \
diff --git a/applications/solvers/lagrangian/sprayFoam/Make/options b/applications/solvers/lagrangian/sprayFoam/Make/options
index 2a2773825..0e5ae1d6c 100644
--- a/applications/solvers/lagrangian/sprayFoam/Make/options
+++ b/applications/solvers/lagrangian/sprayFoam/Make/options
@@ -24,6 +24,8 @@ EXE_INC = \
-I$(LIB_SRC)/combustionModels/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lturbulenceModels \
-lcompressibleTurbulenceModels \
-llagrangian \
diff --git a/applications/solvers/lagrangian/sprayFoam/engineFoam/Make/options b/applications/solvers/lagrangian/sprayFoam/engineFoam/Make/options
index 4dc1ac036..1a9a41b28 100644
--- a/applications/solvers/lagrangian/sprayFoam/engineFoam/Make/options
+++ b/applications/solvers/lagrangian/sprayFoam/engineFoam/Make/options
@@ -28,6 +28,8 @@ EXE_INC = \
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lmeshTools \
-lsampling \
diff --git a/applications/solvers/lagrangian/sprayFoam/sprayDyMFoam/Make/options b/applications/solvers/lagrangian/sprayFoam/sprayDyMFoam/Make/options
index d53d6614e..99c8bc4b9 100644
--- a/applications/solvers/lagrangian/sprayFoam/sprayDyMFoam/Make/options
+++ b/applications/solvers/lagrangian/sprayFoam/sprayDyMFoam/Make/options
@@ -28,6 +28,8 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lturbulenceModels \
-lcompressibleTurbulenceModels \
-llagrangian \
diff --git a/applications/solvers/lagrangian/uncoupledKinematicParcelFoam/Make/options b/applications/solvers/lagrangian/uncoupledKinematicParcelFoam/Make/options
index 639909b38..c56f36a39 100644
--- a/applications/solvers/lagrangian/uncoupledKinematicParcelFoam/Make/options
+++ b/applications/solvers/lagrangian/uncoupledKinematicParcelFoam/Make/options
@@ -14,6 +14,8 @@ EXE_INC = \
-I$(LIB_SRC)/regionModels/surfaceFilmModels/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-llagrangian \
-llagrangianIntermediate \
-llagrangianTurbulence \
diff --git a/applications/solvers/lagrangian/uncoupledKinematicParcelFoam/uncoupledKinematicParcelDyMFoam/Make/options b/applications/solvers/lagrangian/uncoupledKinematicParcelFoam/uncoupledKinematicParcelDyMFoam/Make/options
index 2d385f985..60a94e11a 100644
--- a/applications/solvers/lagrangian/uncoupledKinematicParcelFoam/uncoupledKinematicParcelDyMFoam/Make/options
+++ b/applications/solvers/lagrangian/uncoupledKinematicParcelFoam/uncoupledKinematicParcelDyMFoam/Make/options
@@ -17,6 +17,8 @@ EXE_INC = \
-I$(LIB_SRC)/dynamicFvMesh/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-llagrangian \
-llagrangianIntermediate \
-llagrangianTurbulence \
diff --git a/applications/solvers/multiphase/cavitatingFoam/Make/options b/applications/solvers/multiphase/cavitatingFoam/Make/options
index 02d5a1cc3..f6db792ce 100644
--- a/applications/solvers/multiphase/cavitatingFoam/Make/options
+++ b/applications/solvers/multiphase/cavitatingFoam/Make/options
@@ -10,6 +10,8 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lturbulenceModels \
-lincompressibleTurbulenceModels \
-lbarotropicCompressibilityModel \
diff --git a/applications/solvers/multiphase/cavitatingFoam/cavitatingDyMFoam/Make/options b/applications/solvers/multiphase/cavitatingFoam/cavitatingDyMFoam/Make/options
index b5d7b2cdf..19223c5e8 100644
--- a/applications/solvers/multiphase/cavitatingFoam/cavitatingDyMFoam/Make/options
+++ b/applications/solvers/multiphase/cavitatingFoam/cavitatingDyMFoam/Make/options
@@ -13,6 +13,8 @@ EXE_INC = \
-I$(LIB_SRC)/dynamicFvMesh/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lturbulenceModels \
-lincompressibleTurbulenceModels \
-lbarotropicCompressibilityModel \
diff --git a/applications/solvers/multiphase/compressibleInterFoam/Make/options b/applications/solvers/multiphase/compressibleInterFoam/Make/options
index 57c4b80dc..b83d680ad 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/Make/options
+++ b/applications/solvers/multiphase/compressibleInterFoam/Make/options
@@ -14,6 +14,8 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-ltwoPhaseMixtureThermo \
-ltwoPhaseSurfaceTension \
-lcompressibleTransportModels \
diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/Make/options b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/Make/options
index 53bc21ead..2a0c61e41 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/Make/options
+++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/Make/options
@@ -17,6 +17,8 @@ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-ltwoPhaseMixtureThermo \
-ltwoPhaseSurfaceTension \
-lcompressibleTransportModels \
diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFilmFoam/Make/options b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFilmFoam/Make/options
index a192ce05f..8644c358b 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFilmFoam/Make/options
+++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFilmFoam/Make/options
@@ -27,6 +27,8 @@ EXE_INC = \
-I$(LIB_SRC)/fvOptions/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-ltwoPhaseMixtureThermo \
-ltwoPhaseSurfaceTension \
-lcompressibleTransportModels \
diff --git a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/Make/options b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/Make/options
index 9df3add9e..50f8544ec 100644
--- a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/Make/options
+++ b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/Make/options
@@ -13,6 +13,8 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lmultiphaseMixtureThermo \
-lcompressibleTransportModels \
-lfluidThermophysicalModels \
diff --git a/applications/solvers/multiphase/driftFluxFoam/Make/options b/applications/solvers/multiphase/driftFluxFoam/Make/options
index a92f59982..f3c251c36 100644
--- a/applications/solvers/multiphase/driftFluxFoam/Make/options
+++ b/applications/solvers/multiphase/driftFluxFoam/Make/options
@@ -12,6 +12,8 @@ EXE_INC = \
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-ldriftFluxTransportModels \
-ldriftFluxRelativeVelocityModels \
-lfiniteVolume \
diff --git a/applications/solvers/multiphase/interFoam/Make/options b/applications/solvers/multiphase/interFoam/Make/options
index 6ecfb3a65..9489b9839 100644
--- a/applications/solvers/multiphase/interFoam/Make/options
+++ b/applications/solvers/multiphase/interFoam/Make/options
@@ -13,6 +13,8 @@ EXE_INC = \
-I$(LIB_SRC)/sampling/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-limmiscibleIncompressibleTwoPhaseMixture \
-lturbulenceModels \
-lincompressibleTurbulenceModels \
diff --git a/applications/solvers/multiphase/interFoam/interMixingFoam/Make/options b/applications/solvers/multiphase/interFoam/interMixingFoam/Make/options
index bc2bd05da..dab5644f6 100644
--- a/applications/solvers/multiphase/interFoam/interMixingFoam/Make/options
+++ b/applications/solvers/multiphase/interFoam/interMixingFoam/Make/options
@@ -17,6 +17,8 @@ EXE_INC = \
-I$(LIB_SRC)/sampling/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-ltwoPhaseMixture \
-ltwoPhaseProperties \
-lincompressibleTransportModels \
diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/Make/options b/applications/solvers/multiphase/interPhaseChangeFoam/Make/options
index a29ad660e..a41230878 100644
--- a/applications/solvers/multiphase/interPhaseChangeFoam/Make/options
+++ b/applications/solvers/multiphase/interPhaseChangeFoam/Make/options
@@ -11,6 +11,8 @@ EXE_INC = \
-I$(LIB_SRC)/sampling/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lphaseChangeTwoPhaseMixtures \
-ltwoPhaseMixture \
-linterfaceProperties \
diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/Make/options b/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/Make/options
index 0a4397e06..79adfdaaf 100644
--- a/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/Make/options
+++ b/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/Make/options
@@ -14,6 +14,8 @@ EXE_INC = \
-I$(LIB_SRC)/sampling/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lphaseChangeTwoPhaseMixtures \
-ltwoPhaseMixture \
-linterfaceProperties \
diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/Make/options b/applications/solvers/multiphase/multiphaseEulerFoam/Make/options
index a841d0136..7395461ca 100644
--- a/applications/solvers/multiphase/multiphaseEulerFoam/Make/options
+++ b/applications/solvers/multiphase/multiphaseEulerFoam/Make/options
@@ -13,6 +13,8 @@ EXE_INC = \
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lmultiphaseSystem \
-linterfaceProperties \
-lincompressibleTransportModels \
diff --git a/applications/solvers/multiphase/multiphaseInterFoam/Make/options b/applications/solvers/multiphase/multiphaseInterFoam/Make/options
index 3b41b5a13..144f67a80 100644
--- a/applications/solvers/multiphase/multiphaseInterFoam/Make/options
+++ b/applications/solvers/multiphase/multiphaseInterFoam/Make/options
@@ -14,6 +14,8 @@ EXE_INC = \
-I$(LIB_SRC)/sampling/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lmultiphaseInterFoam \
-linterfaceProperties \
-lincompressibleTransportModels \
diff --git a/applications/solvers/multiphase/potentialFreeSurfaceFoam/Make/options b/applications/solvers/multiphase/potentialFreeSurfaceFoam/Make/options
index 2026e36fb..3dfa184c7 100644
--- a/applications/solvers/multiphase/potentialFreeSurfaceFoam/Make/options
+++ b/applications/solvers/multiphase/potentialFreeSurfaceFoam/Make/options
@@ -9,6 +9,8 @@ EXE_INC = \
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lincompressibleTransportModels \
-lturbulenceModels \
-lincompressibleTurbulenceModels \
diff --git a/applications/solvers/multiphase/potentialFreeSurfaceFoam/potentialFreeSurfaceDyMFoam/Make/options b/applications/solvers/multiphase/potentialFreeSurfaceFoam/potentialFreeSurfaceDyMFoam/Make/options
index eca0dd4fc..2c11d346a 100644
--- a/applications/solvers/multiphase/potentialFreeSurfaceFoam/potentialFreeSurfaceDyMFoam/Make/options
+++ b/applications/solvers/multiphase/potentialFreeSurfaceFoam/potentialFreeSurfaceDyMFoam/Make/options
@@ -13,6 +13,8 @@ EXE_INC = \
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lincompressibleTransportModels \
-lturbulenceModels \
-lincompressibleTurbulenceModels \
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/Make/options b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/Make/options
index 7d27fdb05..97c9f647a 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/Make/options
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialCompositionModels/Make/options
@@ -12,9 +12,19 @@ EXE_INC = \
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/phaseCompressible/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \
- -I$(LIB_SRC)/meshTools/lnInclude
+ -I$(LIB_SRC)/meshTools/lnInclude \
+ -I$(WM_CANTERA_DIR) \
+ -I$(WM_CANTERA_DIR)/cantera \
+ -I$(WM_CANTERA_DIR)/cantera/kinetics \
+ -I$(WM_CANTERA_DIR)/cantera/base \
+ -I$(WM_CANTERA_DIR)/cantera/transport \
+ -I$(WM_CANTERA_DIR)/cantera/thermo \
+ -I$(WM_CANTERA_DIR)/cantera/ext \
+ -I$(WM_CANTERA_DIR)/cantera/ext/fmt
LIB_LIBS = \
-lfluidThermophysicalModels \
-lreactionThermophysicalModels \
- -lspecie
+ -lspecie \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/Make/options b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/Make/options
index 1e5f8f0ae..3c583df42 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/Make/options
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/Make/options
@@ -7,9 +7,19 @@ EXE_INC = \
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/phaseCompressible/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \
- -I$(LIB_SRC)/meshTools/lnInclude
+ -I$(LIB_SRC)/meshTools/lnInclude \
+ -I$(WM_CANTERA_DIR) \
+ -I$(WM_CANTERA_DIR)/cantera \
+ -I$(WM_CANTERA_DIR)/cantera/kinetics \
+ -I$(WM_CANTERA_DIR)/cantera/base \
+ -I$(WM_CANTERA_DIR)/cantera/transport \
+ -I$(WM_CANTERA_DIR)/cantera/thermo \
+ -I$(WM_CANTERA_DIR)/cantera/ext \
+ -I$(WM_CANTERA_DIR)/cantera/ext/fmt
LIB_LIBS = \
-lcompressibleTransportModels \
-lfluidThermophysicalModels \
- -lspecie
+ -lspecie \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared
diff --git a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/Make/options b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/Make/options
index aa2c1fa5a..68496229d 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/Make/options
+++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/Make/options
@@ -12,7 +12,18 @@ EXE_INC = \
-I$(LIB_SRC)/combustionModels/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
- -I$(LIB_SRC)/sampling/lnInclude
+ -I$(LIB_SRC)/sampling/lnInclude \
+ -I$(WM_CANTERA_DIR) \
+ -I$(WM_CANTERA_DIR)/cantera \
+ -I$(WM_CANTERA_DIR)/cantera/kinetics \
+ -I$(WM_CANTERA_DIR)/cantera/base \
+ -I$(WM_CANTERA_DIR)/cantera/transport \
+ -I$(WM_CANTERA_DIR)/cantera/thermo \
+ -I$(WM_CANTERA_DIR)/cantera/ext \
+ -I$(WM_CANTERA_DIR)/cantera/ext/fmt
LIB_LIBS = \
- -lcombustionModels
+ -L$(FOAM_USER_LIBBIN) \
+ -lcombustionModels \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/Make/options b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/Make/options
index 06caef01d..62dfc38e0 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/Make/options
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/Make/options
@@ -14,6 +14,8 @@ EXE_INC = \
-I$(LIB_SRC)/sampling/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lreactingPhaseSystem \
-lreactingMultiphaseSystem \
-lreactingEulerianInterfacialModels \
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/Make/options b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/Make/options
index 5216efaa9..c00280aca 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/Make/options
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/Make/options
@@ -14,6 +14,8 @@ EXE_INC = \
-I$(LIB_SRC)/sampling/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lreactingPhaseSystem \
-lreactingTwoPhaseSystem \
-lreactingEulerianInterfacialModels \
diff --git a/applications/solvers/multiphase/twoLiquidMixingFoam/Make/options b/applications/solvers/multiphase/twoLiquidMixingFoam/Make/options
index e9549744c..1e3affc99 100644
--- a/applications/solvers/multiphase/twoLiquidMixingFoam/Make/options
+++ b/applications/solvers/multiphase/twoLiquidMixingFoam/Make/options
@@ -11,6 +11,8 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-ltwoPhaseMixture \
-lturbulenceModels \
-lincompressibleTurbulenceModels \
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/Make/options b/applications/solvers/multiphase/twoPhaseEulerFoam/Make/options
index f5255ec17..a143c1754 100644
--- a/applications/solvers/multiphase/twoPhaseEulerFoam/Make/options
+++ b/applications/solvers/multiphase/twoPhaseEulerFoam/Make/options
@@ -13,6 +13,8 @@ EXE_INC = \
-I$(LIB_SRC)/sampling/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lcompressibleTransportModels \
-lfluidThermophysicalModels \
-lspecie \
diff --git a/applications/solvers/stressAnalysis/solidDisplacementFoam/Make/options b/applications/solvers/stressAnalysis/solidDisplacementFoam/Make/options
index 5a13b8829..f888f41a4 100644
--- a/applications/solvers/stressAnalysis/solidDisplacementFoam/Make/options
+++ b/applications/solvers/stressAnalysis/solidDisplacementFoam/Make/options
@@ -5,5 +5,7 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lmeshTools
diff --git a/applications/solvers/stressAnalysis/solidEquilibriumDisplacementFoam/Make/options b/applications/solvers/stressAnalysis/solidEquilibriumDisplacementFoam/Make/options
index 24377db11..aec0027f6 100644
--- a/applications/solvers/stressAnalysis/solidEquilibriumDisplacementFoam/Make/options
+++ b/applications/solvers/stressAnalysis/solidEquilibriumDisplacementFoam/Make/options
@@ -6,5 +6,7 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lmeshTools
diff --git a/applications/test/Function1/Make/options b/applications/test/Function1/Make/options
index f7182cb4c..915b63244 100644
--- a/applications/test/Function1/Make/options
+++ b/applications/test/Function1/Make/options
@@ -6,6 +6,8 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-llagrangianIntermediate \
-lradiationModels \
-lregionModels \
diff --git a/applications/test/GAMGAgglomeration/Make/options b/applications/test/GAMGAgglomeration/Make/options
index d27c95d03..f85dc2e15 100644
--- a/applications/test/GAMGAgglomeration/Make/options
+++ b/applications/test/GAMGAgglomeration/Make/options
@@ -3,5 +3,7 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lmeshTools
diff --git a/applications/test/PatchEdgeFaceWave/Make/options b/applications/test/PatchEdgeFaceWave/Make/options
index d27c95d03..f85dc2e15 100644
--- a/applications/test/PatchEdgeFaceWave/Make/options
+++ b/applications/test/PatchEdgeFaceWave/Make/options
@@ -3,5 +3,7 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lmeshTools
diff --git a/applications/test/PatchTools/Make/options b/applications/test/PatchTools/Make/options
index 3d00e249a..8ab8c4efc 100644
--- a/applications/test/PatchTools/Make/options
+++ b/applications/test/PatchTools/Make/options
@@ -4,4 +4,6 @@ EXE_INC = \
-I$(LIB_SRC)/surfMesh/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume
diff --git a/applications/test/PointEdgeWave/Make/options b/applications/test/PointEdgeWave/Make/options
index 54c035b8f..92c010df1 100644
--- a/applications/test/PointEdgeWave/Make/options
+++ b/applications/test/PointEdgeWave/Make/options
@@ -2,4 +2,6 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lmeshTools
diff --git a/applications/test/cyclic/Make/options b/applications/test/cyclic/Make/options
index d27c95d03..f85dc2e15 100644
--- a/applications/test/cyclic/Make/options
+++ b/applications/test/cyclic/Make/options
@@ -3,5 +3,7 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lmeshTools
diff --git a/applications/test/ensightFoamReader/Make/options b/applications/test/ensightFoamReader/Make/options
index 750aeb0d1..6e2b22654 100644
--- a/applications/test/ensightFoamReader/Make/options
+++ b/applications/test/ensightFoamReader/Make/options
@@ -2,4 +2,6 @@ EXE_INC = \
-DUSERD_API_203
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-luserd-foam
diff --git a/applications/test/extendedStencil/Make/options b/applications/test/extendedStencil/Make/options
index b733f6ac0..fb177fbfe 100644
--- a/applications/test/extendedStencil/Make/options
+++ b/applications/test/extendedStencil/Make/options
@@ -3,4 +3,6 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume
diff --git a/applications/test/fieldDependency/Make/options b/applications/test/fieldDependency/Make/options
index fa15f1245..8f2336d5d 100644
--- a/applications/test/fieldDependency/Make/options
+++ b/applications/test/fieldDependency/Make/options
@@ -2,4 +2,6 @@ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume
diff --git a/applications/test/fieldMapping/Make/options b/applications/test/fieldMapping/Make/options
index 8c55d7764..3dcffbd3e 100644
--- a/applications/test/fieldMapping/Make/options
+++ b/applications/test/fieldMapping/Make/options
@@ -5,5 +5,7 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-ldynamicMesh
diff --git a/applications/test/findCell-octree/Make/options b/applications/test/findCell-octree/Make/options
index d27c95d03..f85dc2e15 100644
--- a/applications/test/findCell-octree/Make/options
+++ b/applications/test/findCell-octree/Make/options
@@ -3,5 +3,7 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lmeshTools
diff --git a/applications/test/findSphereFeatureEdges-octree/Make/options b/applications/test/findSphereFeatureEdges-octree/Make/options
index d27c95d03..f85dc2e15 100644
--- a/applications/test/findSphereFeatureEdges-octree/Make/options
+++ b/applications/test/findSphereFeatureEdges-octree/Make/options
@@ -3,5 +3,7 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lmeshTools
diff --git a/applications/test/fvSolutionCombine/Make/options b/applications/test/fvSolutionCombine/Make/options
index fa15f1245..8f2336d5d 100644
--- a/applications/test/fvSolutionCombine/Make/options
+++ b/applications/test/fvSolutionCombine/Make/options
@@ -2,4 +2,6 @@ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume
diff --git a/applications/test/fvc/Make/options b/applications/test/fvc/Make/options
index d27c95d03..f85dc2e15 100644
--- a/applications/test/fvc/Make/options
+++ b/applications/test/fvc/Make/options
@@ -3,5 +3,7 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lmeshTools
diff --git a/applications/test/graph/Make/options b/applications/test/graph/Make/options
index 73db7f956..323248dd4 100644
--- a/applications/test/graph/Make/options
+++ b/applications/test/graph/Make/options
@@ -3,5 +3,7 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lsampling \
-lmeshTools
diff --git a/applications/test/graphXi/Make/options b/applications/test/graphXi/Make/options
index 73db7f956..323248dd4 100644
--- a/applications/test/graphXi/Make/options
+++ b/applications/test/graphXi/Make/options
@@ -3,5 +3,7 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lsampling \
-lmeshTools
diff --git a/applications/test/hexRef8/Make/options b/applications/test/hexRef8/Make/options
index 8c55d7764..3dcffbd3e 100644
--- a/applications/test/hexRef8/Make/options
+++ b/applications/test/hexRef8/Make/options
@@ -5,5 +5,7 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-ldynamicMesh
diff --git a/applications/test/liquid/Make/options b/applications/test/liquid/Make/options
index 3ed982940..ce45ec27e 100644
--- a/applications/test/liquid/Make/options
+++ b/applications/test/liquid/Make/options
@@ -2,4 +2,6 @@ EXE_INC = \
-I$(LIB_SRC)/thermophysicalModels/thermophysicalProperties/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lthermophysicalProperties
diff --git a/applications/test/mappedPatch/Make/options b/applications/test/mappedPatch/Make/options
index d76bd10c8..1ceb487d5 100644
--- a/applications/test/mappedPatch/Make/options
+++ b/applications/test/mappedPatch/Make/options
@@ -3,4 +3,6 @@ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume
diff --git a/applications/test/mesh/Make/options b/applications/test/mesh/Make/options
index fa15f1245..8f2336d5d 100644
--- a/applications/test/mesh/Make/options
+++ b/applications/test/mesh/Make/options
@@ -2,4 +2,6 @@ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume
diff --git a/applications/test/momentOfInertia/Make/options b/applications/test/momentOfInertia/Make/options
index 0b32f3355..98d95aa74 100644
--- a/applications/test/momentOfInertia/Make/options
+++ b/applications/test/momentOfInertia/Make/options
@@ -3,4 +3,6 @@ EXE_INC = \
-I$(LIB_SRC)/triSurface/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lmeshTools
diff --git a/applications/test/passiveParticle/Make/options b/applications/test/passiveParticle/Make/options
index 74e2ec1cf..aa4b2af35 100644
--- a/applications/test/passiveParticle/Make/options
+++ b/applications/test/passiveParticle/Make/options
@@ -4,6 +4,8 @@ EXE_INC = \
-I$(LIB_SRC)/lagrangian/basic/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lmeshTools \
-llagrangian
diff --git a/applications/test/patchRegion/Make/options b/applications/test/patchRegion/Make/options
index d27c95d03..f85dc2e15 100644
--- a/applications/test/patchRegion/Make/options
+++ b/applications/test/patchRegion/Make/options
@@ -3,5 +3,7 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lmeshTools
diff --git a/applications/test/pointField/Make/options b/applications/test/pointField/Make/options
index d27c95d03..f85dc2e15 100644
--- a/applications/test/pointField/Make/options
+++ b/applications/test/pointField/Make/options
@@ -3,5 +3,7 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lmeshTools
diff --git a/applications/test/reconstruct/Make/options b/applications/test/reconstruct/Make/options
index d27c95d03..f85dc2e15 100644
--- a/applications/test/reconstruct/Make/options
+++ b/applications/test/reconstruct/Make/options
@@ -3,5 +3,7 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lmeshTools
diff --git a/applications/test/rigidBodyDynamics/Make/options b/applications/test/rigidBodyDynamics/Make/options
index 4a9d828b6..f6954d020 100644
--- a/applications/test/rigidBodyDynamics/Make/options
+++ b/applications/test/rigidBodyDynamics/Make/options
@@ -2,4 +2,6 @@ EXE_INC = \
-I$(LIB_SRC)/rigidBodyDynamics/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lrigidBodyDynamics
diff --git a/applications/test/router/Make/options b/applications/test/router/Make/options
index e43fc5035..73cc72c43 100644
--- a/applications/test/router/Make/options
+++ b/applications/test/router/Make/options
@@ -3,4 +3,6 @@ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume
diff --git a/applications/test/slicedField/Make/options b/applications/test/slicedField/Make/options
index d27c95d03..f85dc2e15 100644
--- a/applications/test/slicedField/Make/options
+++ b/applications/test/slicedField/Make/options
@@ -3,5 +3,7 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lmeshTools
diff --git a/applications/test/tetTetOverlap/Make/options b/applications/test/tetTetOverlap/Make/options
index 54c035b8f..92c010df1 100644
--- a/applications/test/tetTetOverlap/Make/options
+++ b/applications/test/tetTetOverlap/Make/options
@@ -2,4 +2,6 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lmeshTools
diff --git a/applications/test/thermoMixture/Make/options b/applications/test/thermoMixture/Make/options
index 98bf79aaa..115d83c7b 100644
--- a/applications/test/thermoMixture/Make/options
+++ b/applications/test/thermoMixture/Make/options
@@ -2,4 +2,6 @@ EXE_INC = \
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lspecie
diff --git a/applications/test/volField/Make/options b/applications/test/volField/Make/options
index d27c95d03..f85dc2e15 100644
--- a/applications/test/volField/Make/options
+++ b/applications/test/volField/Make/options
@@ -3,5 +3,7 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lmeshTools
diff --git a/applications/test/volPointInterpolation/Make/options b/applications/test/volPointInterpolation/Make/options
index d27c95d03..f85dc2e15 100644
--- a/applications/test/volPointInterpolation/Make/options
+++ b/applications/test/volPointInterpolation/Make/options
@@ -3,5 +3,7 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lmeshTools
diff --git a/applications/test/wallDist/Make/options b/applications/test/wallDist/Make/options
index d27c95d03..f85dc2e15 100644
--- a/applications/test/wallDist/Make/options
+++ b/applications/test/wallDist/Make/options
@@ -3,5 +3,7 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lmeshTools
diff --git a/applications/utilities/mesh/advanced/PDRMesh/Make/options b/applications/utilities/mesh/advanced/PDRMesh/Make/options
index 4e7c20058..b55c6b3d5 100644
--- a/applications/utilities/mesh/advanced/PDRMesh/Make/options
+++ b/applications/utilities/mesh/advanced/PDRMesh/Make/options
@@ -4,6 +4,8 @@ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lturbulenceModels \
-lcompressibleTurbulenceModels \
-lcompressibleTransportModels \
diff --git a/applications/utilities/mesh/advanced/autoRefineMesh/Make/options b/applications/utilities/mesh/advanced/autoRefineMesh/Make/options
index 78df8bbcf..7676f0903 100644
--- a/applications/utilities/mesh/advanced/autoRefineMesh/Make/options
+++ b/applications/utilities/mesh/advanced/autoRefineMesh/Make/options
@@ -5,6 +5,8 @@ EXE_INC = \
-I$(LIB_SRC)/lagrangian/basic/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-ldynamicMesh \
-lmeshTools \
-ltriSurface \
diff --git a/applications/utilities/mesh/advanced/collapseEdges/Make/options b/applications/utilities/mesh/advanced/collapseEdges/Make/options
index 987eae5ed..6ebdb1a37 100644
--- a/applications/utilities/mesh/advanced/collapseEdges/Make/options
+++ b/applications/utilities/mesh/advanced/collapseEdges/Make/options
@@ -4,6 +4,8 @@ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-ldynamicMesh \
-lmeshTools \
-lfiniteVolume
diff --git a/applications/utilities/mesh/advanced/combinePatchFaces/Make/options b/applications/utilities/mesh/advanced/combinePatchFaces/Make/options
index 3da3443a2..1673c731a 100644
--- a/applications/utilities/mesh/advanced/combinePatchFaces/Make/options
+++ b/applications/utilities/mesh/advanced/combinePatchFaces/Make/options
@@ -5,5 +5,7 @@ EXE_INC = \
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-ldynamicMesh
diff --git a/applications/utilities/mesh/advanced/modifyMesh/Make/options b/applications/utilities/mesh/advanced/modifyMesh/Make/options
index 70c838b77..d563a2451 100644
--- a/applications/utilities/mesh/advanced/modifyMesh/Make/options
+++ b/applications/utilities/mesh/advanced/modifyMesh/Make/options
@@ -3,5 +3,7 @@ EXE_INC = \
-I$(LIB_SRC)/dynamicMesh/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lmeshTools \
-ldynamicMesh
diff --git a/applications/utilities/mesh/advanced/refineHexMesh/Make/options b/applications/utilities/mesh/advanced/refineHexMesh/Make/options
index baa7b45f0..0d93aed86 100644
--- a/applications/utilities/mesh/advanced/refineHexMesh/Make/options
+++ b/applications/utilities/mesh/advanced/refineHexMesh/Make/options
@@ -5,6 +5,8 @@ EXE_INC = \
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-ldynamicMesh \
-lmeshTools \
-lfiniteVolume \
diff --git a/applications/utilities/mesh/advanced/refineWallLayer/Make/options b/applications/utilities/mesh/advanced/refineWallLayer/Make/options
index 7349856ca..edff09308 100644
--- a/applications/utilities/mesh/advanced/refineWallLayer/Make/options
+++ b/applications/utilities/mesh/advanced/refineWallLayer/Make/options
@@ -3,5 +3,7 @@ EXE_INC = \
-I$(LIB_SRC)/dynamicMesh/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-ldynamicMesh \
-lmeshTools
diff --git a/applications/utilities/mesh/advanced/refinementLevel/Make/options b/applications/utilities/mesh/advanced/refinementLevel/Make/options
index d27c95d03..f85dc2e15 100644
--- a/applications/utilities/mesh/advanced/refinementLevel/Make/options
+++ b/applications/utilities/mesh/advanced/refinementLevel/Make/options
@@ -3,5 +3,7 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lmeshTools
diff --git a/applications/utilities/mesh/advanced/removeFaces/Make/options b/applications/utilities/mesh/advanced/removeFaces/Make/options
index 63c5dc5d7..031a247dd 100644
--- a/applications/utilities/mesh/advanced/removeFaces/Make/options
+++ b/applications/utilities/mesh/advanced/removeFaces/Make/options
@@ -4,6 +4,8 @@ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lmeshTools \
-ldynamicMesh \
-lfiniteVolume \
diff --git a/applications/utilities/mesh/advanced/selectCells/Make/options b/applications/utilities/mesh/advanced/selectCells/Make/options
index c4020c272..37e5c9c0e 100644
--- a/applications/utilities/mesh/advanced/selectCells/Make/options
+++ b/applications/utilities/mesh/advanced/selectCells/Make/options
@@ -6,6 +6,8 @@ EXE_INC = \
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-ldynamicMesh \
-lmeshTools \
-ltriSurface \
diff --git a/applications/utilities/mesh/advanced/splitCells/Make/options b/applications/utilities/mesh/advanced/splitCells/Make/options
index 7349856ca..edff09308 100644
--- a/applications/utilities/mesh/advanced/splitCells/Make/options
+++ b/applications/utilities/mesh/advanced/splitCells/Make/options
@@ -3,5 +3,7 @@ EXE_INC = \
-I$(LIB_SRC)/dynamicMesh/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-ldynamicMesh \
-lmeshTools
diff --git a/applications/utilities/mesh/conversion/Optional/ccm26ToFoam/Make/options b/applications/utilities/mesh/conversion/Optional/ccm26ToFoam/Make/options
index e2cdbcd1c..0f075a641 100644
--- a/applications/utilities/mesh/conversion/Optional/ccm26ToFoam/Make/options
+++ b/applications/utilities/mesh/conversion/Optional/ccm26ToFoam/Make/options
@@ -7,6 +7,8 @@ EXE_INC = \
-I$(LIBCCMIO_DIR)/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lmeshTools \
-L$(FOAM_EXT_LIBBIN) -lccmio
diff --git a/applications/utilities/mesh/conversion/datToFoam/Make/options b/applications/utilities/mesh/conversion/datToFoam/Make/options
index 54c035b8f..92c010df1 100644
--- a/applications/utilities/mesh/conversion/datToFoam/Make/options
+++ b/applications/utilities/mesh/conversion/datToFoam/Make/options
@@ -2,4 +2,6 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lmeshTools
diff --git a/applications/utilities/mesh/conversion/fluent3DMeshToFoam/Make/options b/applications/utilities/mesh/conversion/fluent3DMeshToFoam/Make/options
index 70c838b77..d563a2451 100644
--- a/applications/utilities/mesh/conversion/fluent3DMeshToFoam/Make/options
+++ b/applications/utilities/mesh/conversion/fluent3DMeshToFoam/Make/options
@@ -3,5 +3,7 @@ EXE_INC = \
-I$(LIB_SRC)/dynamicMesh/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lmeshTools \
-ldynamicMesh
diff --git a/applications/utilities/mesh/conversion/fluentMeshToFoam/Make/options b/applications/utilities/mesh/conversion/fluentMeshToFoam/Make/options
index 70c838b77..d563a2451 100644
--- a/applications/utilities/mesh/conversion/fluentMeshToFoam/Make/options
+++ b/applications/utilities/mesh/conversion/fluentMeshToFoam/Make/options
@@ -3,5 +3,7 @@ EXE_INC = \
-I$(LIB_SRC)/dynamicMesh/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lmeshTools \
-ldynamicMesh
diff --git a/applications/utilities/mesh/conversion/foamMeshToFluent/Make/options b/applications/utilities/mesh/conversion/foamMeshToFluent/Make/options
index fa15f1245..8f2336d5d 100644
--- a/applications/utilities/mesh/conversion/foamMeshToFluent/Make/options
+++ b/applications/utilities/mesh/conversion/foamMeshToFluent/Make/options
@@ -2,4 +2,6 @@ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume
diff --git a/applications/utilities/mesh/conversion/foamToStarMesh/Make/options b/applications/utilities/mesh/conversion/foamToStarMesh/Make/options
index e3af2fe66..640e6184b 100644
--- a/applications/utilities/mesh/conversion/foamToStarMesh/Make/options
+++ b/applications/utilities/mesh/conversion/foamToStarMesh/Make/options
@@ -4,4 +4,6 @@ EXE_INC = \
-I$(LIB_SRC)/fileFormats/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lconversion
diff --git a/applications/utilities/mesh/conversion/foamToSurface/Make/options b/applications/utilities/mesh/conversion/foamToSurface/Make/options
index a504dd861..eb4238a06 100644
--- a/applications/utilities/mesh/conversion/foamToSurface/Make/options
+++ b/applications/utilities/mesh/conversion/foamToSurface/Make/options
@@ -2,4 +2,6 @@ EXE_INC = \
-I$(LIB_SRC)/surfMesh/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lsurfMesh
diff --git a/applications/utilities/mesh/conversion/gmshToFoam/Make/options b/applications/utilities/mesh/conversion/gmshToFoam/Make/options
index 7349856ca..edff09308 100644
--- a/applications/utilities/mesh/conversion/gmshToFoam/Make/options
+++ b/applications/utilities/mesh/conversion/gmshToFoam/Make/options
@@ -3,5 +3,7 @@ EXE_INC = \
-I$(LIB_SRC)/dynamicMesh/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-ldynamicMesh \
-lmeshTools
diff --git a/applications/utilities/mesh/conversion/ideasUnvToFoam/Make/options b/applications/utilities/mesh/conversion/ideasUnvToFoam/Make/options
index 02c293cee..09ed748bf 100644
--- a/applications/utilities/mesh/conversion/ideasUnvToFoam/Make/options
+++ b/applications/utilities/mesh/conversion/ideasUnvToFoam/Make/options
@@ -3,5 +3,7 @@ EXE_INC = \
-I$(LIB_SRC)/surfMesh/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lmeshTools \
-lsurfMesh
diff --git a/applications/utilities/mesh/conversion/plot3dToFoam/Make/options b/applications/utilities/mesh/conversion/plot3dToFoam/Make/options
index 54c035b8f..92c010df1 100644
--- a/applications/utilities/mesh/conversion/plot3dToFoam/Make/options
+++ b/applications/utilities/mesh/conversion/plot3dToFoam/Make/options
@@ -2,4 +2,6 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lmeshTools
diff --git a/applications/utilities/mesh/conversion/star4ToFoam/Make/options b/applications/utilities/mesh/conversion/star4ToFoam/Make/options
index e3af2fe66..640e6184b 100644
--- a/applications/utilities/mesh/conversion/star4ToFoam/Make/options
+++ b/applications/utilities/mesh/conversion/star4ToFoam/Make/options
@@ -4,4 +4,6 @@ EXE_INC = \
-I$(LIB_SRC)/fileFormats/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lconversion
diff --git a/applications/utilities/mesh/conversion/vtkUnstructuredToFoam/Make/options b/applications/utilities/mesh/conversion/vtkUnstructuredToFoam/Make/options
index 7ce182425..21bc24c79 100644
--- a/applications/utilities/mesh/conversion/vtkUnstructuredToFoam/Make/options
+++ b/applications/utilities/mesh/conversion/vtkUnstructuredToFoam/Make/options
@@ -2,4 +2,6 @@ EXE_INC = \
-I$(LIB_SRC)/fileFormats/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfileFormats
diff --git a/applications/utilities/mesh/conversion/writeMeshObj/Make/options b/applications/utilities/mesh/conversion/writeMeshObj/Make/options
index 54c035b8f..92c010df1 100644
--- a/applications/utilities/mesh/conversion/writeMeshObj/Make/options
+++ b/applications/utilities/mesh/conversion/writeMeshObj/Make/options
@@ -2,4 +2,6 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lmeshTools
diff --git a/applications/utilities/mesh/generation/blockMesh/Make/options b/applications/utilities/mesh/generation/blockMesh/Make/options
index 9d13a25de..80f54575b 100644
--- a/applications/utilities/mesh/generation/blockMesh/Make/options
+++ b/applications/utilities/mesh/generation/blockMesh/Make/options
@@ -5,6 +5,8 @@ EXE_INC = \
-I$(LIB_SRC)/dynamicMesh/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lblockMesh \
-lmeshTools \
-lfileFormats \
diff --git a/applications/utilities/mesh/generation/extrude/extrudeMesh/Make/options b/applications/utilities/mesh/generation/extrude/extrudeMesh/Make/options
index 94b355be3..d85a05028 100644
--- a/applications/utilities/mesh/generation/extrude/extrudeMesh/Make/options
+++ b/applications/utilities/mesh/generation/extrude/extrudeMesh/Make/options
@@ -7,6 +7,8 @@ EXE_INC = \
-I$(LIB_SRC)/mesh/extrudeModel/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lsurfMesh \
-lmeshTools \
diff --git a/applications/utilities/mesh/generation/extrude/extrudeToRegionMesh/Make/options b/applications/utilities/mesh/generation/extrude/extrudeToRegionMesh/Make/options
index 49cad25f2..8146bd6ce 100644
--- a/applications/utilities/mesh/generation/extrude/extrudeToRegionMesh/Make/options
+++ b/applications/utilities/mesh/generation/extrude/extrudeToRegionMesh/Make/options
@@ -6,6 +6,8 @@ EXE_INC = \
-I$(LIB_SRC)/mesh/extrudeModel/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lsurfMesh \
-lfiniteVolume \
-lmeshTools \
diff --git a/applications/utilities/mesh/generation/extrude2DMesh/Make/options b/applications/utilities/mesh/generation/extrude2DMesh/Make/options
index 3be2f34c1..1211d0d8d 100644
--- a/applications/utilities/mesh/generation/extrude2DMesh/Make/options
+++ b/applications/utilities/mesh/generation/extrude2DMesh/Make/options
@@ -6,6 +6,8 @@ EXE_INC = \
-I$(LIB_SRC)/mesh/extrudeModel/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lsurfMesh \
-ldynamicMesh \
-lextrude2DMesh \
diff --git a/applications/utilities/mesh/generation/foamyMesh/foamyHexMesh/Make/options b/applications/utilities/mesh/generation/foamyMesh/foamyHexMesh/Make/options
index ecf9cc2b3..cd070281b 100644
--- a/applications/utilities/mesh/generation/foamyMesh/foamyHexMesh/Make/options
+++ b/applications/utilities/mesh/generation/foamyMesh/foamyHexMesh/Make/options
@@ -25,6 +25,8 @@ EXE_INC = \
-IvectorTools
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
${CGAL_LIBS} \
-lconformalVoronoiMesh \
-lmeshTools \
diff --git a/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshBackgroundMesh/Make/options b/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshBackgroundMesh/Make/options
index 701bea14b..60c8f8661 100644
--- a/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshBackgroundMesh/Make/options
+++ b/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshBackgroundMesh/Make/options
@@ -19,6 +19,8 @@ EXE_INC = \
-I../vectorTools
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
$(CGAL_LIBS) \
-lboost_thread \
-lmpfr \
diff --git a/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshSurfaceSimplify/Make/options b/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshSurfaceSimplify/Make/options
index c0eac6523..d5211f262 100644
--- a/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshSurfaceSimplify/Make/options
+++ b/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshSurfaceSimplify/Make/options
@@ -14,6 +14,8 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
$(CGAL_LIBS) \
-lboost_thread \
-lmpfr \
diff --git a/applications/utilities/mesh/generation/foamyMesh/foamyQuadMesh/Make/options b/applications/utilities/mesh/generation/foamyMesh/foamyQuadMesh/Make/options
index 37dda1856..420eddbb6 100644
--- a/applications/utilities/mesh/generation/foamyMesh/foamyQuadMesh/Make/options
+++ b/applications/utilities/mesh/generation/foamyMesh/foamyQuadMesh/Make/options
@@ -23,6 +23,8 @@ EXE_INC = \
-I$(LIB_SRC)/mesh/snappyHexMesh/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
$(CGAL_LIBS) \
-lextrude2DMesh \
-lextrudeModel \
diff --git a/applications/utilities/mesh/generation/snappyHexMesh/Make/options b/applications/utilities/mesh/generation/snappyHexMesh/Make/options
index b50c6396e..166d64152 100644
--- a/applications/utilities/mesh/generation/snappyHexMesh/Make/options
+++ b/applications/utilities/mesh/generation/snappyHexMesh/Make/options
@@ -10,6 +10,8 @@ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-ldecompositionMethods \
-L$(FOAM_LIBBIN)/dummy -lscotchDecomp -lptscotchDecomp \
diff --git a/applications/utilities/mesh/manipulation/attachMesh/Make/options b/applications/utilities/mesh/manipulation/attachMesh/Make/options
index 21b17b14c..b7d0034a0 100644
--- a/applications/utilities/mesh/manipulation/attachMesh/Make/options
+++ b/applications/utilities/mesh/manipulation/attachMesh/Make/options
@@ -2,5 +2,7 @@ EXE_INC = \
-I$(LIB_SRC)/dynamicMesh/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-ldynamicMesh \
-lmeshTools
diff --git a/applications/utilities/mesh/manipulation/autoPatch/Make/options b/applications/utilities/mesh/manipulation/autoPatch/Make/options
index 7349856ca..edff09308 100644
--- a/applications/utilities/mesh/manipulation/autoPatch/Make/options
+++ b/applications/utilities/mesh/manipulation/autoPatch/Make/options
@@ -3,5 +3,7 @@ EXE_INC = \
-I$(LIB_SRC)/dynamicMesh/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-ldynamicMesh \
-lmeshTools
diff --git a/applications/utilities/mesh/manipulation/checkMesh/Make/options b/applications/utilities/mesh/manipulation/checkMesh/Make/options
index 0653767f3..46d3f0dfd 100644
--- a/applications/utilities/mesh/manipulation/checkMesh/Make/options
+++ b/applications/utilities/mesh/manipulation/checkMesh/Make/options
@@ -7,6 +7,8 @@ EXE_INC = \
-I$(LIB_SRC)/dynamicMesh/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lmeshTools \
-lsampling \
-lsurfMesh \
diff --git a/applications/utilities/mesh/manipulation/createBaffles/Make/options b/applications/utilities/mesh/manipulation/createBaffles/Make/options
index 3c8db2812..bb48b4041 100644
--- a/applications/utilities/mesh/manipulation/createBaffles/Make/options
+++ b/applications/utilities/mesh/manipulation/createBaffles/Make/options
@@ -5,6 +5,8 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-ldynamicMesh \
-lmeshTools \
-lfiniteVolume \
diff --git a/applications/utilities/mesh/manipulation/createPatch/Make/options b/applications/utilities/mesh/manipulation/createPatch/Make/options
index 73f34b0f8..bad56123f 100644
--- a/applications/utilities/mesh/manipulation/createPatch/Make/options
+++ b/applications/utilities/mesh/manipulation/createPatch/Make/options
@@ -3,5 +3,7 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-ldynamicMesh \
-lmeshTools
diff --git a/applications/utilities/mesh/manipulation/deformedGeom/Make/options b/applications/utilities/mesh/manipulation/deformedGeom/Make/options
index dea7843ff..2fd01271f 100644
--- a/applications/utilities/mesh/manipulation/deformedGeom/Make/options
+++ b/applications/utilities/mesh/manipulation/deformedGeom/Make/options
@@ -2,6 +2,8 @@ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
\
-lmeshTools
diff --git a/applications/utilities/mesh/manipulation/flattenMesh/Make/options b/applications/utilities/mesh/manipulation/flattenMesh/Make/options
index 73f34b0f8..bad56123f 100644
--- a/applications/utilities/mesh/manipulation/flattenMesh/Make/options
+++ b/applications/utilities/mesh/manipulation/flattenMesh/Make/options
@@ -3,5 +3,7 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-ldynamicMesh \
-lmeshTools
diff --git a/applications/utilities/mesh/manipulation/insideCells/Make/options b/applications/utilities/mesh/manipulation/insideCells/Make/options
index 07bbf1aab..7a7f82588 100644
--- a/applications/utilities/mesh/manipulation/insideCells/Make/options
+++ b/applications/utilities/mesh/manipulation/insideCells/Make/options
@@ -4,5 +4,7 @@ EXE_INC = \
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-ltriSurface \
-lmeshTools
diff --git a/applications/utilities/mesh/manipulation/mergeMeshes/Make/options b/applications/utilities/mesh/manipulation/mergeMeshes/Make/options
index 21b17b14c..b7d0034a0 100644
--- a/applications/utilities/mesh/manipulation/mergeMeshes/Make/options
+++ b/applications/utilities/mesh/manipulation/mergeMeshes/Make/options
@@ -2,5 +2,7 @@ EXE_INC = \
-I$(LIB_SRC)/dynamicMesh/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-ldynamicMesh \
-lmeshTools
diff --git a/applications/utilities/mesh/manipulation/mergeOrSplitBaffles/Make/options b/applications/utilities/mesh/manipulation/mergeOrSplitBaffles/Make/options
index 523fc41d3..ac1d44c17 100644
--- a/applications/utilities/mesh/manipulation/mergeOrSplitBaffles/Make/options
+++ b/applications/utilities/mesh/manipulation/mergeOrSplitBaffles/Make/options
@@ -4,6 +4,8 @@ EXE_INC = \
-I$(LIB_SRC)/dynamicMesh/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lgenericPatchFields \
-lmeshTools \
diff --git a/applications/utilities/mesh/manipulation/mirrorMesh/Make/options b/applications/utilities/mesh/manipulation/mirrorMesh/Make/options
index ac6ecd833..3d8e51e93 100644
--- a/applications/utilities/mesh/manipulation/mirrorMesh/Make/options
+++ b/applications/utilities/mesh/manipulation/mirrorMesh/Make/options
@@ -3,5 +3,7 @@ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-ldynamicMesh \
-lfiniteVolume
diff --git a/applications/utilities/mesh/manipulation/moveDynamicMesh/Make/options b/applications/utilities/mesh/manipulation/moveDynamicMesh/Make/options
index 5dbb0c35a..69a1f2f07 100644
--- a/applications/utilities/mesh/manipulation/moveDynamicMesh/Make/options
+++ b/applications/utilities/mesh/manipulation/moveDynamicMesh/Make/options
@@ -7,6 +7,8 @@ EXE_INC = \
-I../checkMesh
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-ldynamicFvMesh \
-lmeshTools \
-lsampling \
diff --git a/applications/utilities/mesh/manipulation/moveEngineMesh/Make/options b/applications/utilities/mesh/manipulation/moveEngineMesh/Make/options
index a82119ff7..d14f4c24e 100644
--- a/applications/utilities/mesh/manipulation/moveEngineMesh/Make/options
+++ b/applications/utilities/mesh/manipulation/moveEngineMesh/Make/options
@@ -4,6 +4,8 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lengine \
-ldynamicMesh \
-lfiniteVolume \
diff --git a/applications/utilities/mesh/manipulation/moveMesh/Make/options b/applications/utilities/mesh/manipulation/moveMesh/Make/options
index 9b8c3dea8..cad69504b 100644
--- a/applications/utilities/mesh/manipulation/moveMesh/Make/options
+++ b/applications/utilities/mesh/manipulation/moveMesh/Make/options
@@ -4,6 +4,8 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-ldynamicMesh \
-lmeshTools
diff --git a/applications/utilities/mesh/manipulation/orientFaceZone/Make/options b/applications/utilities/mesh/manipulation/orientFaceZone/Make/options
index 56e8dc4f1..1b46a8a68 100644
--- a/applications/utilities/mesh/manipulation/orientFaceZone/Make/options
+++ b/applications/utilities/mesh/manipulation/orientFaceZone/Make/options
@@ -4,6 +4,8 @@ EXE_INC = \
-I$(LIB_SRC)/triSurface/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lmeshTools \
-lsnappyHexMesh \
-ltriSurface
diff --git a/applications/utilities/mesh/manipulation/polyDualMesh/Make/options b/applications/utilities/mesh/manipulation/polyDualMesh/Make/options
index f3d9c89aa..9a7467c12 100644
--- a/applications/utilities/mesh/manipulation/polyDualMesh/Make/options
+++ b/applications/utilities/mesh/manipulation/polyDualMesh/Make/options
@@ -4,6 +4,8 @@ EXE_INC = \
-I$(LIB_SRC)/dynamicMesh/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lgenericPatchFields \
-ldynamicMesh \
diff --git a/applications/utilities/mesh/manipulation/refineMesh/Make/options b/applications/utilities/mesh/manipulation/refineMesh/Make/options
index 73f34b0f8..bad56123f 100644
--- a/applications/utilities/mesh/manipulation/refineMesh/Make/options
+++ b/applications/utilities/mesh/manipulation/refineMesh/Make/options
@@ -3,5 +3,7 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-ldynamicMesh \
-lmeshTools
diff --git a/applications/utilities/mesh/manipulation/renumberMesh/Make/options b/applications/utilities/mesh/manipulation/renumberMesh/Make/options
index ef0651050..1c0b58732 100644
--- a/applications/utilities/mesh/manipulation/renumberMesh/Make/options
+++ b/applications/utilities/mesh/manipulation/renumberMesh/Make/options
@@ -9,6 +9,8 @@ EXE_INC = \
-I$(LIB_SRC)/parallel/decompose/decompositionMethods/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lmeshTools \
-ldynamicMesh \
-lfiniteVolume \
diff --git a/applications/utilities/mesh/manipulation/rotateMesh/Make/options b/applications/utilities/mesh/manipulation/rotateMesh/Make/options
index fa15f1245..8f2336d5d 100644
--- a/applications/utilities/mesh/manipulation/rotateMesh/Make/options
+++ b/applications/utilities/mesh/manipulation/rotateMesh/Make/options
@@ -2,4 +2,6 @@ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume
diff --git a/applications/utilities/mesh/manipulation/setSet/Make/options b/applications/utilities/mesh/manipulation/setSet/Make/options
index febadade7..e3cad9c94 100644
--- a/applications/utilities/mesh/manipulation/setSet/Make/options
+++ b/applications/utilities/mesh/manipulation/setSet/Make/options
@@ -3,5 +3,7 @@ EXE_INC = \
$(COMP_FLAGS)
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lmeshTools \
$(LINK_FLAGS)
diff --git a/applications/utilities/mesh/manipulation/setsToZones/Make/options b/applications/utilities/mesh/manipulation/setsToZones/Make/options
index ec38e1cbd..6753ba056 100644
--- a/applications/utilities/mesh/manipulation/setsToZones/Make/options
+++ b/applications/utilities/mesh/manipulation/setsToZones/Make/options
@@ -2,5 +2,7 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lmeshTools \
-lsampling
diff --git a/applications/utilities/mesh/manipulation/singleCellMesh/Make/options b/applications/utilities/mesh/manipulation/singleCellMesh/Make/options
index 193ad0e7b..d8b45ee5c 100644
--- a/applications/utilities/mesh/manipulation/singleCellMesh/Make/options
+++ b/applications/utilities/mesh/manipulation/singleCellMesh/Make/options
@@ -2,6 +2,8 @@ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lgenericPatchFields \
-lfiniteVolume
diff --git a/applications/utilities/mesh/manipulation/splitMesh/Make/options b/applications/utilities/mesh/manipulation/splitMesh/Make/options
index 73f34b0f8..bad56123f 100644
--- a/applications/utilities/mesh/manipulation/splitMesh/Make/options
+++ b/applications/utilities/mesh/manipulation/splitMesh/Make/options
@@ -3,5 +3,7 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-ldynamicMesh \
-lmeshTools
diff --git a/applications/utilities/mesh/manipulation/splitMeshRegions/Make/options b/applications/utilities/mesh/manipulation/splitMeshRegions/Make/options
index da1b9c501..20471e778 100644
--- a/applications/utilities/mesh/manipulation/splitMeshRegions/Make/options
+++ b/applications/utilities/mesh/manipulation/splitMeshRegions/Make/options
@@ -4,6 +4,8 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lgenericPatchFields \
-ldynamicMesh \
diff --git a/applications/utilities/mesh/manipulation/stitchMesh/Make/options b/applications/utilities/mesh/manipulation/stitchMesh/Make/options
index ac523b828..6228a86c1 100644
--- a/applications/utilities/mesh/manipulation/stitchMesh/Make/options
+++ b/applications/utilities/mesh/manipulation/stitchMesh/Make/options
@@ -4,6 +4,8 @@ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-ldynamicMesh \
-lmeshTools \
-lfiniteVolume \
diff --git a/applications/utilities/mesh/manipulation/subsetMesh/Make/options b/applications/utilities/mesh/manipulation/subsetMesh/Make/options
index 759535d95..e01f97590 100644
--- a/applications/utilities/mesh/manipulation/subsetMesh/Make/options
+++ b/applications/utilities/mesh/manipulation/subsetMesh/Make/options
@@ -4,5 +4,7 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-ldynamicMesh \
-lgenericPatchFields
diff --git a/applications/utilities/mesh/manipulation/topoSet/Make/options b/applications/utilities/mesh/manipulation/topoSet/Make/options
index 54c035b8f..92c010df1 100644
--- a/applications/utilities/mesh/manipulation/topoSet/Make/options
+++ b/applications/utilities/mesh/manipulation/topoSet/Make/options
@@ -2,4 +2,6 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lmeshTools
diff --git a/applications/utilities/mesh/manipulation/transformPoints/Make/options b/applications/utilities/mesh/manipulation/transformPoints/Make/options
index d8fea4291..f033c8acb 100644
--- a/applications/utilities/mesh/manipulation/transformPoints/Make/options
+++ b/applications/utilities/mesh/manipulation/transformPoints/Make/options
@@ -3,6 +3,8 @@ EXE_INC = \
-I$(LIB_SRC)/regionModels/regionModel/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lgenericPatchFields \
-lregionModels
diff --git a/applications/utilities/mesh/manipulation/zipUpMesh/Make/options b/applications/utilities/mesh/manipulation/zipUpMesh/Make/options
index 082ffae98..3591df1f8 100644
--- a/applications/utilities/mesh/manipulation/zipUpMesh/Make/options
+++ b/applications/utilities/mesh/manipulation/zipUpMesh/Make/options
@@ -5,4 +5,6 @@ EXE_INC = \
/* -DDEBUG_ORDER */
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lmeshTools
diff --git a/applications/utilities/miscellaneous/foamFormatConvert/Make/options b/applications/utilities/miscellaneous/foamFormatConvert/Make/options
index b2bc2047e..a80a355a6 100644
--- a/applications/utilities/miscellaneous/foamFormatConvert/Make/options
+++ b/applications/utilities/miscellaneous/foamFormatConvert/Make/options
@@ -4,6 +4,8 @@ EXE_INC = \
-I$(LIB_SRC)/lagrangian/basic/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lmeshTools \
-lfiniteVolume \
-lgenericPatchFields \
diff --git a/applications/utilities/miscellaneous/patchSummary/Make/options b/applications/utilities/miscellaneous/patchSummary/Make/options
index 318e1be8f..313be63a8 100644
--- a/applications/utilities/miscellaneous/patchSummary/Make/options
+++ b/applications/utilities/miscellaneous/patchSummary/Make/options
@@ -3,6 +3,8 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lgenericPatchFields \
-lfiniteVolume \
-lmeshTools
diff --git a/applications/utilities/parallelProcessing/decomposePar/Make/options b/applications/utilities/parallelProcessing/decomposePar/Make/options
index 3fa418594..21ec98c30 100644
--- a/applications/utilities/parallelProcessing/decomposePar/Make/options
+++ b/applications/utilities/parallelProcessing/decomposePar/Make/options
@@ -8,6 +8,8 @@ EXE_INC = \
-I$(LIB_SRC)/regionModels/regionModel/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-ldynamicMesh \
-ldecompose \
-lgenericPatchFields \
diff --git a/applications/utilities/parallelProcessing/reconstructPar/Make/options b/applications/utilities/parallelProcessing/reconstructPar/Make/options
index 1ebb8c02d..387f42e1f 100644
--- a/applications/utilities/parallelProcessing/reconstructPar/Make/options
+++ b/applications/utilities/parallelProcessing/reconstructPar/Make/options
@@ -7,6 +7,8 @@ EXE_INC = \
-I$(LIB_SRC)/regionModels/regionModel/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lgenericPatchFields \
-llagrangian \
diff --git a/applications/utilities/parallelProcessing/reconstructParMesh/Make/options b/applications/utilities/parallelProcessing/reconstructParMesh/Make/options
index 330bdf764..ded2e665b 100644
--- a/applications/utilities/parallelProcessing/reconstructParMesh/Make/options
+++ b/applications/utilities/parallelProcessing/reconstructParMesh/Make/options
@@ -5,6 +5,8 @@ EXE_INC = \
-I$(LIB_SRC)/regionModels/regionModel/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-ldynamicMesh \
-lmeshTools \
-lregionModels
diff --git a/applications/utilities/parallelProcessing/redistributePar/Make/options b/applications/utilities/parallelProcessing/redistributePar/Make/options
index bc7b904e0..490f9fb01 100644
--- a/applications/utilities/parallelProcessing/redistributePar/Make/options
+++ b/applications/utilities/parallelProcessing/redistributePar/Make/options
@@ -5,6 +5,8 @@ EXE_INC = \
-I$(LIB_SRC)/dynamicMesh/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lgenericPatchFields \
-ldecompositionMethods \
diff --git a/applications/utilities/postProcessing/dataConversion/foamDataToFluent/Make/options b/applications/utilities/postProcessing/dataConversion/foamDataToFluent/Make/options
index 318e1be8f..313be63a8 100644
--- a/applications/utilities/postProcessing/dataConversion/foamDataToFluent/Make/options
+++ b/applications/utilities/postProcessing/dataConversion/foamDataToFluent/Make/options
@@ -3,6 +3,8 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lgenericPatchFields \
-lfiniteVolume \
-lmeshTools
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/Make/options b/applications/utilities/postProcessing/dataConversion/foamToEnsight/Make/options
index 0f80ffa1b..5dfca1e04 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsight/Make/options
+++ b/applications/utilities/postProcessing/dataConversion/foamToEnsight/Make/options
@@ -6,6 +6,8 @@ EXE_INC = \
-I$(LIB_SRC)/lagrangian/basic/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-ldynamicMesh \
-lsampling \
-lgenericPatchFields \
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/Make/options b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/Make/options
index 40a58886b..aaea3bf7f 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/Make/options
+++ b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/Make/options
@@ -5,6 +5,8 @@ EXE_INC = \
-I$(LIB_SRC)/conversion/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-llagrangian \
-lmeshTools \
diff --git a/applications/utilities/postProcessing/dataConversion/foamToGMV/Make/options b/applications/utilities/postProcessing/dataConversion/foamToGMV/Make/options
index 811647514..9bd6c74b6 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToGMV/Make/options
+++ b/applications/utilities/postProcessing/dataConversion/foamToGMV/Make/options
@@ -6,6 +6,8 @@ EXE_INC = \
-I$(LIB_SRC)/lagrangian/basic/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lmeshTools \
-lgenericPatchFields \
diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/Make/options b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/Make/options
index 50981e77e..9b6d504be 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/Make/options
+++ b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/Make/options
@@ -7,6 +7,8 @@ EXE_INC = \
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-llagrangian \
-ldynamicMesh \
-lgenericPatchFields \
diff --git a/applications/utilities/postProcessing/dataConversion/foamToTetDualMesh/Make/options b/applications/utilities/postProcessing/dataConversion/foamToTetDualMesh/Make/options
index fa15f1245..8f2336d5d 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToTetDualMesh/Make/options
+++ b/applications/utilities/postProcessing/dataConversion/foamToTetDualMesh/Make/options
@@ -2,4 +2,6 @@ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume
diff --git a/applications/utilities/postProcessing/dataConversion/foamToVTK/Make/options b/applications/utilities/postProcessing/dataConversion/foamToVTK/Make/options
index c2445fd54..7fe07d2fb 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToVTK/Make/options
+++ b/applications/utilities/postProcessing/dataConversion/foamToVTK/Make/options
@@ -6,6 +6,8 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfoamToVTK \
-ldynamicMesh \
-llagrangian \
diff --git a/applications/utilities/postProcessing/dataConversion/smapToFoam/Make/options b/applications/utilities/postProcessing/dataConversion/smapToFoam/Make/options
index 318e1be8f..313be63a8 100644
--- a/applications/utilities/postProcessing/dataConversion/smapToFoam/Make/options
+++ b/applications/utilities/postProcessing/dataConversion/smapToFoam/Make/options
@@ -3,6 +3,8 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lgenericPatchFields \
-lfiniteVolume \
-lmeshTools
diff --git a/applications/utilities/postProcessing/lagrangian/particleTracks/Make/options b/applications/utilities/postProcessing/lagrangian/particleTracks/Make/options
index b653926f9..0b2a14634 100644
--- a/applications/utilities/postProcessing/lagrangian/particleTracks/Make/options
+++ b/applications/utilities/postProcessing/lagrangian/particleTracks/Make/options
@@ -5,6 +5,8 @@ EXE_INC = \
-I$(LIB_SRC)/lagrangian/basic/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lmeshTools \
-lfileFormats \
diff --git a/applications/utilities/postProcessing/lagrangian/steadyParticleTracks/Make/options b/applications/utilities/postProcessing/lagrangian/steadyParticleTracks/Make/options
index 004f0474b..759968573 100644
--- a/applications/utilities/postProcessing/lagrangian/steadyParticleTracks/Make/options
+++ b/applications/utilities/postProcessing/lagrangian/steadyParticleTracks/Make/options
@@ -4,6 +4,8 @@ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-llagrangian \
-lmeshTools \
-lfiniteVolume
diff --git a/applications/utilities/postProcessing/miscellaneous/engineCompRatio/Make/options b/applications/utilities/postProcessing/miscellaneous/engineCompRatio/Make/options
index fc10ba7a6..8f5d6caf0 100644
--- a/applications/utilities/postProcessing/miscellaneous/engineCompRatio/Make/options
+++ b/applications/utilities/postProcessing/miscellaneous/engineCompRatio/Make/options
@@ -4,6 +4,8 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lengine \
-ldynamicMesh \
-lfiniteVolume \
diff --git a/applications/utilities/postProcessing/miscellaneous/pdfPlot/Make/options b/applications/utilities/postProcessing/miscellaneous/pdfPlot/Make/options
index 65359ddbf..7d5fa3bce 100644
--- a/applications/utilities/postProcessing/miscellaneous/pdfPlot/Make/options
+++ b/applications/utilities/postProcessing/miscellaneous/pdfPlot/Make/options
@@ -5,6 +5,8 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-ldistributionModels \
-lsampling \
-lfiniteVolume \
diff --git a/applications/utilities/postProcessing/miscellaneous/postChannel/Make/options b/applications/utilities/postProcessing/miscellaneous/postChannel/Make/options
index c5e4b6238..d3d0f0197 100644
--- a/applications/utilities/postProcessing/miscellaneous/postChannel/Make/options
+++ b/applications/utilities/postProcessing/miscellaneous/postChannel/Make/options
@@ -4,6 +4,8 @@ EXE_INC = \
-I$(LIB_SRC)/sampling/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lmeshTools \
-lfiniteVolume \
-lgenericPatchFields \
diff --git a/applications/utilities/postProcessing/miscellaneous/temporalInterpolate/Make/options b/applications/utilities/postProcessing/miscellaneous/temporalInterpolate/Make/options
index 89e52b6d5..d03c5d283 100644
--- a/applications/utilities/postProcessing/miscellaneous/temporalInterpolate/Make/options
+++ b/applications/utilities/postProcessing/miscellaneous/temporalInterpolate/Make/options
@@ -2,5 +2,7 @@ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume
diff --git a/applications/utilities/postProcessing/noise/Make/options b/applications/utilities/postProcessing/noise/Make/options
index b29b93958..346a82b17 100644
--- a/applications/utilities/postProcessing/noise/Make/options
+++ b/applications/utilities/postProcessing/noise/Make/options
@@ -3,5 +3,7 @@ EXE_INC = \
-I$(LIB_SRC)/sampling/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lrandomProcesses \
-lsampling
diff --git a/applications/utilities/postProcessing/postProcess/Make/options b/applications/utilities/postProcessing/postProcess/Make/options
index d3bb9a2b6..61cfcbe42 100644
--- a/applications/utilities/postProcessing/postProcess/Make/options
+++ b/applications/utilities/postProcessing/postProcess/Make/options
@@ -12,6 +12,8 @@ EXE_INC = \
-I$(LIB_SRC)/sampling/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lturbulenceModels \
-lincompressibleTurbulenceModels \
-lcompressibleTurbulenceModels \
diff --git a/applications/utilities/preProcessing/applyBoundaryLayer/Make/options b/applications/utilities/preProcessing/applyBoundaryLayer/Make/options
index c0efa0936..483126982 100644
--- a/applications/utilities/preProcessing/applyBoundaryLayer/Make/options
+++ b/applications/utilities/preProcessing/applyBoundaryLayer/Make/options
@@ -7,6 +7,8 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lturbulenceModels \
-lincompressibleTurbulenceModels \
-lincompressibleTransportModels \
diff --git a/applications/utilities/preProcessing/boxTurb/Make/options b/applications/utilities/preProcessing/boxTurb/Make/options
index ca6ebb8c8..9ba56d21c 100644
--- a/applications/utilities/preProcessing/boxTurb/Make/options
+++ b/applications/utilities/preProcessing/boxTurb/Make/options
@@ -4,6 +4,8 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lrandomProcesses \
-lfiniteVolume \
-lmeshTools
diff --git a/applications/utilities/preProcessing/changeDictionary/Make/options b/applications/utilities/preProcessing/changeDictionary/Make/options
index 9b8c3dea8..cad69504b 100644
--- a/applications/utilities/preProcessing/changeDictionary/Make/options
+++ b/applications/utilities/preProcessing/changeDictionary/Make/options
@@ -4,6 +4,8 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-ldynamicMesh \
-lmeshTools
diff --git a/applications/utilities/preProcessing/createExternalCoupledPatchGeometry/Make/options b/applications/utilities/preProcessing/createExternalCoupledPatchGeometry/Make/options
index 7672e4c94..18fc53529 100644
--- a/applications/utilities/preProcessing/createExternalCoupledPatchGeometry/Make/options
+++ b/applications/utilities/preProcessing/createExternalCoupledPatchGeometry/Make/options
@@ -3,6 +3,8 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lturbulenceModels \
-lcompressibleTurbulenceModels \
-lfiniteVolume \
diff --git a/applications/utilities/preProcessing/dsmcInitialise/Make/options b/applications/utilities/preProcessing/dsmcInitialise/Make/options
index fa35b0bbd..e9165087e 100644
--- a/applications/utilities/preProcessing/dsmcInitialise/Make/options
+++ b/applications/utilities/preProcessing/dsmcInitialise/Make/options
@@ -5,6 +5,8 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lmeshTools \
-lfiniteVolume \
-llagrangian \
diff --git a/applications/utilities/preProcessing/engineSwirl/Make/options b/applications/utilities/preProcessing/engineSwirl/Make/options
index 318e1be8f..313be63a8 100644
--- a/applications/utilities/preProcessing/engineSwirl/Make/options
+++ b/applications/utilities/preProcessing/engineSwirl/Make/options
@@ -3,6 +3,8 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lgenericPatchFields \
-lfiniteVolume \
-lmeshTools
diff --git a/applications/utilities/preProcessing/faceAgglomerate/Make/options b/applications/utilities/preProcessing/faceAgglomerate/Make/options
index 3facebbe1..a4396aa5f 100644
--- a/applications/utilities/preProcessing/faceAgglomerate/Make/options
+++ b/applications/utilities/preProcessing/faceAgglomerate/Make/options
@@ -4,6 +4,8 @@ EXE_INC = \
-I$(LIB_SRC)/fvAgglomerationMethods/pairPatchAgglomeration/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lpairPatchAgglomeration \
-ltriSurface \
diff --git a/applications/utilities/preProcessing/foamSetupCHT/Make/options b/applications/utilities/preProcessing/foamSetupCHT/Make/options
index d27c95d03..f85dc2e15 100644
--- a/applications/utilities/preProcessing/foamSetupCHT/Make/options
+++ b/applications/utilities/preProcessing/foamSetupCHT/Make/options
@@ -3,5 +3,7 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lmeshTools
diff --git a/applications/utilities/preProcessing/foamUpgradeCyclics/Make/options b/applications/utilities/preProcessing/foamUpgradeCyclics/Make/options
index 93ae28753..0f1d3b804 100644
--- a/applications/utilities/preProcessing/foamUpgradeCyclics/Make/options
+++ b/applications/utilities/preProcessing/foamUpgradeCyclics/Make/options
@@ -2,5 +2,7 @@ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lgenericPatchFields
diff --git a/applications/utilities/preProcessing/mapFields/Make/options b/applications/utilities/preProcessing/mapFields/Make/options
index 7bd964094..e5601f177 100644
--- a/applications/utilities/preProcessing/mapFields/Make/options
+++ b/applications/utilities/preProcessing/mapFields/Make/options
@@ -5,6 +5,8 @@ EXE_INC = \
-I$(LIB_SRC)/sampling/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lsampling \
-lmeshTools \
-llagrangian \
diff --git a/applications/utilities/preProcessing/mapFieldsPar/Make/options b/applications/utilities/preProcessing/mapFieldsPar/Make/options
index 7bd964094..e5601f177 100644
--- a/applications/utilities/preProcessing/mapFieldsPar/Make/options
+++ b/applications/utilities/preProcessing/mapFieldsPar/Make/options
@@ -5,6 +5,8 @@ EXE_INC = \
-I$(LIB_SRC)/sampling/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lsampling \
-lmeshTools \
-llagrangian \
diff --git a/applications/utilities/preProcessing/mdInitialise/Make/options b/applications/utilities/preProcessing/mdInitialise/Make/options
index 289c0990a..fee740e34 100644
--- a/applications/utilities/preProcessing/mdInitialise/Make/options
+++ b/applications/utilities/preProcessing/mdInitialise/Make/options
@@ -8,6 +8,8 @@ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lmeshTools \
-ldynamicMesh \
-lfiniteVolume \
diff --git a/applications/utilities/preProcessing/setFields/Make/options b/applications/utilities/preProcessing/setFields/Make/options
index 06d42b6c3..4c32050c3 100644
--- a/applications/utilities/preProcessing/setFields/Make/options
+++ b/applications/utilities/preProcessing/setFields/Make/options
@@ -3,6 +3,8 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lgenericPatchFields \
-lmeshTools
diff --git a/applications/utilities/preProcessing/setWaves/Make/options b/applications/utilities/preProcessing/setWaves/Make/options
index 688c6306c..8a548ffa2 100644
--- a/applications/utilities/preProcessing/setWaves/Make/options
+++ b/applications/utilities/preProcessing/setWaves/Make/options
@@ -4,6 +4,8 @@ EXE_INC = \
-I$(LIB_SRC)/waves/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lmeshTools \
-lwaves
diff --git a/applications/utilities/preProcessing/viewFactorsGen/Make/options b/applications/utilities/preProcessing/viewFactorsGen/Make/options
index b64f44712..0e2dc3f04 100644
--- a/applications/utilities/preProcessing/viewFactorsGen/Make/options
+++ b/applications/utilities/preProcessing/viewFactorsGen/Make/options
@@ -5,6 +5,8 @@ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lmeshTools \
-ltriSurface \
diff --git a/applications/utilities/preProcessing/wallFunctionTable/Make/options b/applications/utilities/preProcessing/wallFunctionTable/Make/options
index c26aa9aa4..83027bed3 100644
--- a/applications/utilities/preProcessing/wallFunctionTable/Make/options
+++ b/applications/utilities/preProcessing/wallFunctionTable/Make/options
@@ -4,6 +4,8 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-ltabulatedWallFunctions \
-lfiniteVolume \
-lmeshTools
diff --git a/applications/utilities/surface/surfaceAdd/Make/options b/applications/utilities/surface/surfaceAdd/Make/options
index c746f7e0f..828da2642 100644
--- a/applications/utilities/surface/surfaceAdd/Make/options
+++ b/applications/utilities/surface/surfaceAdd/Make/options
@@ -2,5 +2,7 @@ EXE_INC = \
-I$(LIB_SRC)/triSurface/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-ltriSurface \
-lmeshTools
diff --git a/applications/utilities/surface/surfaceAutoPatch/Make/options b/applications/utilities/surface/surfaceAutoPatch/Make/options
index 9f08e8d2a..89ed0ad6c 100644
--- a/applications/utilities/surface/surfaceAutoPatch/Make/options
+++ b/applications/utilities/surface/surfaceAutoPatch/Make/options
@@ -3,5 +3,7 @@ EXE_INC = \
-I$(LIB_SRC)/triSurface/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lmeshTools \
-ltriSurface
diff --git a/applications/utilities/surface/surfaceBooleanFeatures/Make/options b/applications/utilities/surface/surfaceBooleanFeatures/Make/options
index 70a8e7108..4119515eb 100644
--- a/applications/utilities/surface/surfaceBooleanFeatures/Make/options
+++ b/applications/utilities/surface/surfaceBooleanFeatures/Make/options
@@ -3,5 +3,7 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-ltriSurface \
-lmeshTools
diff --git a/applications/utilities/surface/surfaceCheck/Make/options b/applications/utilities/surface/surfaceCheck/Make/options
index ef204ab68..4209f6e04 100644
--- a/applications/utilities/surface/surfaceCheck/Make/options
+++ b/applications/utilities/surface/surfaceCheck/Make/options
@@ -5,6 +5,8 @@ EXE_INC = \
-I$(LIB_SRC)/triSurface/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lsampling \
-ltriSurface \
-lsurfMesh \
diff --git a/applications/utilities/surface/surfaceClean/Make/options b/applications/utilities/surface/surfaceClean/Make/options
index 2db41f545..b3b0e6509 100644
--- a/applications/utilities/surface/surfaceClean/Make/options
+++ b/applications/utilities/surface/surfaceClean/Make/options
@@ -3,5 +3,7 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lmeshTools \
-ltriSurface
diff --git a/applications/utilities/surface/surfaceCoarsen/Make/options b/applications/utilities/surface/surfaceCoarsen/Make/options
index 965309e4d..c31e915e1 100644
--- a/applications/utilities/surface/surfaceCoarsen/Make/options
+++ b/applications/utilities/surface/surfaceCoarsen/Make/options
@@ -3,5 +3,7 @@ EXE_INC = \
-I$(LIB_SRC)/triSurface/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-ltriSurface \
-lmeshTools
diff --git a/applications/utilities/surface/surfaceConvert/Make/options b/applications/utilities/surface/surfaceConvert/Make/options
index 4c41bc1a4..abb9eb05a 100644
--- a/applications/utilities/surface/surfaceConvert/Make/options
+++ b/applications/utilities/surface/surfaceConvert/Make/options
@@ -2,5 +2,7 @@ EXE_INC = \
-I$(LIB_SRC)/triSurface/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lmeshTools \
-ltriSurface
diff --git a/applications/utilities/surface/surfaceFeatureConvert/Make/options b/applications/utilities/surface/surfaceFeatureConvert/Make/options
index 54c035b8f..92c010df1 100644
--- a/applications/utilities/surface/surfaceFeatureConvert/Make/options
+++ b/applications/utilities/surface/surfaceFeatureConvert/Make/options
@@ -2,4 +2,6 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lmeshTools
diff --git a/applications/utilities/surface/surfaceFeatureExtract/Make/options b/applications/utilities/surface/surfaceFeatureExtract/Make/options
index e96fbb368..3b98465a1 100644
--- a/applications/utilities/surface/surfaceFeatureExtract/Make/options
+++ b/applications/utilities/surface/surfaceFeatureExtract/Make/options
@@ -6,6 +6,8 @@ EXE_INC = \
-I$(LIB_SRC)/sampling/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lmeshTools \
-ltriSurface \
-lsampling
diff --git a/applications/utilities/surface/surfaceFeatures/Make/options b/applications/utilities/surface/surfaceFeatures/Make/options
index e96fbb368..3b98465a1 100644
--- a/applications/utilities/surface/surfaceFeatures/Make/options
+++ b/applications/utilities/surface/surfaceFeatures/Make/options
@@ -6,6 +6,8 @@ EXE_INC = \
-I$(LIB_SRC)/sampling/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lmeshTools \
-ltriSurface \
-lsampling
diff --git a/applications/utilities/surface/surfaceFind/Make/options b/applications/utilities/surface/surfaceFind/Make/options
index 946b16a9a..81c673b04 100644
--- a/applications/utilities/surface/surfaceFind/Make/options
+++ b/applications/utilities/surface/surfaceFind/Make/options
@@ -2,5 +2,7 @@ EXE_INC = \
-I$(LIB_SRC)/surfMesh/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lmeshTools \
-lsurfMesh
diff --git a/applications/utilities/surface/surfaceHookUp/Make/options b/applications/utilities/surface/surfaceHookUp/Make/options
index db53089d4..927bf89f6 100644
--- a/applications/utilities/surface/surfaceHookUp/Make/options
+++ b/applications/utilities/surface/surfaceHookUp/Make/options
@@ -4,6 +4,8 @@ EXE_INC = \
-I$(LIB_SRC)/triSurface/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lmeshTools \
-lfileFormats \
-ltriSurface
diff --git a/applications/utilities/surface/surfaceInertia/Make/options b/applications/utilities/surface/surfaceInertia/Make/options
index 9f08e8d2a..89ed0ad6c 100644
--- a/applications/utilities/surface/surfaceInertia/Make/options
+++ b/applications/utilities/surface/surfaceInertia/Make/options
@@ -3,5 +3,7 @@ EXE_INC = \
-I$(LIB_SRC)/triSurface/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lmeshTools \
-ltriSurface
diff --git a/applications/utilities/surface/surfaceLambdaMuSmooth/Make/options b/applications/utilities/surface/surfaceLambdaMuSmooth/Make/options
index 5ae72ebd3..8fcbb715a 100644
--- a/applications/utilities/surface/surfaceLambdaMuSmooth/Make/options
+++ b/applications/utilities/surface/surfaceLambdaMuSmooth/Make/options
@@ -3,5 +3,7 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lsurfMesh \
-lmeshTools
diff --git a/applications/utilities/surface/surfaceMeshTriangulate/Make/options b/applications/utilities/surface/surfaceMeshTriangulate/Make/options
index 87ba656ac..2f2ad7c9d 100644
--- a/applications/utilities/surface/surfaceMeshTriangulate/Make/options
+++ b/applications/utilities/surface/surfaceMeshTriangulate/Make/options
@@ -3,6 +3,8 @@ EXE_INC = \
-I$(LIB_SRC)/surfMesh/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lmeshTools \
-lsurfMesh
diff --git a/applications/utilities/surface/surfaceOrient/Make/options b/applications/utilities/surface/surfaceOrient/Make/options
index 2db41f545..b3b0e6509 100644
--- a/applications/utilities/surface/surfaceOrient/Make/options
+++ b/applications/utilities/surface/surfaceOrient/Make/options
@@ -3,5 +3,7 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lmeshTools \
-ltriSurface
diff --git a/applications/utilities/surface/surfacePointMerge/Make/options b/applications/utilities/surface/surfacePointMerge/Make/options
index 9f08e8d2a..89ed0ad6c 100644
--- a/applications/utilities/surface/surfacePointMerge/Make/options
+++ b/applications/utilities/surface/surfacePointMerge/Make/options
@@ -3,5 +3,7 @@ EXE_INC = \
-I$(LIB_SRC)/triSurface/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lmeshTools \
-ltriSurface
diff --git a/applications/utilities/surface/surfaceRedistributePar/Make/options b/applications/utilities/surface/surfaceRedistributePar/Make/options
index c46a4c3f3..c2a2ab413 100644
--- a/applications/utilities/surface/surfaceRedistributePar/Make/options
+++ b/applications/utilities/surface/surfaceRedistributePar/Make/options
@@ -4,6 +4,8 @@ EXE_INC = \
-I$(LIB_SRC)/parallel/distributed/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-ldistributed \
-lmeshTools \
-ltriSurface
diff --git a/applications/utilities/surface/surfaceRefineRedGreen/Make/options b/applications/utilities/surface/surfaceRefineRedGreen/Make/options
index 9f08e8d2a..89ed0ad6c 100644
--- a/applications/utilities/surface/surfaceRefineRedGreen/Make/options
+++ b/applications/utilities/surface/surfaceRefineRedGreen/Make/options
@@ -3,5 +3,7 @@ EXE_INC = \
-I$(LIB_SRC)/triSurface/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lmeshTools \
-ltriSurface
diff --git a/applications/utilities/surface/surfaceSplitByPatch/Make/options b/applications/utilities/surface/surfaceSplitByPatch/Make/options
index 717768279..b716af9cb 100644
--- a/applications/utilities/surface/surfaceSplitByPatch/Make/options
+++ b/applications/utilities/surface/surfaceSplitByPatch/Make/options
@@ -2,6 +2,8 @@ EXE_INC = \
-I$(LIB_SRC)/triSurface/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lmeshTools \
-ltriSurface
diff --git a/applications/utilities/surface/surfaceSplitByTopology/Make/options b/applications/utilities/surface/surfaceSplitByTopology/Make/options
index 717768279..b716af9cb 100644
--- a/applications/utilities/surface/surfaceSplitByTopology/Make/options
+++ b/applications/utilities/surface/surfaceSplitByTopology/Make/options
@@ -2,6 +2,8 @@ EXE_INC = \
-I$(LIB_SRC)/triSurface/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lmeshTools \
-ltriSurface
diff --git a/applications/utilities/surface/surfaceSplitNonManifolds/Make/options b/applications/utilities/surface/surfaceSplitNonManifolds/Make/options
index 9f08e8d2a..89ed0ad6c 100644
--- a/applications/utilities/surface/surfaceSplitNonManifolds/Make/options
+++ b/applications/utilities/surface/surfaceSplitNonManifolds/Make/options
@@ -3,5 +3,7 @@ EXE_INC = \
-I$(LIB_SRC)/triSurface/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lmeshTools \
-ltriSurface
diff --git a/applications/utilities/surface/surfaceSubset/Make/options b/applications/utilities/surface/surfaceSubset/Make/options
index f535c206f..e5ecb7246 100644
--- a/applications/utilities/surface/surfaceSubset/Make/options
+++ b/applications/utilities/surface/surfaceSubset/Make/options
@@ -3,6 +3,8 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lmeshTools \
-ltriSurface
diff --git a/applications/utilities/surface/surfaceToPatch/Make/options b/applications/utilities/surface/surfaceToPatch/Make/options
index 6b0ab4880..2cac639c4 100644
--- a/applications/utilities/surface/surfaceToPatch/Make/options
+++ b/applications/utilities/surface/surfaceToPatch/Make/options
@@ -5,6 +5,8 @@ EXE_INC = \
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-ltriSurface \
-lmeshTools \
-ldynamicMesh
diff --git a/applications/utilities/surface/surfaceTransformPoints/Make/options b/applications/utilities/surface/surfaceTransformPoints/Make/options
index a504dd861..eb4238a06 100644
--- a/applications/utilities/surface/surfaceTransformPoints/Make/options
+++ b/applications/utilities/surface/surfaceTransformPoints/Make/options
@@ -2,4 +2,6 @@ EXE_INC = \
-I$(LIB_SRC)/surfMesh/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lsurfMesh
diff --git a/applications/utilities/thermophysical/chemkinToFoam/Make/options b/applications/utilities/thermophysical/chemkinToFoam/Make/options
index f27448722..2dc066802 100644
--- a/applications/utilities/thermophysical/chemkinToFoam/Make/options
+++ b/applications/utilities/thermophysical/chemkinToFoam/Make/options
@@ -1,9 +1,19 @@
EXE_INC = \
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
- -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude
+ -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
+ -I$(WM_CANTERA_DIR) \
+ -I$(WM_CANTERA_DIR)/cantera \
+ -I$(WM_CANTERA_DIR)/cantera/kinetics \
+ -I$(WM_CANTERA_DIR)/cantera/base \
+ -I$(WM_CANTERA_DIR)/cantera/transport \
+ -I$(WM_CANTERA_DIR)/cantera/thermo \
+ -I$(WM_CANTERA_DIR)/cantera/ext \
+ -I$(WM_CANTERA_DIR)/cantera/ext/fmt
EXE_LIBS = \
-lreactionThermophysicalModels \
-lcompressibleTransportModels \
-lfluidThermophysicalModels \
- -lspecie
+ -lspecie \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared
diff --git a/applications/utilities/thermophysical/mixtureAdiabaticFlameT/Make/options b/applications/utilities/thermophysical/mixtureAdiabaticFlameT/Make/options
index 98bf79aaa..115d83c7b 100644
--- a/applications/utilities/thermophysical/mixtureAdiabaticFlameT/Make/options
+++ b/applications/utilities/thermophysical/mixtureAdiabaticFlameT/Make/options
@@ -2,4 +2,6 @@ EXE_INC = \
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lspecie
diff --git a/etc/bashrc b/etc/bashrc
index bd7df4cb2..5feae72f0 100644
--- a/etc/bashrc
+++ b/etc/bashrc
@@ -32,7 +32,7 @@
#------------------------------------------------------------------------------
export WM_PROJECT=OpenFOAM
-export WM_PROJECT_VERSION=6
+export WM_PROJECT_VERSION=EclipseRE
################################################################################
# USER EDITABLE PART: Changes made here may be lost with the next upgrade
@@ -213,4 +213,59 @@ unset cleaned foamClean foamOldDirs
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[ "$BASH" ] && . $WM_PROJECT_DIR/etc/config.sh/bash_completion
+# Variables for Cantera. Requires installed Cantera version not higher than 2.5
+INSTALL_DIRECTORY="$WM_PROJECT_INST_DIR/canteraInstall"
+CANTERA_LIB_PATH="$INSTALL_DIRECTORY/lib"
+CANTERA_ENV_HOME="$HOME/anaconda3/envs/cantera-build"
+export CANTERA_LIB_PATH
+
+if [ -z $LD_LIBRARY_PATH ]; then
+ LD_LIBRARY_PATH=$INSTALL_DIRECTORY/lib
+else
+ LD_LIBRARY_PATH=$INSTALL_DIRECTORY/lib:$LD_LIBRARY_PATH
+fi
+export LD_LIBRARY_PATH
+
+if [ -z $PKG_CONFIG_PATH ]; then
+ PKG_CONFIG_PATH=$INSTALL_DIRECTORY/lib/pkgconfig
+else
+ PKG_CONFIG_PATH=$INSTALL_DIRECTORY/lib/pkgconfig:$PKG_CONFIG_PATH
+fi
+export PKG_CONFIG_PATH
+
+PYTHON_CMD=$CANTERA_ENV_HOME/bin/python
+export PYTHON_CMD
+
+PATH=$INSTALL_DIRECTORY/bin:$PATH
+export PATH
+
+CURRENT_PYTHON=$(which python)
+
+if [ "$PYTHON_CMD" != "$CURRENT_PYTHON" ]; then
+ alias ctpython="$PYTHON_CMD"
+fi
+
+if [ "default" = "y" ]; then
+ if [ -z $MATLABPATH ]; then
+ MATLABPATH=$INSTALL_DIRECTORY/lib/cantera/matlab/toolbox:$INSTALL_DIRECTORY/lib/cantera/matlab/toolbox/1D
+ else
+ MATLABPATH=$MATLABPATH:$INSTALL_DIRECTORY/lib/cantera/matlab/toolbox:$INSTALL_DIRECTORY/lib/cantera/matlab/toolbox/1D
+ fi
+ export MATLABPATH
+fi
+
+if [ "$INSTALL_DIRECTORY/lib/python3.9/site-packages" != "" ]; then
+ if [ -z $PYTHONPATH ]; then
+ PYTHONPATH=$INSTALL_DIRECTORY/lib/python3.9/site-packages
+ else
+ PYTHONPATH=$INSTALL_DIRECTORY/lib/python3.9/site-packages:$PYTHONPATH
+ fi
+fi
+
+export PYTHONPATH
+
+export WM_CANTERA_DIR="$INSTALL_DIRECTORY/include"
+
+export CANTERA_DATA="$INSTALL_DIRECTORY/share/cantera/data"
+
#------------------------------------------------------------------------------
diff --git a/etc/codeTemplates/app/Make/options b/etc/codeTemplates/app/Make/options
index d27c95d03..f85dc2e15 100644
--- a/etc/codeTemplates/app/Make/options
+++ b/etc/codeTemplates/app/Make/options
@@ -3,5 +3,7 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
-lfiniteVolume \
-lmeshTools
diff --git a/src/ODE/CVODES/CVODES.C b/src/ODE/CVODES/CVODES.C
new file mode 100644
index 000000000..d62f9bb4b
--- /dev/null
+++ b/src/ODE/CVODES/CVODES.C
@@ -0,0 +1,121 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration | Website: https://openfoam.org
+ \\ / A nd | Copyright (C) 2013-2018 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+\*---------------------------------------------------------------------------*/
+
+#include "CVODES.H"
+#include "addToRunTimeSelectionTable.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+ defineTypeNameAndDebug(CVODES, 0);
+
+ addToRunTimeSelectionTable(ODESolver, CVODES, dictionary);
+
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
+
+Foam::CVODES::CVODES(const ODESystem& ode, const dictionary& dict)
+:
+ ODESolver(ode, dict),
+ integ_(Cantera::newIntegrator("CVODE")),
+ y_(n_)
+{
+ // use backward differencing, with a full Jacobian computed
+ // numerically, and use a Newton linear iterator
+ integ_->setMethod(Cantera::BDF_Method);
+ integ_->setProblemType(Cantera::DENSE + Cantera::NOJAC);
+ integ_->setIterator(Cantera::Newton_Iter);
+
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+bool Foam::CVODES::resize()
+{
+ if (ODESolver::resize())
+ {
+ resizeField(y_);
+ init_ = false;
+
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+}
+
+
+void Foam::CVODES::solve
+(
+ const scalar xStart,
+ const scalar xEnd,
+ scalarField& y,
+ scalar& dxEst
+) const
+{
+ y_ = y;
+
+ extFunc ext_(n_, y_, odes_);
+ time_ = xStart;
+
+ if (!init_)
+ {
+ doublereal CvodeAbsTol[n_];
+ for(label i=0; isetTolerances(relTol_[0], n_, CvodeAbsTol);
+ integ_->setSensitivityTolerances(senRelTol_, senAbsTol_);
+ integ_->setMaxStepSize(xEnd - xStart);
+ integ_->setMaxErrTestFails(maxErrTestFails_);
+ integ_->initialize(time_, ext_);
+ integrator_init_ = true;
+ init_ = true;
+ }
+ else if (!integrator_init_)
+ {
+ integ_->reinitialize(time_, ext_);
+ integrator_init_ = true;
+ }
+
+ integ_->integrate(xEnd);
+ time_ = xEnd;
+ forAll (y_, i)
+ {
+ y[i] = integ_->solution()[i];
+ }
+
+ integrator_init_ = false;
+ dxEst = 1; //make it big
+}
+
+
+// ************************************************************************* //
diff --git a/src/ODE/CVODES/CVODES.H b/src/ODE/CVODES/CVODES.H
new file mode 100644
index 000000000..71c0d5dfe
--- /dev/null
+++ b/src/ODE/CVODES/CVODES.H
@@ -0,0 +1,123 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration | Website: https://openfoam.org
+ \\ / A nd | Copyright (C) 2013-2018 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+Class
+ Foam::CVODES
+
+Description
+
+
+SourceFiles
+ CVODES.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef CVODES_H
+#define CVODES_H
+
+
+#include "extFunc.H"
+#include "ODESolver.H"
+#include "cantera/numerics/CVodesIntegrator.h"
+#include "cantera/numerics/Integrator.h"
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+/*---------------------------------------------------------------------------*\
+ Class CVODES Declaration
+\*---------------------------------------------------------------------------*/
+
+class CVODES
+:
+ public ODESolver
+{
+ // Private data
+
+ // pointer to access cantera Integrators
+ std::unique_ptr integ_;
+ // current solution
+ mutable scalarField y_;
+ // Sensitivity Tolerances
+ scalar senRelTol_ = 1.0e-4;
+ scalar senAbsTol_ = 1.0e-6;
+ int maxErrTestFails_ = 0;
+
+ // current time
+ mutable scalar time_ = 0.0;
+
+ // if already initialized, true
+ mutable bool init_ = false;
+
+ // if already reinitialized, true
+ mutable bool integrator_init_ = false;
+
+public:
+
+ //- Runtime type information
+ TypeName("CVODES");
+
+
+ // Constructors
+
+ //- Construct from ODESystem
+ CVODES(const ODESystem& ode, const dictionary& dict);
+
+
+ //- Destructor
+ virtual ~CVODES()
+ {}
+
+
+ // Member Functions
+
+ //- Resize the ODE solver
+ virtual bool resize();
+
+ //- Solve the ODE system from xStart to xEnd, update the state
+ // and return an estimate for the next step in dxTry
+ virtual void solve
+ (
+ const scalar xStart,
+ const scalar xEnd,
+ scalarField& y,
+ scalar& dxEst
+ ) const;
+
+
+
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/ODE/CVODES/extFunc.C b/src/ODE/CVODES/extFunc.C
new file mode 100644
index 000000000..ea1c88a3f
--- /dev/null
+++ b/src/ODE/CVODES/extFunc.C
@@ -0,0 +1,76 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration | Website: https://openfoam.org
+ \\ / A nd | Copyright (C) 2013-2018 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+\*---------------------------------------------------------------------------*/
+
+#include "extFunc.H"
+
+
+// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
+
+Foam::extFunc::extFunc(label n, scalarField& y, const ODESystem& ode)
+:
+ FuncEval(),
+ n_(n),
+ y_(y),
+ odes_(ode)
+{}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+void Foam::extFunc::eval
+(
+ doublereal t,
+ doublereal* y,
+ doublereal* ydot,
+ doublereal* p
+)
+{
+ scalarField y0(n_);
+ scalarField dy(n_);
+ forAll(y0, i)
+ {
+ y0[i] = y[i];
+ }
+
+ odes_.derivatives(t, y0, dy);
+
+ forAll(dy, i)
+ {
+ ydot[i] = dy[i];
+ }
+}
+
+
+void Foam::extFunc::getState
+(
+ doublereal* y
+)
+{
+ forAll(y_, i)
+ {
+ y[i] = y_[i];
+ }
+}
+
+// ************************************************************************* //
diff --git a/src/ODE/CVODES/extFunc.H b/src/ODE/CVODES/extFunc.H
new file mode 100644
index 000000000..805bf6058
--- /dev/null
+++ b/src/ODE/CVODES/extFunc.H
@@ -0,0 +1,96 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration | Website: https://openfoam.org
+ \\ / A nd | Copyright (C) 2013-2018 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+Class
+ Foam::extFunc
+
+Description
+
+
+SourceFiles
+ extFunc.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef extFunc_H
+#define extFunc_H
+
+#include "cantera/numerics/FuncEval.h"
+#include "ODESystem.H"
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+/*---------------------------------------------------------------------------*\
+ Class CVODES Declaration
+\*---------------------------------------------------------------------------*/
+
+class extFunc
+:
+ public Cantera::FuncEval
+{
+ // Private data
+
+ label n_;
+ scalarField& y_;
+ const ODESystem& odes_;
+public:
+
+ // Constructors
+
+ //- Construct from ODESystem
+ extFunc(label n, scalarField& y, const ODESystem& ode);
+
+
+ //- Destructor
+ virtual ~extFunc()
+ {}
+
+
+ // Member Functions
+ virtual size_t neq()
+ {
+ return n_;
+ }
+ virtual void getState(double* y);
+ virtual void eval
+ (
+ doublereal t,
+ doublereal* y,
+ doublereal* ydot,
+ doublereal* p
+ );
+
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/ODE/Make/files b/src/ODE/Make/files
index 912b36fec..12561b974 100644
--- a/src/ODE/Make/files
+++ b/src/ODE/Make/files
@@ -17,5 +17,7 @@ ODESolvers/SIBS/SIBS.C
ODESolvers/SIBS/SIMPR.C
ODESolvers/SIBS/polyExtrapolate.C
ODESolvers/seulex/seulex.C
+CVODES/CVODES.C
+CVODES/extFunc.C
LIB = $(FOAM_LIBBIN)/libODE
diff --git a/src/ODE/Make/options b/src/ODE/Make/options
index e69de29bb..590a131ca 100644
--- a/src/ODE/Make/options
+++ b/src/ODE/Make/options
@@ -0,0 +1,28 @@
+EXE_INC = \
+ -I$(LIB_SRC)/transportModels/compressible/lnInclude \
+ -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
+ -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
+ -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
+ -I$(LIB_SRC)/thermophysicalModels/functions/Polynomial \
+ -I$(LIB_SRC)/ODE/lnInclude \
+ -I$(LIB_SRC)/finiteVolume/lnInclude \
+ -I$(LIB_SRC)/meshTools/lnInclude \
+ -I$(WM_CANTERA_DIR) \
+ -I$(WM_CANTERA_DIR)/cantera \
+ -I$(WM_CANTERA_DIR)/cantera/kinetics \
+ -I$(WM_CANTERA_DIR)/cantera/base \
+ -I$(WM_CANTERA_DIR)/cantera/transport \
+ -I$(WM_CANTERA_DIR)/cantera/thermo \
+ -I$(WM_CANTERA_DIR)/cantera/ext \
+ -I$(WM_CANTERA_DIR)/cantera/ext/fmt
+
+LIB_LIBS = \
+ -L$(CANTERA_LIB_PATH) \
+ -lcantera_shared \
+ -L$(FOAM_USER_LIBBIN) \
+ -lcompressibleTransportModels \
+ -lfluidThermophysicalModels \
+ -lreactionThermophysicalModels \
+ -lspecie \
+ -lfiniteVolume \
+ -lmeshTools
diff --git a/src/ODE/ODESolver/ODESolver.C b/src/ODE/ODESolver/ODESolver.C
new file mode 100644
index 000000000..6ac3993b4
--- /dev/null
+++ b/src/ODE/ODESolver/ODESolver.C
@@ -0,0 +1,200 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration | Website: https://openfoam.org
+ \\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+\*---------------------------------------------------------------------------*/
+
+#include "ODESolver.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+ defineTypeNameAndDebug(ODESolver, 0);
+ defineRunTimeSelectionTable(ODESolver, dictionary);
+}
+
+
+// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * //
+
+Foam::scalar Foam::ODESolver::normalizeError
+(
+ const scalarField& y0,
+ const scalarField& y,
+ const scalarField& err
+) const
+{
+ // Calculate the maximum error
+ scalar maxErr = 0.0;
+ forAll(err, i)
+ {
+ scalar tol = absTol_[i] + relTol_[i]*max(mag(y0[i]), mag(y[i]));
+ maxErr = max(maxErr, mag(err[i])/tol);
+ }
+
+ return maxErr;
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
+
+Foam::ODESolver::ODESolver(const ODESystem& ode, const dictionary& dict)
+:
+ odes_(ode),
+ maxN_(ode.nEqns()),
+ n_(ode.nEqns()),
+ absTol_(n_, dict.lookupOrDefault("absTol", 1e-15)),
+ relTol_(n_, dict.lookupOrDefault("relTol", 1e-4)),
+ maxSteps_(dict.lookupOrDefault("maxSteps", 10000))
+{}
+
+
+Foam::ODESolver::ODESolver
+(
+ const ODESystem& ode,
+ const scalarField& absTol,
+ const scalarField& relTol
+)
+:
+ odes_(ode),
+ maxN_(ode.nEqns()),
+ n_(ode.nEqns()),
+ absTol_(absTol),
+ relTol_(relTol),
+ maxSteps_(10000)
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
+
+bool Foam::ODESolver::resize()
+{
+ if (odes_.nEqns() != n_)
+ {
+ if (odes_.nEqns() > maxN_)
+ {
+ FatalErrorInFunction
+ << "Specified number of equations " << odes_.nEqns()
+ << " greater than maximum " << maxN_
+ << abort(FatalError);
+ }
+
+ n_ = odes_.nEqns();
+
+ resizeField(absTol_);
+ resizeField(relTol_);
+
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+}
+
+
+void Foam::ODESolver::solve
+(
+ scalar& x,
+ scalarField& y,
+ scalar& dxTry
+) const
+{
+ stepState step(dxTry);
+ solve(x, y, step);
+ dxTry = step.dxTry;
+}
+
+
+void Foam::ODESolver::solve
+(
+ scalar& x,
+ scalarField& y,
+ stepState& step
+) const
+{
+ scalar x0 = x;
+ solve(x, y, step.dxTry);
+ step.dxDid = x - x0;
+}
+
+
+void Foam::ODESolver::solve
+(
+ const scalar xStart,
+ const scalar xEnd,
+ scalarField& y,
+ scalar& dxTry
+) const
+{
+ stepState step(dxTry);
+ scalar x = xStart;
+
+ for (label nStep=0; nStep 0)
+ {
+ step.last = true;
+ step.dxTry = xEnd - x;
+ }
+
+ // Integrate as far as possible up to step.dxTry
+ solve(x, y, step);
+
+ // Check if reached xEnd
+ if ((x - xEnd)*(xEnd - xStart) >= 0)
+ {
+ if (nStep > 0 && step.last)
+ {
+ step.dxTry = dxTry0;
+ }
+
+ dxTry = step.dxTry;
+
+ return;
+ }
+
+ step.first = false;
+
+ // If the step.dxTry was reject set step.prevReject
+ if (step.reject)
+ {
+ step.prevReject = true;
+ }
+ }
+
+ FatalErrorInFunction
+ << "Integration steps greater than maximum " << maxSteps_ << nl
+ << " xStart = " << xStart << ", xEnd = " << xEnd
+ << ", x = " << x << ", dxDid = " << step.dxDid << nl
+ << " y = " << y
+ << exit(FatalError);
+}
+
+
+// ************************************************************************* //
diff --git a/src/ODE/ODESolver/ODESolver.H b/src/ODE/ODESolver/ODESolver.H
new file mode 100644
index 000000000..c30f6d390
--- /dev/null
+++ b/src/ODE/ODESolver/ODESolver.H
@@ -0,0 +1,235 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration | Website: https://openfoam.org
+ \\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+Class
+ Foam::ODESolver
+
+Description
+ Abstract base-class for ODE system solvers
+
+SourceFiles
+ ODESolver.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef ODESolver_H
+#define ODESolver_H
+
+#include "ODESystem.H"
+#include "typeInfo.H"
+#include "autoPtr.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+/*---------------------------------------------------------------------------*\
+ Class ODESolver Declaration
+\*---------------------------------------------------------------------------*/
+
+class ODESolver
+{
+
+protected:
+
+ // Protected data
+
+ //- Reference to ODESystem
+ const ODESystem& odes_;
+
+ //- Maximum size of the ODESystem
+ const label maxN_;
+
+ //- Size of the ODESystem (adjustable)
+ mutable label n_;
+
+ //- Absolute convergence tolerance per step
+ scalarField absTol_;
+
+ //- Relative convergence tolerance per step
+ scalarField relTol_;
+
+ //- The maximum number of sub-steps allowed for the integration step
+ label maxSteps_;
+
+
+ // Protected Member Functions
+
+ //- Return the nomalized scalar error
+ scalar normalizeError
+ (
+ const scalarField& y0,
+ const scalarField& y,
+ const scalarField& err
+ ) const;
+
+ //- Disallow default bitwise copy construct
+ ODESolver(const ODESolver&);
+
+ //- Disallow default bitwise assignment
+ void operator=(const ODESolver&);
+
+
+public:
+
+ friend class ODESystem;
+
+ //- Runtime type information
+ TypeName("ODESolver");
+
+ class stepState
+ {
+ public:
+
+ const bool forward;
+ scalar dxTry;
+ scalar dxDid;
+ bool first;
+ bool last;
+ bool reject;
+ bool prevReject;
+
+ stepState(const scalar dx)
+ :
+ forward(dx > 0 ? true : false),
+ dxTry(dx),
+ dxDid(0),
+ first(true),
+ last(false),
+ reject(false),
+ prevReject(false)
+ {}
+ };
+
+
+ // Declare run-time constructor selection table
+
+ declareRunTimeSelectionTable
+ (
+ autoPtr,
+ ODESolver,
+ dictionary,
+ (const ODESystem& ode, const dictionary& dict),
+ (ode, dict)
+ );
+
+
+ // Constructors
+
+ //- Construct for given ODESystem
+ ODESolver(const ODESystem& ode, const dictionary& dict);
+
+ //- Construct for given ODESystem specifying tolerances
+ ODESolver
+ (
+ const ODESystem& ode,
+ const scalarField& absTol,
+ const scalarField& relTol
+ );
+
+
+ // Selectors
+
+ //- Select null constructed
+ static autoPtr New
+ (
+ const ODESystem& ode,
+ const dictionary& dict
+ );
+
+
+ //- Destructor
+ virtual ~ODESolver()
+ {}
+
+
+ // Member Functions
+
+ //- Return the number of equations to solve
+ inline label nEqns() const;
+
+ //- Return access to the absolute tolerance field
+ inline scalarField& absTol();
+
+ //- Return access to the relative tolerance field
+ inline scalarField& relTol();
+
+ //- Resize the ODE solver
+ virtual bool resize() = 0;
+
+ template
+ static inline void resizeField(UList& f, const label n);
+
+ template
+ inline void resizeField(UList& f) const;
+
+ inline void resizeMatrix(scalarSquareMatrix& m) const;
+
+ //- Solve the ODE system as far as possible up to dxTry
+ // adjusting the step as necessary to provide a solution within
+ // the specified tolerance.
+ // Update the state and return an estimate for the next step in dxTry
+ virtual void solve
+ (
+ scalar& x,
+ scalarField& y,
+ scalar& dxTry
+ ) const;
+
+ //- Solve the ODE system as far as possible up to dxTry
+ // adjusting the step as necessary to provide a solution within
+ // the specified tolerance.
+ // Update the state and return an estimate for the next step in dxTry
+ virtual void solve
+ (
+ scalar& x,
+ scalarField& y,
+ stepState& step
+ ) const;
+
+ //- Solve the ODE system from xStart to xEnd, update the state
+ // and return an estimate for the next step in dxTry
+ virtual void solve
+ (
+ const scalar xStart,
+ const scalar xEnd,
+ scalarField& y,
+ scalar& dxEst
+ ) const;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#include "ODESolverI.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/ODE/ODESolver/ODESolverI.H b/src/ODE/ODESolver/ODESolverI.H
new file mode 100644
index 000000000..2d2040fe4
--- /dev/null
+++ b/src/ODE/ODESolver/ODESolverI.H
@@ -0,0 +1,67 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration | Website: https://openfoam.org
+ \\ / A nd | Copyright (C) 2016-2018 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+\*---------------------------------------------------------------------------*/
+
+// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
+
+
+inline Foam::label Foam::ODESolver::nEqns() const
+{
+ return n_;
+}
+
+
+inline Foam::scalarField& Foam::ODESolver::absTol()
+{
+ return absTol_;
+}
+
+
+inline Foam::scalarField& Foam::ODESolver::relTol()
+{
+ return relTol_;
+}
+
+
+template
+inline void Foam::ODESolver::resizeField(UList& f, const label n)
+{
+ f.shallowCopy(UList(f.begin(), n));
+}
+
+
+template
+inline void Foam::ODESolver::resizeField(UList& f) const
+{
+ resizeField(f, n_);
+}
+
+
+inline void Foam::ODESolver::resizeMatrix(scalarSquareMatrix& m) const
+{
+ m.shallowResize(n_);
+}
+
+
+// ************************************************************************* //
diff --git a/src/ODE/ODESolver/ODESolverNew.C b/src/ODE/ODESolver/ODESolverNew.C
new file mode 100644
index 000000000..10ba78012
--- /dev/null
+++ b/src/ODE/ODESolver/ODESolverNew.C
@@ -0,0 +1,56 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration | Website: https://openfoam.org
+ \\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+\*---------------------------------------------------------------------------*/
+
+#include "ODESolver.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+Foam::autoPtr Foam::ODESolver::New
+(
+ const ODESystem& odes,
+ const dictionary& dict
+)
+{
+ word ODESolverTypeName(dict.lookup("solver"));
+ Info<< "Selecting ODE solver " << ODESolverTypeName << endl;
+
+ dictionaryConstructorTable::iterator cstrIter =
+ dictionaryConstructorTablePtr_->find(ODESolverTypeName);
+
+ if (cstrIter == dictionaryConstructorTablePtr_->end())
+ {
+ FatalErrorInFunction
+ << "Unknown ODESolver type "
+ << ODESolverTypeName << nl << nl
+ << "Valid ODESolvers are : " << endl
+ << dictionaryConstructorTablePtr_->sortedToc()
+ << exit(FatalError);
+ }
+
+ return autoPtr(cstrIter()(odes, dict));
+}
+
+
+// ************************************************************************* //
diff --git a/src/combustionModels/Make/options b/src/combustionModels/Make/options
index e660ccd9f..dcda695ff 100644
--- a/src/combustionModels/Make/options
+++ b/src/combustionModels/Make/options
@@ -7,7 +7,15 @@ EXE_INC = \
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \
- -I$(LIB_SRC)/meshTools/lnInclude
+ -I$(LIB_SRC)/meshTools/lnInclude \
+ -I$(WM_CANTERA_DIR) \
+ -I$(WM_CANTERA_DIR)/cantera \
+ -I$(WM_CANTERA_DIR)/cantera/kinetics \
+ -I$(WM_CANTERA_DIR)/cantera/base \
+ -I$(WM_CANTERA_DIR)/cantera/transport \
+ -I$(WM_CANTERA_DIR)/cantera/thermo \
+ -I$(WM_CANTERA_DIR)/cantera/ext \
+ -I$(WM_CANTERA_DIR)/cantera/ext/fmt
LIB_LIBS = \
-lcompressibleTransportModels \
diff --git a/src/finiteVolume/Make/options b/src/finiteVolume/Make/options
index 1c1990e5f..2b348844e 100644
--- a/src/finiteVolume/Make/options
+++ b/src/finiteVolume/Make/options
@@ -1,8 +1,9 @@
EXE_INC = \
-I$(LIB_SRC)/triSurface/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
+ -I$(LIB_SRC)/meshTools/AMIInterpolation/patches/cyclicACMI/cyclicACMILduInterfaceField \
LIB_LIBS = \
-lOpenFOAM \
-ltriSurface \
- -lmeshTools
+ -lmeshTools
\ No newline at end of file
diff --git a/src/thermophysicalModels/SLGThermo/Make/options b/src/thermophysicalModels/SLGThermo/Make/options
index 6ac037828..a920318f8 100644
--- a/src/thermophysicalModels/SLGThermo/Make/options
+++ b/src/thermophysicalModels/SLGThermo/Make/options
@@ -4,7 +4,16 @@ EXE_INC = \
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/thermophysicalProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
- -I$(LIB_SRC)/finiteVolume/lnInclude
+ -I$(LIB_SRC)/finiteVolume/lnInclude \
+ -I$(WM_CANTERA_DIR) \
+ -I$(WM_CANTERA_DIR)/cantera \
+ -I$(WM_CANTERA_DIR)/cantera/kinetics \
+ -I$(WM_CANTERA_DIR)/cantera/base \
+ -I$(WM_CANTERA_DIR)/cantera/transport \
+ -I$(WM_CANTERA_DIR)/cantera/thermo \
+ -I$(WM_CANTERA_DIR)/cantera/ext \
+ -I$(WM_CANTERA_DIR)/cantera/ext/fmt
+
LIB_LIBS = \
-lcompressibleTransportModels \
diff --git a/src/thermophysicalModels/barotropicCompressibilityModel/Make/options b/src/thermophysicalModels/barotropicCompressibilityModel/Make/options
index 71b787396..1e8e11072 100644
--- a/src/thermophysicalModels/barotropicCompressibilityModel/Make/options
+++ b/src/thermophysicalModels/barotropicCompressibilityModel/Make/options
@@ -1,5 +1,14 @@
EXE_INC = \
- -I$(LIB_SRC)/finiteVolume/lnInclude
+ -I$(LIB_SRC)/finiteVolume/lnInclude \
+ -I$(WM_CANTERA_DIR) \
+ -I$(WM_CANTERA_DIR)/cantera \
+ -I$(WM_CANTERA_DIR)/cantera/kinetics \
+ -I$(WM_CANTERA_DIR)/cantera/base \
+ -I$(WM_CANTERA_DIR)/cantera/transport \
+ -I$(WM_CANTERA_DIR)/cantera/thermo \
+ -I$(WM_CANTERA_DIR)/cantera/ext \
+ -I$(WM_CANTERA_DIR)/cantera/ext/fmt
+
LIB_LIBS = \
-lfiniteVolume
diff --git a/src/thermophysicalModels/basic/Make/options b/src/thermophysicalModels/basic/Make/options
index cb1250389..8e92a0f48 100644
--- a/src/thermophysicalModels/basic/Make/options
+++ b/src/thermophysicalModels/basic/Make/options
@@ -3,7 +3,16 @@ EXE_INC = \
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/thermophysicalProperties/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \
- -I$(LIB_SRC)/meshTools/lnInclude
+ -I$(LIB_SRC)/meshTools/lnInclude \
+ -I$(WM_CANTERA_DIR) \
+ -I$(WM_CANTERA_DIR)/cantera \
+ -I$(WM_CANTERA_DIR)/cantera/kinetics \
+ -I$(WM_CANTERA_DIR)/cantera/base \
+ -I$(WM_CANTERA_DIR)/cantera/transport \
+ -I$(WM_CANTERA_DIR)/cantera/thermo \
+ -I$(WM_CANTERA_DIR)/cantera/ext \
+ -I$(WM_CANTERA_DIR)/cantera/ext/fmt
+
LIB_LIBS = \
-lcompressibleTransportModels \
diff --git a/src/thermophysicalModels/basic/psiThermo/canteraPsiThermo.C b/src/thermophysicalModels/basic/psiThermo/canteraPsiThermo.C
new file mode 100644
index 000000000..c5c8d1082
--- /dev/null
+++ b/src/thermophysicalModels/basic/psiThermo/canteraPsiThermo.C
@@ -0,0 +1,208 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration | Website: https://openfoam.org
+ \\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+\*---------------------------------------------------------------------------*/
+
+#include "canteraPsiThermo.H"
+
+// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
+
+template
+void Foam::canteraPsiThermo::calculate()
+{
+ const scalarField& hCells = this->he_;
+ const scalarField& pCells = this->p_;
+
+ scalarField& TCells = this->T_.primitiveFieldRef();
+ scalarField& psiCells = this->psi_.primitiveFieldRef();
+ scalarField& muCells = this->mu_.primitiveFieldRef();
+ scalarField& alphaCells = this->alpha_.primitiveFieldRef();
+
+ forAll(TCells, celli)
+ {
+ const typename MixtureType::thermoType& mixture_ =
+ this->cellMixture(celli);
+
+ TCells[celli] = mixture_.THE
+ (
+ hCells[celli],
+ pCells[celli],
+ TCells[celli]
+ );
+
+ psiCells[celli] = mixture_.psi(pCells[celli], TCells[celli]);
+/*
+ muCells[celli] = mixture_.mu(pCells[celli], TCells[celli]);
+ alphaCells[celli] = mixture_.alphah(pCells[celli], TCells[celli]);
+*/
+ muCells[celli] = this->muCellMixture(pCells[celli], TCells[celli], celli);
+ alphaCells[celli] = this->alphahCellMixture
+ (
+ pCells[celli],
+ TCells[celli],
+ celli
+ );
+
+ }
+
+ volScalarField::Boundary& pBf =
+ this->p_.boundaryFieldRef();
+
+ volScalarField::Boundary& TBf =
+ this->T_.boundaryFieldRef();
+
+ volScalarField::Boundary& psiBf =
+ this->psi_.boundaryFieldRef();
+
+ volScalarField::Boundary& heBf =
+ this->he().boundaryFieldRef();
+
+ volScalarField::Boundary& muBf =
+ this->mu_.boundaryFieldRef();
+
+ volScalarField::Boundary& alphaBf =
+ this->alpha_.boundaryFieldRef();
+
+ forAll(this->T_.boundaryField(), patchi)
+ {
+ fvPatchScalarField& pp = pBf[patchi];
+ fvPatchScalarField& pT = TBf[patchi];
+ fvPatchScalarField& ppsi = psiBf[patchi];
+ fvPatchScalarField& phe = heBf[patchi];
+ fvPatchScalarField& pmu = muBf[patchi];
+ fvPatchScalarField& palpha = alphaBf[patchi];
+
+ if (pT.fixesValue())
+ {
+ forAll(pT, facei)
+ {
+ const typename MixtureType::thermoType& mixture_ =
+ this->patchFaceMixture(patchi, facei);
+
+ phe[facei] = mixture_.HE(pp[facei], pT[facei]);
+
+ ppsi[facei] = mixture_.psi(pp[facei], pT[facei]);
+/*
+ pmu[facei] = mixture_.mu(pp[facei], pT[facei]);
+ palpha[facei] = mixture_.alphah(pp[facei], pT[facei]);
+*/
+
+ pmu[facei] = this->muPatchFaceMixture
+ (
+ pp[facei],
+ pT[facei],
+ patchi,
+ facei
+ );
+ palpha[facei] = this->alphahPatchFaceMixture
+ (
+ pp[facei],
+ pT[facei],
+ patchi,
+ facei
+ );
+ }
+ }
+ else
+ {
+ forAll(pT, facei)
+ {
+ const typename MixtureType::thermoType& mixture_ =
+ this->patchFaceMixture(patchi, facei);
+
+ pT[facei] = mixture_.THE(phe[facei], pp[facei], pT[facei]);
+
+ ppsi[facei] = mixture_.psi(pp[facei], pT[facei]);
+/*
+ pmu[facei] = mixture_.mu(pp[facei], pT[facei]);
+ palpha[facei] = mixture_.alphah(pp[facei], pT[facei]);
+*/
+
+ pmu[facei] = this->muPatchFaceMixture
+ (
+ pp[facei],
+ pT[facei],
+ patchi,
+ facei
+ );
+ palpha[facei] = this->alphahPatchFaceMixture
+ (
+ pp[facei],
+ pT[facei],
+ patchi,
+ facei
+ );
+ }
+ }
+ }
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
+
+template
+Foam::canteraPsiThermo::canteraPsiThermo
+(
+ const fvMesh& mesh,
+ const word& phaseName
+)
+:
+ heThermo(mesh, phaseName)
+{
+ calculate();
+
+ // Switch on saving old time
+ this->psi_.oldTime();
+}
+
+
+// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
+
+template
+Foam::canteraPsiThermo::~canteraPsiThermo()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
+
+template
+void Foam::canteraPsiThermo::correct()
+{
+ if (debug)
+ {
+ InfoInFunction << endl;
+ }
+
+ // force the saving of the old-time values
+ this->psi_.oldTime();
+
+ calculate();
+
+ if (debug)
+ {
+ Info<< " Finished" << endl;
+ }
+}
+
+
+// ************************************************************************* //
diff --git a/src/thermophysicalModels/basic/psiThermo/canteraPsiThermo.H b/src/thermophysicalModels/basic/psiThermo/canteraPsiThermo.H
new file mode 100644
index 000000000..556c20dba
--- /dev/null
+++ b/src/thermophysicalModels/basic/psiThermo/canteraPsiThermo.H
@@ -0,0 +1,104 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration | Website: https://openfoam.org
+ \\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+Class
+ Foam::hePsiThermo
+
+Description
+ Energy for a mixture based on compressibility
+
+SourceFiles
+ hePsiThermo.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef canteraPsiThermo_H
+#define canteraPsiThermo_H
+
+#include "psiThermo.H"
+#include "heThermo.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+/*---------------------------------------------------------------------------*\
+ Class canteraPsiThermo Declaration
+\*---------------------------------------------------------------------------*/
+
+template
+class canteraPsiThermo
+:
+ public heThermo
+{
+ // Private Member Functions
+
+ //- Calculate the thermo variables
+ void calculate();
+
+ //- Construct as copy (not implemented)
+ canteraPsiThermo(const canteraPsiThermo&);
+
+public:
+
+ //- Runtime type information
+ TypeName("canteraPsiThermo");
+
+
+ // Constructors
+
+ //- Construct from mesh and phase name
+ canteraPsiThermo
+ (
+ const fvMesh&,
+ const word& phaseName
+ );
+
+
+ //- Destructor
+ virtual ~canteraPsiThermo();
+
+
+ // Member functions
+
+ //- Update properties
+ virtual void correct();
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#ifdef NoRepository
+ #include "canteraPsiThermo.C"
+#endif
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/thermophysicalModels/basic/psiThermo/hePsiThermo.C b/src/thermophysicalModels/basic/psiThermo/hePsiThermo.C
index 75ffc8bb3..db0d7871f 100644
--- a/src/thermophysicalModels/basic/psiThermo/hePsiThermo.C
+++ b/src/thermophysicalModels/basic/psiThermo/hePsiThermo.C
@@ -23,7 +23,7 @@ License
\*---------------------------------------------------------------------------*/
-#include "hePsiThermo.H"
+#include "hePsiThermo.H"
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
@@ -49,7 +49,6 @@ void Foam::hePsiThermo::calculate()
pCells[celli],
TCells[celli]
);
-
psiCells[celli] = mixture_.psi(pCells[celli], TCells[celli]);
muCells[celli] = mixture_.mu(pCells[celli], TCells[celli]);
diff --git a/src/thermophysicalModels/chemistryModel/Make/options b/src/thermophysicalModels/chemistryModel/Make/options
index fe465607a..e838ce2ff 100644
--- a/src/thermophysicalModels/chemistryModel/Make/options
+++ b/src/thermophysicalModels/chemistryModel/Make/options
@@ -6,9 +6,18 @@ EXE_INC = \
-I$(LIB_SRC)/thermophysicalModels/functions/Polynomial \
-I$(LIB_SRC)/ODE/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \
- -I$(LIB_SRC)/meshTools/lnInclude
+ -I$(LIB_SRC)/meshTools/lnInclude \
+ -I$(WM_CANTERA_DIR) \
+ -I$(WM_CANTERA_DIR)/cantera \
+ -I$(WM_CANTERA_DIR)/cantera/kinetics \
+ -I$(WM_CANTERA_DIR)/cantera/base \
+ -I$(WM_CANTERA_DIR)/cantera/transport \
+ -I$(WM_CANTERA_DIR)/cantera/thermo \
+ -I$(WM_CANTERA_DIR)/cantera/ext \
+ -I$(WM_CANTERA_DIR)/cantera/ext/fmt
LIB_LIBS = \
+ -L$(FOAM_USER_LIBBIN) \
-lcompressibleTransportModels \
-lfluidThermophysicalModels \
-lreactionThermophysicalModels \
diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/BasicChemistryModel/BasicChemistryModels.C b/src/thermophysicalModels/chemistryModel/chemistryModel/BasicChemistryModel/BasicChemistryModels.C
index 500f35b4e..43eaa6817 100644
--- a/src/thermophysicalModels/chemistryModel/chemistryModel/BasicChemistryModel/BasicChemistryModels.C
+++ b/src/thermophysicalModels/chemistryModel/chemistryModel/BasicChemistryModel/BasicChemistryModels.C
@@ -37,6 +37,7 @@ Description
#include "StandardChemistryModel.H"
#include "TDACChemistryModel.H"
#include "thermoPhysicsTypes.H"
+#include "canteraChemistryModel.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -274,6 +275,121 @@ namespace Foam
constHThermoPhysics
);
+
+ // cantera chemistry model
+ makeChemistryModelType
+ (
+ canteraChemistryModel,
+ psiReactionThermo,
+ constGasHThermoPhysics
+ );
+
+ makeChemistryModelType
+ (
+ canteraChemistryModel,
+ psiReactionThermo,
+ gasHThermoPhysics
+ );
+
+ makeChemistryModelType
+ (
+ canteraChemistryModel,
+ psiReactionThermo,
+ constIncompressibleGasHThermoPhysics
+ );
+
+ makeChemistryModelType
+ (
+ canteraChemistryModel,
+ psiReactionThermo,
+ incompressibleGasHThermoPhysics
+ );
+
+ makeChemistryModelType
+ (
+ canteraChemistryModel,
+ psiReactionThermo,
+ icoPoly8HThermoPhysics
+ );
+
+ makeChemistryModelType
+ (
+ canteraChemistryModel,
+ psiReactionThermo,
+ constFluidHThermoPhysics
+ );
+
+ makeChemistryModelType
+ (
+ canteraChemistryModel,
+ psiReactionThermo,
+ constAdiabaticFluidHThermoPhysics
+ );
+
+ makeChemistryModelType
+ (
+ canteraChemistryModel,
+ psiReactionThermo,
+ constHThermoPhysics
+ );
+
+
+ makeChemistryModelType
+ (
+ canteraChemistryModel,
+ rhoReactionThermo,
+ constGasHThermoPhysics
+ );
+
+ makeChemistryModelType
+ (
+ canteraChemistryModel,
+ rhoReactionThermo,
+ gasHThermoPhysics
+ );
+
+ makeChemistryModelType
+ (
+ canteraChemistryModel,
+ rhoReactionThermo,
+ constIncompressibleGasHThermoPhysics
+ );
+
+ makeChemistryModelType
+ (
+ canteraChemistryModel,
+ rhoReactionThermo,
+ incompressibleGasHThermoPhysics
+ );
+
+ makeChemistryModelType
+ (
+ canteraChemistryModel,
+ rhoReactionThermo,
+ icoPoly8HThermoPhysics
+ );
+
+ makeChemistryModelType
+ (
+ canteraChemistryModel,
+ rhoReactionThermo,
+ constFluidHThermoPhysics
+ );
+
+ makeChemistryModelType
+ (
+ canteraChemistryModel,
+ rhoReactionThermo,
+ constAdiabaticFluidHThermoPhysics
+ );
+
+ makeChemistryModelType
+ (
+ canteraChemistryModel,
+ rhoReactionThermo,
+ constHThermoPhysics
+ );
+
// Chemistry moldels based on sensibleInternalEnergy
makeChemistryModelType
@@ -503,6 +619,121 @@ namespace Foam
rhoReactionThermo,
constEThermoPhysics
);
+
+
+ // cantera chemistry model
+ makeChemistryModelType
+ (
+ canteraChemistryModel,
+ psiReactionThermo,
+ constGasEThermoPhysics
+ );
+
+ makeChemistryModelType
+ (
+ canteraChemistryModel,
+ psiReactionThermo,
+ gasEThermoPhysics
+ );
+
+ makeChemistryModelType
+ (
+ canteraChemistryModel,
+ psiReactionThermo,
+ constIncompressibleGasEThermoPhysics
+ );
+
+ makeChemistryModelType
+ (
+ canteraChemistryModel,
+ psiReactionThermo,
+ incompressibleGasEThermoPhysics
+ );
+
+ makeChemistryModelType
+ (
+ canteraChemistryModel,
+ psiReactionThermo,
+ icoPoly8EThermoPhysics
+ );
+
+ makeChemistryModelType
+ (
+ canteraChemistryModel,
+ psiReactionThermo,
+ constFluidEThermoPhysics
+ );
+
+ makeChemistryModelType
+ (
+ canteraChemistryModel,
+ psiReactionThermo,
+ constAdiabaticFluidEThermoPhysics
+ );
+
+ makeChemistryModelType
+ (
+ canteraChemistryModel,
+ psiReactionThermo,
+ constEThermoPhysics
+ );
+
+
+ makeChemistryModelType
+ (
+ canteraChemistryModel,
+ rhoReactionThermo,
+ constGasEThermoPhysics
+ );
+
+ makeChemistryModelType
+ (
+ canteraChemistryModel,
+ rhoReactionThermo,
+ gasEThermoPhysics
+ );
+
+ makeChemistryModelType
+ (
+ canteraChemistryModel,
+ rhoReactionThermo,
+ constIncompressibleGasEThermoPhysics
+ );
+
+ makeChemistryModelType
+ (
+ canteraChemistryModel,
+ rhoReactionThermo,
+ incompressibleGasEThermoPhysics
+ );
+
+ makeChemistryModelType
+ (
+ canteraChemistryModel,
+ rhoReactionThermo,
+ icoPoly8EThermoPhysics
+ );
+
+ makeChemistryModelType
+ (
+ canteraChemistryModel,
+ rhoReactionThermo,
+ constFluidEThermoPhysics
+ );
+
+ makeChemistryModelType
+ (
+ canteraChemistryModel,
+ rhoReactionThermo,
+ constAdiabaticFluidEThermoPhysics
+ );
+
+ makeChemistryModelType
+ (
+ canteraChemistryModel,
+ rhoReactionThermo,
+ constEThermoPhysics
+ );
}
// ************************************************************************* //
diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/StandardChemistryModel/StandardChemistryModel.C b/src/thermophysicalModels/chemistryModel/chemistryModel/StandardChemistryModel/StandardChemistryModel.C
index fffb7f31b..2286993d1 100644
--- a/src/thermophysicalModels/chemistryModel/chemistryModel/StandardChemistryModel/StandardChemistryModel.C
+++ b/src/thermophysicalModels/chemistryModel/chemistryModel/StandardChemistryModel/StandardChemistryModel.C
@@ -111,7 +111,7 @@ void Foam::StandardChemistryModel::omega
{
dcdt = Zero;
-
+
forAll(reactions_, i)
{
const Reaction& R = reactions_[i];
@@ -186,7 +186,7 @@ void Foam::StandardChemistryModel::derivatives
dT /= rho*cp;
dcdt[nSpecie_] = -dT;
-
+
// dp/dt = ...
dcdt[nSpecie_ + 1] = 0;
}
diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/canteraChemistryModel/canteraChemistryModel.C b/src/thermophysicalModels/chemistryModel/chemistryModel/canteraChemistryModel/canteraChemistryModel.C
new file mode 100644
index 000000000..8afd56362
--- /dev/null
+++ b/src/thermophysicalModels/chemistryModel/chemistryModel/canteraChemistryModel/canteraChemistryModel.C
@@ -0,0 +1,674 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration | Website: https://openfoam.org
+ \\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+\*---------------------------------------------------------------------------*/
+
+#include "canteraChemistryModel.H"
+#include "reactingMixture.H"
+//#include "canteraMixture.H"
+#include "UniformField.H"
+#include "extrapolatedCalculatedFvPatchFields.H"
+
+// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
+
+template
+Foam::canteraChemistryModel::canteraChemistryModel
+(
+ ReactionThermo& thermo
+)
+:
+ BasicChemistryModel(thermo),
+ ODESystem(),
+ reactions_
+ (
+ dynamic_cast&>(this->thermo())
+ ),
+ gas_
+ (
+ dynamic_cast&>
+ (this->thermo()).canteraGas()
+ ),
+
+ Y_(this->thermo().composition().Y()),
+ specieThermo_
+ (
+ dynamic_cast&>
+ (this->thermo()).speciesData()
+ ),
+
+ nSpecie_(Y_.size()),
+ nReaction_(gas_.nReactions()),
+ Treact_
+ (
+ BasicChemistryModel::template lookupOrDefault
+ (
+ "Treact",
+ 0
+ )
+ ),
+ RR_(nSpecie_),
+ c_(nSpecie_),
+ dcdt_(nSpecie_)
+{
+ // Info << gas_.nSpecies() << endl;
+ // Create the fields for the chemistry sources
+ forAll(RR_, fieldi)
+ {
+ RR_.set
+ (
+ fieldi,
+ new volScalarField::Internal
+ (
+ IOobject
+ (
+ "RR." + Y_[fieldi].name(),
+ this->mesh().time().timeName(),
+ this->mesh(),
+ IOobject::NO_READ,
+ IOobject::NO_WRITE
+ ),
+ thermo.p().mesh(),
+ dimensionedScalar("zero", dimMass/dimVolume/dimTime, 0)
+ )
+ );
+ }
+
+ Info<< "StandardChemistryModel: Number of species = " << nSpecie_
+ << " and reactions = " << nReaction_ << endl;
+}
+
+
+// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
+
+template
+Foam::canteraChemistryModel::
+~canteraChemistryModel()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
+
+template
+void Foam::canteraChemistryModel::omega
+(
+ const scalarField& c,
+ const scalar T,
+ const scalar p,
+ scalarField& dcdt
+) const
+{
+ dcdt = Zero;
+
+ doublereal X[nSpecie_];
+ doublereal wdot[nSpecie_];
+
+ for(label i=0; i
+Foam::scalar Foam::canteraChemistryModel::omegaI
+(
+ const label index,
+ const scalarField& c,
+ const scalar T,
+ const scalar p
+) const
+{
+ doublereal X[nSpecie_];
+ doublereal rdot[nSpecie_];
+
+ for(label i=0; i
+Foam::scalar Foam::canteraChemistryModel::omegaI
+(
+ const label index,
+ const scalarField& c,
+ const scalar T,
+ const scalar p,
+ scalar& pf,
+ scalar& cf,
+ label& lRef,
+ scalar& pr,
+ scalar& cr,
+ label& rRef
+) const
+{
+ return(0.0);
+}
+
+template
+void Foam::canteraChemistryModel::derivatives
+(
+ const scalar time,
+ const scalarField& c,
+ scalarField& dcdt
+) const
+{
+ const scalar T = c[nSpecie_];
+ const scalar p = c[nSpecie_ + 1];
+
+ forAll(c_, i)
+ {
+ c_[i] = max(c[i], 0);
+ }
+
+ omega(c_, T, p, dcdt);
+
+ // Constant pressure
+ // dT/dt = ...
+ scalar rho = 0;
+ scalar cSum = 0;
+ for (label i=0; i < nSpecie_; i++)
+ {
+ const scalar W = specieThermo_[i].W();
+ cSum += c_[i];
+ rho += W*c_[i];
+ }
+ scalar cp = 0;
+ for (label i=0; i
+void Foam::canteraChemistryModel::jacobian
+(
+ const scalar t,
+ const scalarField& c,
+ scalarField& dcdt,
+ scalarSquareMatrix& J
+) const
+{
+ scalarField cc(nSpecie_+2, 0.0);
+ scalarField dcdtP(nSpecie_+2, 0.0);
+ const scalar T = c[nSpecie_];
+ const scalar p = c[nSpecie_ + 1];
+
+ J = Zero;
+ dcdt = Zero;
+
+ forAll (cc, i)
+ {
+ cc[i] = c[i];
+ cc[i] = max(cc[i], 0);
+ }
+ derivatives(t, cc, dcdt);
+
+ for (label i=0; i
+Foam::tmp
+Foam::canteraChemistryModel::tc() const
+{
+ tmp ttc
+ (
+ new volScalarField
+ (
+ IOobject
+ (
+ "tc",
+ this->time().timeName(),
+ this->mesh(),
+ IOobject::NO_READ,
+ IOobject::NO_WRITE,
+ false
+ ),
+ this->mesh(),
+ dimensionedScalar("zero", dimTime, small),
+ extrapolatedCalculatedFvPatchScalarField::typeName
+ )
+ );
+
+ scalarField& tc = ttc.ref();
+
+ tmp trho(this->thermo().rho());
+ const scalarField& rho = trho();
+
+ const scalarField& T = this->thermo().T();
+ const scalarField& p = this->thermo().p();
+
+ doublereal fwdRate[nReaction_];
+ doublereal X[nSpecie_];
+
+ if (this->chemistry_)
+ {
+ forAll(rho, celli)
+ {
+ const scalar rhoi = rho[celli];
+ const scalar Ti = T[celli];
+ const scalar pi = p[celli];
+
+ scalar cSum = 0;
+
+ for (label i=0; iproducts)
+ {
+ tc[celli] += sp.second*fwdRate[i];
+ }
+
+ }
+
+ tc[celli] = nReaction_*cSum/tc[celli];
+ }
+ }
+
+ ttc.ref().correctBoundaryConditions();
+
+ return ttc;
+}
+
+
+template
+Foam::tmp
+Foam::canteraChemistryModel::Qdot() const
+{
+ tmp tQdot
+ (
+ new volScalarField
+ (
+ IOobject
+ (
+ "Qdot",
+ this->mesh_.time().timeName(),
+ this->mesh_,
+ IOobject::NO_READ,
+ IOobject::NO_WRITE,
+ false
+ ),
+ this->mesh_,
+ dimensionedScalar("zero", dimEnergy/dimVolume/dimTime, 0)
+ )
+ );
+
+ if (this->chemistry_)
+ {
+ scalarField& Qdot = tQdot.ref();
+
+ forAll(Y_, i)
+ {
+ forAll(Qdot, celli)
+ {
+ const scalar hi = specieThermo_[i].Hc();
+ Qdot[celli] -= hi*RR_[i][celli];
+ }
+ }
+ }
+
+ return tQdot;
+}
+
+
+template
+Foam::tmp>
+Foam::canteraChemistryModel::calculateRR
+(
+ const label ri,
+ const label si
+) const
+{
+ tmp tRR
+ (
+ new volScalarField::Internal
+ (
+ IOobject
+ (
+ "RR",
+ this->mesh().time().timeName(),
+ this->mesh(),
+ IOobject::NO_READ,
+ IOobject::NO_WRITE
+ ),
+ this->mesh(),
+ dimensionedScalar("zero", dimMass/dimVolume/dimTime, 0)
+ )
+ );
+
+ volScalarField::Internal& RR = tRR.ref();
+
+ tmp trho(this->thermo().rho());
+ const scalarField& rho = trho();
+
+ const scalarField& T = this->thermo().T();
+ const scalarField& p = this->thermo().p();
+
+ doublereal netRate[nReaction_];
+ doublereal X[nSpecie_];
+
+ forAll(rho, celli)
+ {
+ const scalar rhoi = rho[celli];
+ const scalar Ti = T[celli];
+ const scalar pi = p[celli];
+
+ for (label i=0; ireactants)
+ {
+ if (si == static_cast(gas_.speciesIndex(sp.first)))
+ {
+ RR[celli] -= sp.second*netRate[ri];
+ }
+
+ }
+ for (const auto& sp : R->products)
+ {
+ if (si == static_cast(gas_.speciesIndex(sp.first)))
+ {
+ RR[celli] += sp.second*netRate[ri];
+ }
+ }
+
+ RR[celli] *= specieThermo_[si].W();
+ }
+
+ return tRR;
+}
+
+
+template
+void Foam::canteraChemistryModel::calculate()
+{
+ if (!this->chemistry_)
+ {
+ return;
+ }
+
+ tmp trho(this->thermo().rho());
+ const scalarField& rho = trho();
+
+ const scalarField& T = this->thermo().T();
+ const scalarField& p = this->thermo().p();
+
+ forAll(rho, celli)
+ {
+ const scalar rhoi = rho[celli];
+ const scalar Ti = T[celli];
+ const scalar pi = p[celli];
+
+ for (label i=0; i
+template
+Foam::scalar Foam::canteraChemistryModel::solve
+(
+ const DeltaTType& deltaT
+)
+{
+ BasicChemistryModel::correct();
+
+ scalar deltaTMin = great;
+
+ if (!this->chemistry_)
+ {
+ return deltaTMin;
+ }
+
+ tmp trho(this->thermo().rho());
+ const scalarField& rho = trho();
+
+ const scalarField& T = this->thermo().T();
+ const scalarField& p = this->thermo().p();
+
+ scalarField c0(nSpecie_);
+
+ forAll(rho, celli)
+ {
+ scalar Ti = T[celli];
+
+ if (Ti > Treact_)
+ {
+ const scalar rhoi = rho[celli];
+ scalar pi = p[celli];
+
+ for (label i=0; i small)
+ {
+ scalar dt = timeLeft;
+ this->solve(c_, Ti, pi, dt, this->deltaTChem_[celli]);
+ timeLeft -= dt;
+ }
+
+ deltaTMin = min(this->deltaTChem_[celli], deltaTMin);
+
+ this->deltaTChem_[celli] =
+ min(this->deltaTChem_[celli], this->deltaTChemMax_);
+
+ for (label i=0; i
+Foam::scalar Foam::canteraChemistryModel::solve
+(
+ const scalar deltaT
+)
+{
+ // Don't allow the time-step to change more than a factor of 2
+ return min
+ (
+ this->solve>(UniformField(deltaT)),
+ 2*deltaT
+ );
+}
+
+
+template
+Foam::scalar Foam::canteraChemistryModel::solve
+(
+ const scalarField& deltaT
+)
+{
+ return this->solve(deltaT);
+}
+
+
+// ************************************************************************* //
diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/canteraChemistryModel/canteraChemistryModel.H b/src/thermophysicalModels/chemistryModel/chemistryModel/canteraChemistryModel/canteraChemistryModel.H
new file mode 100644
index 000000000..1ec5cfa8f
--- /dev/null
+++ b/src/thermophysicalModels/chemistryModel/chemistryModel/canteraChemistryModel/canteraChemistryModel.H
@@ -0,0 +1,287 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration | Website: https://openfoam.org
+ \\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+Class
+ Foam::canteraChemistryModel
+
+Description
+ Extends base chemistry model by adding a thermo package, and ODE functions.
+ Introduces chemistry equation system and evaluation of chemical source
+ terms. Get the necessary information from cantera package.
+
+SourceFiles
+ canteraChemistryModelI.H
+ canteraChemistryModel.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef canteraChemistryModel_H
+#define canteraChemistryModel_H
+
+#include "BasicChemistryModel.H"
+#include "Reaction.H"
+#include "ODESystem.H"
+#include "volFields.H"
+#include "simpleMatrix.H"
+#include "cantera/IdealGasMix.h"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+// Forward declaration of classes
+class fvMesh;
+
+/*---------------------------------------------------------------------------*\
+ Class StandardChemistryModel Declaration
+\*---------------------------------------------------------------------------*/
+
+template
+class canteraChemistryModel
+:
+ public BasicChemistryModel,
+ public ODESystem
+{
+ // Private Member Functions
+
+ //- Solve the reaction system for the given time step
+ // of given type and return the characteristic time
+ template
+ scalar solve(const DeltaTType& deltaT);
+
+ //- Disallow copy constructor
+ canteraChemistryModel(const canteraChemistryModel&);
+
+ //- Disallow default bitwise assignment
+ void operator=(const canteraChemistryModel&);
+
+
+protected:
+
+ typedef ThermoType thermoType;
+
+
+ // Protected data
+ //- Reactions
+ const PtrList>& reactions_;
+
+ //- cantera object
+ mutable Cantera::IdealGasMix gas_;
+
+ // Cantera::GasKinetics kin_;
+
+ //- Reference to the field of specie mass fractions
+ PtrList& Y_;
+
+ //- Thermodynamic data of the species
+ const PtrList& specieThermo_;
+
+ //- Number of species
+ label nSpecie_;
+
+ //- Number of reactions
+ label nReaction_;
+
+ //- Temperature below which the reaction rates are assumed 0
+ scalar Treact_;
+
+ //- List of reaction rate per specie [kg/m3/s]
+ PtrList RR_;
+
+ //- Temporary concentration field
+ mutable scalarField c_;
+
+ //- Temporary rate-of-change of concentration field
+ mutable scalarField dcdt_;
+
+
+ // Protected Member Functions
+
+ //- Write access to chemical source terms
+ // (e.g. for multi-chemistry model)
+ inline PtrList& RR();
+
+
+public:
+
+ //- Runtime type information
+ TypeName("cantera");
+
+
+ // Constructors
+
+ //- Construct from thermo
+ canteraChemistryModel(ReactionThermo& thermo);
+
+
+ //- Destructor
+ virtual ~canteraChemistryModel();
+
+
+ // Member Functions
+
+ //- The reactions
+ inline const PtrList>& reactions() const;
+
+ //- Thermodynamic data of the species
+ inline const PtrList& specieThermo() const;
+
+ //- The number of species
+ virtual inline label nSpecie() const;
+
+ //- The number of reactions
+ virtual inline label nReaction() const;
+
+ //- Temperature below which the reaction rates are assumed 0
+ inline scalar Treact() const;
+
+ //- Temperature below which the reaction rates are assumed 0
+ inline scalar& Treact();
+
+ //- dc/dt = omega, rate of change in concentration, for each species
+ virtual void omega
+ (
+ const scalarField& c,
+ const scalar T,
+ const scalar p,
+ scalarField& dcdt
+ ) const;
+
+
+ //- Return the reaction rate for iReaction and the reference
+ // species and charateristic times
+ virtual scalar omegaI
+ (
+ label index,
+ const scalarField& c,
+ const scalar T,
+ const scalar p
+ ) const;
+
+ virtual scalar omegaI
+ (
+ label iReaction,
+ const scalarField& c,
+ const scalar T,
+ const scalar p,
+ scalar& pf,
+ scalar& cf,
+ label& lRef,
+ scalar& pr,
+ scalar& cr,
+ label& rRef
+ ) const;
+
+ //- Calculates the reaction rates
+ virtual void calculate();
+
+
+ // Chemistry model functions (overriding abstract functions in
+ // basicChemistryModel.H)
+
+ //- Return const access to the chemical source terms for specie, i
+ inline const volScalarField::Internal& RR
+ (
+ const label i
+ ) const;
+
+ //- Return non const access to chemical source terms [kg/m3/s]
+ virtual volScalarField::Internal& RR
+ (
+ const label i
+ );
+
+ //- Return reaction rate of the speciei in reactionI
+ virtual tmp calculateRR
+ (
+ const label reactionI,
+ const label speciei
+ ) const;
+
+ //- Solve the reaction system for the given time step
+ // and return the characteristic time
+ virtual scalar solve(const scalar deltaT);
+
+ //- Solve the reaction system for the given time step
+ // and return the characteristic time
+ virtual scalar solve(const scalarField& deltaT);
+
+ //- Return the chemical time scale
+ virtual tmp tc() const;
+
+ //- Return the heat release rate [kg/m/s3]
+ virtual tmp Qdot() const;
+
+
+ // ODE functions (overriding abstract functions in ODE.H)
+
+ //- Number of ODE's to solve
+ inline virtual label nEqns() const;
+
+ virtual void derivatives
+ (
+ const scalar t,
+ const scalarField& c,
+ scalarField& dcdt
+ ) const;
+
+ virtual void jacobian
+ (
+ const scalar t,
+ const scalarField& c,
+ scalarField& dcdt,
+ scalarSquareMatrix& J
+ ) const;
+
+
+ virtual void solve
+ (
+ scalarField &c,
+ scalar& T,
+ scalar& p,
+ scalar& deltaT,
+ scalar& subDeltaT
+ ) const = 0;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#include "canteraChemistryModelI.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#ifdef NoRepository
+ #include "canteraChemistryModel.C"
+#endif
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/canteraChemistryModel/canteraChemistryModelI.H b/src/thermophysicalModels/chemistryModel/chemistryModel/canteraChemistryModel/canteraChemistryModelI.H
new file mode 100644
index 000000000..4cefbeb25
--- /dev/null
+++ b/src/thermophysicalModels/chemistryModel/chemistryModel/canteraChemistryModel/canteraChemistryModelI.H
@@ -0,0 +1,117 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration | Website: https://openfoam.org
+ \\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+\*---------------------------------------------------------------------------*/
+
+#include "volFields.H"
+#include "zeroGradientFvPatchFields.H"
+
+// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
+
+template
+inline Foam::label
+Foam::canteraChemistryModel::nEqns() const
+{
+ // nEqns = number of species + temperature + pressure
+ return nSpecie_ + 2;
+}
+
+
+template
+inline const Foam::PtrList>&
+Foam::canteraChemistryModel::reactions() const
+{
+ return reactions_;
+}
+
+
+template
+inline Foam::PtrList>&
+Foam::canteraChemistryModel::RR()
+{
+ return RR_;
+}
+
+
+template
+inline const Foam::PtrList&
+Foam::canteraChemistryModel::specieThermo() const
+{
+ return specieThermo_;
+}
+
+
+template
+inline Foam::label
+Foam::canteraChemistryModel::nSpecie() const
+{
+ return nSpecie_;
+}
+
+
+template
+inline Foam::label
+Foam::canteraChemistryModel::nReaction() const
+{
+ return nReaction_;
+}
+
+
+template
+inline Foam::scalar
+Foam::canteraChemistryModel::Treact() const
+{
+ return Treact_;
+}
+
+
+template
+inline Foam::scalar&
+Foam::canteraChemistryModel::Treact()
+{
+ return Treact_;
+}
+
+
+template
+inline const Foam::DimensionedField&
+Foam::canteraChemistryModel::RR
+(
+ const label i
+) const
+{
+ return RR_[i];
+}
+
+template
+Foam::DimensionedField&
+Foam::canteraChemistryModel::RR
+(
+ const label i
+)
+{
+ return RR_[i];
+}
+
+
+// ************************************************************************* //
diff --git a/src/thermophysicalModels/chemistryModel/chemistrySolver/chemistrySolver/makeChemistrySolverTypes.H b/src/thermophysicalModels/chemistryModel/chemistrySolver/chemistrySolver/makeChemistrySolverTypes.H
index ab9b46840..231f9b81e 100644
--- a/src/thermophysicalModels/chemistryModel/chemistrySolver/chemistrySolver/makeChemistrySolverTypes.H
+++ b/src/thermophysicalModels/chemistryModel/chemistrySolver/chemistrySolver/makeChemistrySolverTypes.H
@@ -30,6 +30,7 @@ License
#include "StandardChemistryModel.H"
#include "TDACChemistryModel.H"
+#include "canteraChemistryModel.H"
#include "noChemistrySolver.H"
#include "EulerImplicit.H"
@@ -67,8 +68,22 @@ License
BasicChemistryModel:: \
add##thermo##ConstructorToTable \
add##TDAC##SS##Comp##Thermo##thermo##ConstructorTo##BasicChemistryModel\
-##Comp##Table_;
-
+##Comp##Table_;\
+ \
+ typedef SS> cantera##SS##Comp##Thermo; \
+ \
+ defineTemplateTypeNameAndDebugWithName \
+ ( \
+ cantera##SS##Comp##Thermo, \
+ (#SS"<" + word(canteraChemistryModel::typeName_()) + "<" \
+ + word(Comp::typeName_()) + "," + Thermo::typeName() + ">>").c_str(), \
+ 0 \
+ ); \
+ \
+ BasicChemistryModel:: \
+ add##thermo##ConstructorToTable \
+ add##cantera##SS##Comp##Thermo##thermo##ConstructorTo \
+##BasicChemistryModel##Comp##Table_;
#define makeChemistrySolverTypes(Comp, Thermo) \
\
diff --git a/src/thermophysicalModels/laminarFlameSpeed/Make/options b/src/thermophysicalModels/laminarFlameSpeed/Make/options
index f97edb845..8e49442b9 100644
--- a/src/thermophysicalModels/laminarFlameSpeed/Make/options
+++ b/src/thermophysicalModels/laminarFlameSpeed/Make/options
@@ -3,7 +3,16 @@ EXE_INC = \
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
- -I$(LIB_SRC)/finiteVolume/lnInclude
+ -I$(LIB_SRC)/finiteVolume/lnInclude \
+ -I$(WM_CANTERA_DIR) \
+ -I$(WM_CANTERA_DIR)/cantera \
+ -I$(WM_CANTERA_DIR)/cantera/kinetics \
+ -I$(WM_CANTERA_DIR)/cantera/base \
+ -I$(WM_CANTERA_DIR)/cantera/transport \
+ -I$(WM_CANTERA_DIR)/cantera/thermo \
+ -I$(WM_CANTERA_DIR)/cantera/ext \
+ -I$(WM_CANTERA_DIR)/cantera/ext/fmt
+
LIB_LIBS = \
-lcompressibleTransportModels \
diff --git a/src/thermophysicalModels/radiation/Make/options b/src/thermophysicalModels/radiation/Make/options
index 5a768463e..f028864dc 100644
--- a/src/thermophysicalModels/radiation/Make/options
+++ b/src/thermophysicalModels/radiation/Make/options
@@ -7,7 +7,16 @@ EXE_INC = \
-I$(LIB_SRC)/thermophysicalModels/thermophysicalProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \
- -I$(LIB_SRC)/meshTools/lnInclude
+ -I$(LIB_SRC)/meshTools/lnInclude \
+ -I$(WM_CANTERA_DIR) \
+ -I$(WM_CANTERA_DIR)/cantera \
+ -I$(WM_CANTERA_DIR)/cantera/kinetics \
+ -I$(WM_CANTERA_DIR)/cantera/base \
+ -I$(WM_CANTERA_DIR)/cantera/transport \
+ -I$(WM_CANTERA_DIR)/cantera/thermo \
+ -I$(WM_CANTERA_DIR)/cantera/ext \
+ -I$(WM_CANTERA_DIR)/cantera/ext/fmt
+
LIB_LIBS = \
-lcompressibleTransportModels \
diff --git a/src/thermophysicalModels/reactionThermo/Make/files b/src/thermophysicalModels/reactionThermo/Make/files
index 8870103df..8dcf62cc0 100644
--- a/src/thermophysicalModels/reactionThermo/Make/files
+++ b/src/thermophysicalModels/reactionThermo/Make/files
@@ -1,6 +1,7 @@
chemistryReaders/chemkinReader/chemkinReader.C
chemistryReaders/chemkinReader/chemkinLexer.L
chemistryReaders/chemistryReader/makeChemistryReaders.C
+chemistryReaders/canteraChemistryReader/canteraChemistryReader.C
mixtures/basicMultiComponentMixture/basicMultiComponentMixture.C
mixtures/basicSpecieMixture/basicSpecieMixture.C
diff --git a/src/thermophysicalModels/reactionThermo/Make/options b/src/thermophysicalModels/reactionThermo/Make/options
index f59f44fc8..2a6892f53 100644
--- a/src/thermophysicalModels/reactionThermo/Make/options
+++ b/src/thermophysicalModels/reactionThermo/Make/options
@@ -3,11 +3,20 @@ EXE_INC = \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/solidSpecie/lnInclude \
- -I$(LIB_SRC)/finiteVolume/lnInclude
+ -I$(LIB_SRC)/finiteVolume/lnInclude \
+ -I$(LIB_SRC)/meshTools/lnInclude \
+ -I$(WM_CANTERA_DIR) \
+ -I$(WM_CANTERA_DIR)/cantera \
+ -I$(WM_CANTERA_DIR)/cantera/kinetics \
+ -I$(WM_CANTERA_DIR)/cantera/base \
+ -I$(WM_CANTERA_DIR)/cantera/transport \
+ -I$(WM_CANTERA_DIR)/cantera/thermo \
+ -I$(WM_CANTERA_DIR)/cantera/ext \
+ -I$(WM_CANTERA_DIR)/cantera/ext/fmt
LIB_LIBS = \
-lcompressibleTransportModels \
-lfluidThermophysicalModels \
-lspecie \
-lsolidSpecie \
- -lfiniteVolume
+ -lfiniteVolume
\ No newline at end of file
diff --git a/src/thermophysicalModels/reactionThermo/chemistryReaders/canteraChemistryReader/canteraChemistryReader.C b/src/thermophysicalModels/reactionThermo/chemistryReaders/canteraChemistryReader/canteraChemistryReader.C
new file mode 100644
index 000000000..92263c370
--- /dev/null
+++ b/src/thermophysicalModels/reactionThermo/chemistryReaders/canteraChemistryReader/canteraChemistryReader.C
@@ -0,0 +1,735 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration | Website: https://openfoam.org
+ \\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+\*---------------------------------------------------------------------------*/
+
+#include "canteraChemistryReader.H"
+#include "IFstream.H"
+#include "atomicWeights.H"
+#include "ReactionProxy.H"
+#include "IrreversibleReaction.H"
+#include "ReversibleReaction.H"
+#include "NonEquilibriumReversibleReaction.H"
+#include "ArrheniusReactionRate.H"
+#include "thirdBodyArrheniusReactionRate.H"
+#include "FallOffReactionRate.H"
+#include "ChemicallyActivatedReactionRate.H"
+#include "LindemannFallOffFunction.H"
+#include "TroeFallOffFunction.H"
+#include "SRIFallOffFunction.H"
+#include "LandauTellerReactionRate.H"
+#include "JanevReactionRate.H"
+#include "powerSeriesReactionRate.H"
+#include "addToRunTimeSelectionTable.H"
+#include "cantera/IdealGasMix.h"
+#include "cantera/kinetics/GasKinetics.h"
+#include "cantera/kinetics/reaction_defs.h"
+
+namespace Foam
+{
+ addChemistryReaderType(canteraChemistryReader, gasHThermoPhysics);
+}
+
+// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
+
+// Obtain species table from cantera
+Foam::speciesTable& Foam::canteraChemistryReader::setSpecies
+(
+ Cantera::IdealGasMix gas,
+ speciesTable& species
+)
+{
+ label nsp = gas.nSpecies();
+ wordList s(nsp);
+ for(label i=0; i>
+ (
+ specie
+ (
+ currentSpecieName,
+ 1.0,
+ molecularWeight
+ ),
+ currentLowT,
+ currentHighT,
+ currentCommonT,
+ highCpCoeffs,
+ lowCpCoeffs,
+ true
+ ),
+ transportDict.subDict(currentSpecieName)
+ )
+ );
+ }
+// Info << speciesThermo_ << endl;
+
+}
+
+// Obtain species composition from cantera
+void Foam::canteraChemistryReader::setSpeciesComposition
+(
+ Cantera::IdealGasMix gas
+)
+{
+ label ne = gas.nElements();
+ wordList e(ne);
+
+ DynamicList elementNames_;
+ HashTable