diff --git a/src/finiteVolume/finiteVolume/fvc/fvcReconstruct.C b/src/finiteVolume/finiteVolume/fvc/fvcReconstruct.C index bc6b8dbd9..435d8adea 100644 --- a/src/finiteVolume/finiteVolume/fvc/fvcReconstruct.C +++ b/src/finiteVolume/finiteVolume/fvc/fvcReconstruct.C @@ -68,8 +68,8 @@ reconstruct IOobject::NO_READ, IOobject::NO_WRITE ), - inv(surfaceSum(sqr(mesh.Sf())/mesh.magSf())) - & surfaceSum((mesh.Sf()/mesh.magSf())*ssf), + mesh, + ssf.dimensions()/dimArea, zeroGradientFvPatchField::typeName ) ); @@ -87,9 +87,14 @@ reconstruct GeometricField fluxTimesNormal = surfaceSum((mesh.Sf()/mesh.magSf())*ssf); + // Note: hinv inverse must be used to stabilise the inverse on bad meshes + // HJ, 19/Aug/2015 reconField.internalField() = ( - inv(surfaceSum(sqr(mesh.Sf())/mesh.magSf())().internalField()) + hinv + ( + surfaceSum(sqr(mesh.Sf())/mesh.magSf())().internalField() + ) & fluxTimesNormal.internalField() );