From c7ca458e18aa1d9aee5a700b9309b2c094479c54 Mon Sep 17 00:00:00 2001
From: henry <Henry Weller h.weller@opencfd.co.uk>
Date: Tue, 6 May 2008 11:59:46 +0100
Subject: [PATCH] Added Yi Wang's RMS correction factor and parameter alpha.

---
 .../turbulentInlet/turbulentInletFvPatchField.C  | 16 +++++++++++++---
 .../turbulentInlet/turbulentInletFvPatchField.H  | 13 ++++++++++++-
 2 files changed, 25 insertions(+), 4 deletions(-)

diff --git a/src/finiteVolume/fields/fvPatchFields/derived/turbulentInlet/turbulentInletFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/derived/turbulentInlet/turbulentInletFvPatchField.C
index e3aa394f352..f56c7f21848 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 9e2fbfdf1f1..00e05fd58b5 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_;
 
 
-- 
GitLab