From cc9c4fd32a783ed2003a81f3c626b58b81177d0c Mon Sep 17 00:00:00 2001 From: mattijs Date: Tue, 25 Aug 2009 13:42:58 +0100 Subject: [PATCH] not register correction vector --- .../linearUpwind/linearUpwindV.C | 147 +++++++++--------- 1 file changed, 75 insertions(+), 72 deletions(-) diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/linearUpwind/linearUpwindV.C b/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/linearUpwind/linearUpwindV.C index db4a31c551..80a137b396 100644 --- a/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/linearUpwind/linearUpwindV.C +++ b/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/linearUpwind/linearUpwindV.C @@ -38,93 +38,96 @@ Foam::linearUpwindV::correction const GeometricField& vf ) const { - const fvMesh& mesh = this->mesh(); + const fvMesh& mesh = this->mesh(); - tmp > tsfCorr - ( - new GeometricField - ( - IOobject - ( - vf.name(), - mesh.time().timeName(), - mesh - ), - mesh, - dimensioned - ( - vf.name(), - vf.dimensions(), - pTraits::zero - ) - ) - ); + tmp > tsfCorr + ( + new GeometricField + ( + IOobject + ( + "linearUpwindV::correction(" + vf.name() + ')', + mesh.time().timeName(), + mesh, + IOobject::NO_READ, + IOobject::NO_WRITE, + false + ), + mesh, + dimensioned + ( + vf.name(), + vf.dimensions(), + pTraits::zero + ) + ) + ); - GeometricField& sfCorr = tsfCorr(); + GeometricField& sfCorr = tsfCorr(); - const surfaceScalarField& faceFlux = this->faceFlux_; - const surfaceScalarField& w = mesh.weights(); + const surfaceScalarField& faceFlux = this->faceFlux_; + const surfaceScalarField& w = mesh.weights(); - const labelList& own = mesh.owner(); - const labelList& nei = mesh.neighbour(); + const labelList& own = mesh.owner(); + const labelList& nei = mesh.neighbour(); - const vectorField& C = mesh.C(); - const vectorField& Cf = mesh.Cf(); + const vectorField& C = mesh.C(); + const vectorField& Cf = mesh.Cf(); - GeometricField - ::type, fvPatchField, volMesh> - gradVf = gradScheme_().grad(vf); + GeometricField + ::type, fvPatchField, volMesh> + gradVf = gradScheme_().grad(vf); - forAll(faceFlux, facei) - { - vector maxCorr; + forAll(faceFlux, facei) + { + vector maxCorr; - if (faceFlux[facei] > 0.0) - { - maxCorr = - (1.0 - w[facei]) + if (faceFlux[facei] > 0.0) + { + maxCorr = + (1.0 - w[facei]) *(vf[nei[facei]] - vf[own[facei]]); - sfCorr[facei] = - (Cf[facei] - C[own[facei]]) & gradVf[own[facei]]; - } - else - { - maxCorr = - w[facei]*(vf[own[facei]] - vf[nei[facei]]); + sfCorr[facei] = + (Cf[facei] - C[own[facei]]) & gradVf[own[facei]]; + } + else + { + maxCorr = + w[facei]*(vf[own[facei]] - vf[nei[facei]]); - sfCorr[facei] = + sfCorr[facei] = (Cf[facei] - C[nei[facei]]) & gradVf[nei[facei]]; - } + } - scalar sfCorrs = magSqr(sfCorr[facei]); - scalar maxCorrs = sfCorr[facei] & maxCorr; + scalar sfCorrs = magSqr(sfCorr[facei]); + scalar maxCorrs = sfCorr[facei] & maxCorr; - if (sfCorrs > 0) - { - if (maxCorrs < 0) - { - sfCorr[facei] = vector::zero; - } - else if (sfCorrs > maxCorrs) - { - sfCorr[facei] *= maxCorrs/(sfCorrs + VSMALL); - } - } - else if (sfCorrs < 0) - { - if (maxCorrs > 0) - { - sfCorr[facei] = vector::zero; - } - else if (sfCorrs < maxCorrs) - { - sfCorr[facei] *= maxCorrs/(sfCorrs - VSMALL); - } - } - } + if (sfCorrs > 0) + { + if (maxCorrs < 0) + { + sfCorr[facei] = vector::zero; + } + else if (sfCorrs > maxCorrs) + { + sfCorr[facei] *= maxCorrs/(sfCorrs + VSMALL); + } + } + else if (sfCorrs < 0) + { + if (maxCorrs > 0) + { + sfCorr[facei] = vector::zero; + } + else if (sfCorrs < maxCorrs) + { + sfCorr[facei] *= maxCorrs/(sfCorrs - VSMALL); + } + } + } - return tsfCorr; + return tsfCorr; }