Skip to content

Commit 211198a

Browse files
authored
Merge pull request #261 from OpenFOAMFans/master
check whether mechanism exist before Cantera read it, to make error m…
2 parents 1b2ad64 + 98d6876 commit 211198a

2 files changed

Lines changed: 24 additions & 14 deletions

File tree

src/dfCanteraMixture/CanteraMixture.C

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -46,20 +46,30 @@ Foam::CanteraMixture::CanteraMixture
4646
IOobject::NO_WRITE
4747
)
4848
),
49-
CanteraMechanismFile_(CanteraTorchProperties_.lookup("CanteraMechanismFile")),
50-
CanteraSolution_(Cantera::newSolution(CanteraMechanismFile_, "")),
51-
CanteraGas_(CanteraSolution_->thermo()),
49+
CanteraMechanismFile_(fileName(CanteraTorchProperties_.lookup("CanteraMechanismFile")).expand()),
5250
transportModelName_(CanteraTorchProperties_.lookup("transportModel")),
53-
CanteraTransport_(newTransportMgr(transportModelName_, CanteraGas_.get())),
54-
Y_(nSpecies()),
5551
Tref_(mesh.objectRegistry::lookupObject<volScalarField>("T")),
56-
pref_(mesh.objectRegistry::lookupObject<volScalarField>("p")),
57-
yTemp_(nSpecies()),
58-
HaTemp_(nSpecies()),
59-
CpTemp_(nSpecies()),
60-
CvTemp_(nSpecies()),
61-
muTemp_(nSpecies())
52+
pref_(mesh.objectRegistry::lookupObject<volScalarField>("p"))
6253
{
54+
if(!isFile(CanteraMechanismFile_))
55+
{
56+
FatalErrorInFunction
57+
<<"Chemical mechanism "
58+
<<CanteraMechanismFile_
59+
<<" doesn't exist!\n"
60+
<<exit(FatalError);
61+
}
62+
63+
CanteraSolution_=Cantera::newSolution(CanteraMechanismFile_, "");
64+
CanteraGas_=CanteraSolution_->thermo();
65+
CanteraTransport_=newTransportMgr(transportModelName_, CanteraGas_.get());
66+
67+
Y_.resize(nSpecies());
68+
yTemp_.resize(nSpecies());
69+
HaTemp_.resize(nSpecies());
70+
CpTemp_.resize(nSpecies());
71+
CvTemp_.resize(nSpecies());
72+
muTemp_.resize(nSpecies());
6373
forAll(Y_, i)
6474
{
6575
species_.append(CanteraGas_->speciesName(i));

src/dfCanteraMixture/CanteraMixture.H

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,11 +63,11 @@ class CanteraMixture
6363
// Private Data
6464

6565
IOdictionary CanteraTorchProperties_;
66-
const word CanteraMechanismFile_;
66+
const string CanteraMechanismFile_;
6767
std::shared_ptr<Cantera::Solution> CanteraSolution_;
6868
std::shared_ptr<Cantera::ThermoPhase> CanteraGas_;
6969
word transportModelName_;
70-
std::shared_ptr<Cantera::Transport> CanteraTransport_;
70+
Cantera::Transport* CanteraTransport_;
7171
hashedWordList species_;
7272
PtrList<volScalarField> Y_;
7373
const volScalarField& Tref_;
@@ -227,7 +227,7 @@ public:
227227

228228
std::shared_ptr<Cantera::Solution> CanteraSolution() {return CanteraSolution_;}
229229

230-
std::shared_ptr<Cantera::Transport> CanteraTransport() {return CanteraTransport_;}
230+
Cantera::Transport* CanteraTransport() {return CanteraTransport_;}
231231

232232
const word& transportModelName() {return transportModelName_;}
233233

0 commit comments

Comments
 (0)