From 9f8b5bb693d926738504400a59b77269eb6b80b1 Mon Sep 17 00:00:00 2001
From: mattijs <mattijs>
Date: Fri, 4 Jun 2010 15:33:00 +0100
Subject: [PATCH] ENH: P1 model : added radiative flux Qr.

---
 ...iffusiveRadiationMixedFvPatchScalarField.C |  2 +-
 ...iffusiveRadiationMixedFvPatchScalarField.C |  2 +-
 .../radiation/radiationModel/P1/P1.C          | 20 +++++++++++++++++++
 .../radiation/radiationModel/P1/P1.H          |  3 +++
 4 files changed, 25 insertions(+), 2 deletions(-)

diff --git a/src/thermophysicalModels/radiation/derivedFvPatchFields/greyDiffusiveRadiation/greyDiffusiveRadiationMixedFvPatchScalarField.C b/src/thermophysicalModels/radiation/derivedFvPatchFields/greyDiffusiveRadiation/greyDiffusiveRadiationMixedFvPatchScalarField.C
index 6bec827a509..8f4e9b87259 100644
--- a/src/thermophysicalModels/radiation/derivedFvPatchFields/greyDiffusiveRadiation/greyDiffusiveRadiationMixedFvPatchScalarField.C
+++ b/src/thermophysicalModels/radiation/derivedFvPatchFields/greyDiffusiveRadiation/greyDiffusiveRadiationMixedFvPatchScalarField.C
@@ -172,7 +172,7 @@ updateCoeffs()
     radiativeIntensityRay& ray =
         const_cast<radiativeIntensityRay&>(dom.IRay(rayId));
 
-    ray.Qr().boundaryField()[patchI] += Iw*(-n & ray.dAve());
+    ray.Qr().boundaryField()[patchI] += Iw*(n & ray.dAve());
 
     forAll(Iw, faceI)
     {
diff --git a/src/thermophysicalModels/radiation/derivedFvPatchFields/wideBandDiffusiveRadiation/wideBandDiffusiveRadiationMixedFvPatchScalarField.C b/src/thermophysicalModels/radiation/derivedFvPatchFields/wideBandDiffusiveRadiation/wideBandDiffusiveRadiationMixedFvPatchScalarField.C
index 6dfffad991b..d97689cb21e 100644
--- a/src/thermophysicalModels/radiation/derivedFvPatchFields/wideBandDiffusiveRadiation/wideBandDiffusiveRadiationMixedFvPatchScalarField.C
+++ b/src/thermophysicalModels/radiation/derivedFvPatchFields/wideBandDiffusiveRadiation/wideBandDiffusiveRadiationMixedFvPatchScalarField.C
@@ -167,7 +167,7 @@ updateCoeffs()
     radiativeIntensityRay& ray =
         const_cast<radiativeIntensityRay&>(dom.IRay(rayId));
 
-    ray.Qr().boundaryField()[patchI] += Iw*(-n & ray.dAve());
+    ray.Qr().boundaryField()[patchI] += Iw*(n & ray.dAve());
 
     const scalarField Eb =
         dom.blackBody().bLambda(lambdaId).boundaryField()[patchI];
diff --git a/src/thermophysicalModels/radiation/radiationModel/P1/P1.C b/src/thermophysicalModels/radiation/radiationModel/P1/P1.C
index b9fc90f74c0..74cf2165360 100644
--- a/src/thermophysicalModels/radiation/radiationModel/P1/P1.C
+++ b/src/thermophysicalModels/radiation/radiationModel/P1/P1.C
@@ -68,6 +68,19 @@ Foam::radiation::P1::P1(const volScalarField& T)
         ),
         mesh_
     ),
+    Qr_
+    (
+        IOobject
+        (
+            "Qr",
+            mesh_.time().timeName(),
+            mesh_,
+            IOobject::NO_READ,
+            IOobject::AUTO_WRITE
+        ),
+        mesh_,
+        dimensionedScalar("Qr", dimMass/pow3(dimTime), 0.0)
+    ),
     a_
     (
         IOobject
@@ -162,6 +175,13 @@ void Foam::radiation::P1::calculate()
      ==
       - 4.0*(e_*physicoChemical::sigma*pow4(T_) + E_)
     );
+
+    // Calculate radiative heat flux on boundaries.
+    forAll(mesh_.boundaryMesh(), patchI)
+    {
+        Qr_.boundaryField()[patchI] =
+            -gamma.boundaryField()[patchI]*G_.boundaryField()[patchI].snGrad();
+    }
 }
 
 
diff --git a/src/thermophysicalModels/radiation/radiationModel/P1/P1.H b/src/thermophysicalModels/radiation/radiationModel/P1/P1.H
index 5300d3718ce..7c03d5313e0 100644
--- a/src/thermophysicalModels/radiation/radiationModel/P1/P1.H
+++ b/src/thermophysicalModels/radiation/radiationModel/P1/P1.H
@@ -63,6 +63,9 @@ class P1
         //- Incident radiation / [W/m2]
         volScalarField G_;
 
+        //- Total radiative heat flux [W/m2]
+        volScalarField Qr_;
+
         //- Absorption coefficient
         volScalarField a_;
 
-- 
GitLab