diff --git a/src/dfCanteraMixture/CanteraMixture.C b/src/dfCanteraMixture/CanteraMixture.C index 759f97783..ca06a6a18 100644 --- a/src/dfCanteraMixture/CanteraMixture.C +++ b/src/dfCanteraMixture/CanteraMixture.C @@ -46,20 +46,30 @@ Foam::CanteraMixture::CanteraMixture IOobject::NO_WRITE ) ), - CanteraMechanismFile_(CanteraTorchProperties_.lookup("CanteraMechanismFile")), - CanteraSolution_(Cantera::newSolution(CanteraMechanismFile_, "")), - CanteraGas_(CanteraSolution_->thermo()), + CanteraMechanismFile_(fileName(CanteraTorchProperties_.lookup("CanteraMechanismFile")).expand()), transportModelName_(CanteraTorchProperties_.lookup("transportModel")), - CanteraTransport_(newTransportMgr(transportModelName_, CanteraGas_.get())), - Y_(nSpecies()), Tref_(mesh.objectRegistry::lookupObject("T")), - pref_(mesh.objectRegistry::lookupObject("p")), - yTemp_(nSpecies()), - HaTemp_(nSpecies()), - CpTemp_(nSpecies()), - CvTemp_(nSpecies()), - muTemp_(nSpecies()) + pref_(mesh.objectRegistry::lookupObject("p")) { + if(!isFile(CanteraMechanismFile_)) + { + FatalErrorInFunction + <<"Chemical mechanism " + <thermo(); + CanteraTransport_=newTransportMgr(transportModelName_, CanteraGas_.get()); + + Y_.resize(nSpecies()); + yTemp_.resize(nSpecies()); + HaTemp_.resize(nSpecies()); + CpTemp_.resize(nSpecies()); + CvTemp_.resize(nSpecies()); + muTemp_.resize(nSpecies()); forAll(Y_, i) { species_.append(CanteraGas_->speciesName(i)); diff --git a/src/dfCanteraMixture/CanteraMixture.H b/src/dfCanteraMixture/CanteraMixture.H index 216cdd144..94ff30619 100644 --- a/src/dfCanteraMixture/CanteraMixture.H +++ b/src/dfCanteraMixture/CanteraMixture.H @@ -63,11 +63,11 @@ class CanteraMixture // Private Data IOdictionary CanteraTorchProperties_; - const word CanteraMechanismFile_; + const string CanteraMechanismFile_; std::shared_ptr CanteraSolution_; std::shared_ptr CanteraGas_; word transportModelName_; - std::shared_ptr CanteraTransport_; + Cantera::Transport* CanteraTransport_; hashedWordList species_; PtrList Y_; const volScalarField& Tref_; @@ -227,7 +227,7 @@ public: std::shared_ptr CanteraSolution() {return CanteraSolution_;} - std::shared_ptr CanteraTransport() {return CanteraTransport_;} + Cantera::Transport* CanteraTransport() {return CanteraTransport_;} const word& transportModelName() {return transportModelName_;}