From 936803562063b447bbe8d14f8758f29200eae0fd Mon Sep 17 00:00:00 2001 From: Henry Date: Thu, 23 Jan 2014 15:18:54 +0000 Subject: [PATCH] CoBlended: added support for mass-flux but currently assuming that the density needed to calculate the volumetric flux is "rho" --- .../schemes/CoBlended/CoBlended.H | 70 ++++++++++--------- 1 file changed, 36 insertions(+), 34 deletions(-) diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/CoBlended/CoBlended.H b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/CoBlended/CoBlended.H index 3f15520061..2e2589ccb0 100644 --- a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/CoBlended/CoBlended.H +++ b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/CoBlended/CoBlended.H @@ -64,6 +64,7 @@ SourceFiles #include "surfaceInterpolationScheme.H" #include "blendedSchemeBase.H" +#include "surfaceInterpolate.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -181,11 +182,6 @@ public: } - //- Destructor - virtual ~CoBlended() - {} - - // Member Functions //- Return the face-based blending factor @@ -195,39 +191,48 @@ public: ) const { const fvMesh& mesh = this->mesh(); + tmp tUflux = faceFlux_; - tmp tbf + if (faceFlux_.dimensions() == dimDensity*dimVelocity*dimArea) + { + // Currently assume that the density field + // corresponding to the mass-flux is named "rho" + const volScalarField& rho = + mesh.objectRegistry::template lookupObject + ("rho"); + + tUflux = faceFlux_/fvc::interpolate(rho); + } + else if (faceFlux_.dimensions() != dimVelocity*dimArea) + { + FatalErrorIn + ( + "CoBlended::blendingFactor()" + ) << "dimensions of faceFlux are not correct" + << exit(FatalError); + } + + return tmp ( new surfaceScalarField ( - IOobject + vf.name() + "BlendingFactor", + scalar(1) + - max ( - vf.name() + "BlendingFactor", - mesh.time().timeName(), - mesh - ), - mesh, - dimensionedScalar("blendingFactor", dimless, 0.0) + min + ( + ( + mesh.time().deltaT()*mesh.deltaCoeffs() + *mag(tUflux)/mesh.magSf() + - Co1_ + )/(Co2_ - Co1_), + scalar(1) + ), + scalar(0) + ) ) ); - - tbf() = - scalar(1) - - max - ( - min - ( - ( - mesh.time().deltaT()*mesh.deltaCoeffs() - *mag(faceFlux_)/mesh.magSf() - - Co1_ - )/(Co2_ - Co1_), - scalar(1) - ), - scalar(0) - ); - - return tbf; } @@ -240,9 +245,6 @@ public: { surfaceScalarField bf(blendingFactor(vf)); - Info<< "weights " << max(bf).value() << " " << min(bf).value() - << endl; - return bf*tScheme1_().weights(vf) + (scalar(1.0) - bf)*tScheme2_().weights(vf);