diff --git a/solvers_post/SLFMFoam/BetaPDF.H b/solvers_post/SLFMFoam/BetaPDF.H index d23dd56..0879187 100644 --- a/solvers_post/SLFMFoam/BetaPDF.H +++ b/solvers_post/SLFMFoam/BetaPDF.H @@ -3,15 +3,27 @@ class BetaPDF //private variable + //raw parameter mixture fraction and mf variance + scalar mf_, mfVar_; + //beta-pdf parameter alpha and beta scalar alpha_, beta_; - //cutting point and number of eta-space - scalarField etaCut_, N_; + //cutting points + scalarField etaCut_; + + //number of eta-space + labelList N_; //detailed integration space scalarField etaSpace_; + //pdf numerators + scalarField pdfNum_; + + //pdf denominator + scalar pdfDen_; + //detailed integration space, part typedef List scalarFieldArray1d; scalarFieldArray1d etaPart_; @@ -59,6 +71,9 @@ public: } AMCfine_ = AMC(etaSpace_); + + pdfNum_ = scalarField(etaSpace_.size(), 0.0); + pdfDen_ = 1.0; } // Destructor @@ -67,8 +82,11 @@ public: // Member functions // set beta-pdf parameter alpha_ and beta_ - void setParameter(scalar& mf, scalar& mfVar) + void setParameter(const scalar mf, const scalar mfVar) { + mf_ = mf; + mfVar_ = mfVar; + fdelta_ = false; delta_ox = false; delta_fu = false; @@ -92,10 +110,17 @@ public: { delta_fu = true; } + + limit_ab(); } + + pdfNum_ = etaFunc(alpha_, beta_, etaSpace_); + pdfDen_ = integrate(pdfNum_) + + Foam::pow(etaSpace_[0], alpha_)/(alpha_ + SMALL) + + Foam::pow(etaSpace_[0], beta_)/(beta_ + SMALL); } // beta-pdf weighted integration for given mf, mfVar and f - scalar evaluate(scalar& mf, scalar& mfVar, scalarField& etaValue, scalarField& f) + scalar evaluate(scalar mf, scalar mfVar, scalarField& etaValue, scalarField& f) { scalar result(0); @@ -103,8 +128,6 @@ public: if(fdelta_ == false) { - limit_ab(); - scalar num(0), den(0); for(label i=0 ; i& fx) { scalar evensum(0.0), oddsum(0.0), sum(0.0); - scalar h = (xh - xl)/N; + scalar h = (xh - xl)/scalar(N); for(label i=0 ; i scalarFieldArray1d; typedef List scalarFieldArray2d; typedef List scalarFieldArray3d; -CMC::FlameStructure slfmLibrary(SLFMdict, etaValue.size(), Y.size()); +CMC::FlameStructure slfmLibrary(SLFMdict, etaGrid.size(), Y.size()); scalarFieldArray2d& Y_SLFM (slfmLibrary.Y()); scalarFieldArray2d& W_SLFM (slfmLibrary.W()); @@ -88,7 +88,7 @@ for(label n=0 ; n>W_temp[j]; } - W_SLFM[spI][n] = interpolateXY(etaValue, etaValue_SLFM, W_temp); + W_SLFM[spI][n] = interpolateXY(etaGrid, etaValue_SLFM, W_temp); //blank line fin.getLine(gbg); @@ -115,7 +115,7 @@ for(label n=0 ; n>W_temp[j]; } - Q_SLFM[n] = interpolateXY(etaValue, etaValue_SLFM, W_temp); + Q_SLFM[n] = interpolateXY(etaGrid, etaValue_SLFM, W_temp); //blank line fin.getLine(gbg); @@ -140,7 +140,7 @@ for(label n=0 ; n>h_temp[j]; } - h_SLFM[n] = interpolateXY(etaValue, etaValue_SLFM, h_temp); + h_SLFM[n] = interpolateXY(etaGrid, etaValue_SLFM, h_temp); for(label i=0 ; i