diff --git a/src/finiteVolume/fields/fvPatchFields/derived/turbulentInlet/turbulentInletFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/derived/turbulentInlet/turbulentInletFvPatchField.C index e3aa394f35..f56c7f2184 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/turbulentInlet/turbulentInletFvPatchField.C +++ b/src/finiteVolume/fields/fvPatchFields/derived/turbulentInlet/turbulentInletFvPatchField.C @@ -44,6 +44,7 @@ turbulentInletFvPatchField::turbulentInletFvPatchField ranGen_(label(0)), fluctuationScale_(pTraits::zero), referenceField_(p.size()), + alpha_(0.1), curTimeIndex_(-1) {} @@ -61,6 +62,7 @@ turbulentInletFvPatchField::turbulentInletFvPatchField ranGen_(label(0)), fluctuationScale_(ptf.fluctuationScale_), referenceField_(ptf.referenceField_, mapper), + alpha_(ptf.alpha_), curTimeIndex_(-1) {} @@ -77,6 +79,7 @@ turbulentInletFvPatchField::turbulentInletFvPatchField ranGen_(label(0)), fluctuationScale_(pTraits(dict.lookup("fluctuationScale"))), referenceField_("referenceField", dict, p.size()), + alpha_(dict.lookupOrDefault("alpha", 0.1)), curTimeIndex_(-1) { if (dict.found("value")) @@ -103,6 +106,7 @@ turbulentInletFvPatchField::turbulentInletFvPatchField ranGen_(ptf.ranGen_), fluctuationScale_(ptf.fluctuationScale_), referenceField_(ptf.referenceField_), + alpha_(ptf.alpha_), curTimeIndex_(-1) {} @@ -118,6 +122,7 @@ turbulentInletFvPatchField::turbulentInletFvPatchField ranGen_(ptf.ranGen_), fluctuationScale_(ptf.fluctuationScale_), referenceField_(ptf.referenceField_), + alpha_(ptf.alpha_), curTimeIndex_(-1) {} @@ -170,9 +175,14 @@ void turbulentInletFvPatchField::updateCoeffs() ranGen_.randomise(randomField[facei]); } - patchField = - 0.9*patchField - + 0.1* + // Correction-factor proposed by Yi Wang to compensate for the loss + // of RMS fluctuation due to the temporal correlation introduced by + // the alpha parameter. + scalar rmsCorr = sqrt(12*(2*alpha_ - sqr(alpha_)))/alpha_; + + patchField = + (rmsCorr*(1 - alpha_))*patchField + + (rmsCorr*alpha_)* ( referenceField_ + cmptMultiply diff --git a/src/finiteVolume/fields/fvPatchFields/derived/turbulentInlet/turbulentInletFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/derived/turbulentInlet/turbulentInletFvPatchField.H index 9e2fbfdf1f..00e05fd58b 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/turbulentInlet/turbulentInletFvPatchField.H +++ b/src/finiteVolume/fields/fvPatchFields/derived/turbulentInlet/turbulentInletFvPatchField.H @@ -26,7 +26,17 @@ Class Foam::turbulentInletFvPatchField Description - Foam::turbulentInletFvPatchField + Generate a fluctuating inlet condition by adding a random component + to a reference (mean) field. + Input: + referenceField + Mean field. + fluctuationScale + RMS fluctuation, provided as the fraction of the mean field. + alpha + temporal correlation factor; + the fraction of the new random component added to the previous + time-step (defaults to 0.1). SourceFiles turbulentInletFvPatchField.C @@ -59,6 +69,7 @@ class turbulentInletFvPatchField Random ranGen_; Type fluctuationScale_; Field referenceField_; + scalar alpha_; label curTimeIndex_;