BUG: ensight output failing with dimensioned field (fixes #244)

- The new field needs initialization with a dimensioned<Type> not just
  the dimensionSet.

- The new field was also incorrectly being registered, which could
  cause issues later.
This commit is contained in:
Mark Olesen
2016-09-23 13:13:12 +02:00
parent 3c25f26aab
commit 06699f17f5

View File

@ -81,7 +81,9 @@ volField
// Construct volField (with zeroGradient) from dimensioned field // Construct volField (with zeroGradient) from dimensioned field
IOobject io(df); IOobject io(df);
io.readOpt() = IOobject::NO_READ; io.readOpt() = IOobject::NO_READ;
io.writeOpt() = IOobject::NO_WRITE;
io.registerObject() = false;
tmp<GeometricField<Type, fvPatchField, volMesh>> tvf tmp<GeometricField<Type, fvPatchField, volMesh>> tvf
( (
@ -89,16 +91,17 @@ volField
( (
io, io,
df.mesh(), df.mesh(),
df.dimensions(), dimensioned<Type>("0", df.dimensions(), Zero),
zeroGradientFvPatchField<scalar>::typeName zeroGradientFvPatchField<Type>::typeName
) )
); );
tvf.ref().internalField() = df; tvf.ref().internalField() = df;
tvf.ref().correctBoundaryConditions(); tvf.ref().correctBoundaryConditions();
const GeometricField<Type, fvPatchField, volMesh>& vf = tvf();
if (meshSubsetter.hasSubMesh()) if (meshSubsetter.hasSubMesh())
{ {
const GeometricField<Type, fvPatchField, volMesh>& vf = tvf();
tmp<GeometricField<Type, fvPatchField, volMesh>> tfld tmp<GeometricField<Type, fvPatchField, volMesh>> tfld
( (
meshSubsetter.interpolate(vf) meshSubsetter.interpolate(vf)