diff --git a/src/finiteVolume/fields/fvPatchFields/derived/turbulentInlet/turbulentInletFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/derived/turbulentInlet/turbulentInletFvPatchField.C index e3aa394f352e10a51fa309694cf00466c14972c3..f56c7f21848a9b984791b86b9d984ad259ae866d 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/turbulentInlet/turbulentInletFvPatchField.C +++ b/src/finiteVolume/fields/fvPatchFields/derived/turbulentInlet/turbulentInletFvPatchField.C @@ -44,6 +44,7 @@ turbulentInletFvPatchField<Type>::turbulentInletFvPatchField ranGen_(label(0)), fluctuationScale_(pTraits<Type>::zero), referenceField_(p.size()), + alpha_(0.1), curTimeIndex_(-1) {} @@ -61,6 +62,7 @@ turbulentInletFvPatchField<Type>::turbulentInletFvPatchField ranGen_(label(0)), fluctuationScale_(ptf.fluctuationScale_), referenceField_(ptf.referenceField_, mapper), + alpha_(ptf.alpha_), curTimeIndex_(-1) {} @@ -77,6 +79,7 @@ turbulentInletFvPatchField<Type>::turbulentInletFvPatchField ranGen_(label(0)), fluctuationScale_(pTraits<Type>(dict.lookup("fluctuationScale"))), referenceField_("referenceField", dict, p.size()), + alpha_(dict.lookupOrDefault<scalar>("alpha", 0.1)), curTimeIndex_(-1) { if (dict.found("value")) @@ -103,6 +106,7 @@ turbulentInletFvPatchField<Type>::turbulentInletFvPatchField ranGen_(ptf.ranGen_), fluctuationScale_(ptf.fluctuationScale_), referenceField_(ptf.referenceField_), + alpha_(ptf.alpha_), curTimeIndex_(-1) {} @@ -118,6 +122,7 @@ turbulentInletFvPatchField<Type>::turbulentInletFvPatchField ranGen_(ptf.ranGen_), fluctuationScale_(ptf.fluctuationScale_), referenceField_(ptf.referenceField_), + alpha_(ptf.alpha_), curTimeIndex_(-1) {} @@ -170,9 +175,14 @@ void turbulentInletFvPatchField<Type>::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 9e2fbfdf1f1fe42ce9693c97cdd15170a19d46de..00e05fd58b58c1502b5b55e16b49d3ef375d181f 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<Type> referenceField_; + scalar alpha_; label curTimeIndex_;