From 934c66e1d3b2df0dfd3ab479c7058926977bec07 Mon Sep 17 00:00:00 2001 From: ignis Date: Wed, 25 Apr 2018 15:24:18 +0900 Subject: [PATCH] diffusivity model reads thermo...Properties to read transport parameters --- createFields.H | 2 +- diffusivityModel/diffusivityModel.C | 114 ++++++++++++++++++++++++---- diffusivityModel/diffusivityModel.H | 20 +++-- 3 files changed, 111 insertions(+), 25 deletions(-) diff --git a/createFields.H b/createFields.H index 47f2222..17da979 100644 --- a/createFields.H +++ b/createFields.H @@ -13,7 +13,7 @@ PtrList& Y = composition.Y(); word inertSpecie(thermo.lookup("inertSpecie")); -diffusivityModel diff(); +diffusivityModel diff(thermo); volScalarField rho ( diff --git a/diffusivityModel/diffusivityModel.C b/diffusivityModel/diffusivityModel.C index 2f0ebf4..7a10f3b 100644 --- a/diffusivityModel/diffusivityModel.C +++ b/diffusivityModel/diffusivityModel.C @@ -25,6 +25,11 @@ License #include "diffusivityModel.H" +#include "IFstream.H" +#include "speciesTable.H" +#include "volFieldsFwd.H" +#include "scalarMatrices.H" + // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // // const dataType Foam::diffusivityModel::staticData(); @@ -41,31 +46,73 @@ License // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // -Foam::diffusivityModel::diffusivityModel() +Foam::diffusivityModel::diffusivityModel(const psiReactionThermo& thermo) : - data_() -{} + thermo_(thermo), + D_(thermo_.composition().species().size()) +{ + + const speciesTable &species_(thermo_.composition().species()); + + const volScalarField::Mesh &mesh = thermo_.composition().Y(0).mesh(); + + dictionary transports + ( + IFstream + ( + fileName(thermo_.lookup("foamTransportFile")).expand() + )() + ); -Foam::diffusivityModel::diffusivityModel(const scalar& data) + forAll(species_, i) + { + // transports[species_[i]]; + Info << species_[i] << endl; + Info << thermo_.composition().W(i) << endl; + Info << thermo_.composition().Qc(i) << endl; + Info << thermo_.composition().z(i) << endl; + Info << readScalar(transports.subDict(species_[i]).subDict("transport")["As"]) << endl; + } +/* +*/ + + forAll(species_, i) + { + D_.set + ( + i, + new volScalarField + ( + IOobject + ( + "D." + species_[i], + mesh.time().timeName(), + mesh, + IOobject::NO_READ, + IOobject::AUTO_WRITE + ), + mesh, + dimensionedScalar("zero", dimArea/dimTime, 0.0) + ) + ); + } + +} + +Foam::diffusivityModel::diffusivityModel(const diffusivityModel& dm) : - data_(data) -{} - - -Foam::diffusivityModel::diffusivityModel(const diffusivityModel&) -: - data_() + thermo_(dm.thermo_) {} // * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * // -Foam::autoPtr -Foam::diffusivityModel::New() -{ - return autoPtr(new diffusivityModel); -} +// Foam::autoPtr +// Foam::diffusivityModel::New() +// { +// return autoPtr(new diffusivityModel); +// } // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // @@ -76,6 +123,41 @@ Foam::diffusivityModel::~diffusivityModel() // * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * // +void Foam::diffusivityModel::correct() +{ + const volScalarField &T = thermo_.T(); + const volScalarField &p = thermo_.p(); + + const speciesTable &species_(thermo_.composition().species()); + + scalarSymmetricSquareMatrix Dij(species_.size()); + + forAll (species_, celli) + { + const scalar pi = p[celli]; + const scalar Ti = T[celli]; + + label idx = 0; + + forAll (species_, i) + { + for (label j = i; j < species_.size(); j++) + { + // Calculate Dij + // Dij[idx] = interactions[idx].D(pi,Ti); + Dij(i,j) = idx; + Dij(j,i) = Dij(i,j); + idx++; + } + + // DMat = 0; + + } + } + + return; +} + // * * * * * * * * * * * * * * Member Operators * * * * * * * * * * * * * * // diff --git a/diffusivityModel/diffusivityModel.H b/diffusivityModel/diffusivityModel.H index 67f9d95..594e940 100644 --- a/diffusivityModel/diffusivityModel.H +++ b/diffusivityModel/diffusivityModel.H @@ -38,6 +38,7 @@ SourceFiles #include "scalar.H" #include "autoPtr.H" +#include "psiReactionThermo.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -58,8 +59,11 @@ class diffusivityModel { // Private data - //- Description of data_ - scalar data_; + //- Reference to thermo object + const psiReactionThermo& thermo_; + + //- Mixture averaged diffusivities field + PtrList D_; // Private Member Functions @@ -81,11 +85,8 @@ public: // Constructors - //- Construct null - diffusivityModel(); - - //- Construct from components - diffusivityModel(const scalar& data); + //- Construct from mixture + diffusivityModel(const psiReactionThermo& thermo); //- Construct from Istream diffusivityModel(Istream&); @@ -97,7 +98,7 @@ public: // Selectors //- Select null constructed - static autoPtr New(); + // static autoPtr New(); //- Destructor @@ -106,6 +107,9 @@ public: // Member Functions + //- Correct diffusivities + void correct(); + // Access // Check