fix for cyclic boundary handling

This commit is contained in:
andy 2008-07-17 16:15:42 +01:00
parent e480daefa9
commit 64a1f7cbde
3 changed files with 24 additions and 9 deletions

View File

@ -64,7 +64,7 @@ SourceFiles
#include "fileName.H"
#include "volPointInterpolation.H"
#include "stringList.H"
#include "primitivePatch.H"
// * * * * * * * * * * * * * Forward Declarations * * * * * * * * * * * * * //
@ -449,6 +449,7 @@ private:
(
const fvMesh&,
const volPointInterpolation& pInterp,
const PtrList<PrimitivePatchInterpolation<primitivePatch> >&,
const IOobjectList& objects,
vtkDataArraySelection* fieldSelection,
vtkMultiBlockDataSet* output

View File

@ -45,6 +45,7 @@ void Foam::vtkPV3Foam::convertVolFields
(
const fvMesh& mesh,
const volPointInterpolation& pInterp,
const PtrList<PrimitivePatchInterpolation<primitivePatch> >& ppInterpList,
const IOobjectList& objects,
vtkDataArraySelection *fieldSelection,
vtkMultiBlockDataSet* output
@ -153,7 +154,6 @@ void Foam::vtkPV3Foam::convertVolFields
tf.boundaryField()[patchId]
);
if
(
isType<emptyFvPatchField<Type> >(ptf)
@ -195,8 +195,7 @@ void Foam::vtkPV3Foam::convertVolFields
convertPatchPointField
(
tf.name(),
tptf().boundaryField()[patchId]
.patchInternalField()(),
ppInterpList[patchId].faceToPointInterpolate(ptf)(),
output,
selectInfoPatches_,
selectedRegionDatasetIds_[regionId]

View File

@ -114,6 +114,21 @@ void Foam::vtkPV3Foam::updateVolFields
}
volPointInterpolation pInterp(mesh, pMesh);
PtrList<PrimitivePatchInterpolation<primitivePatch> >
ppInterpList(mesh.boundaryMesh().size());
forAll(ppInterpList, i)
{
ppInterpList.set
(
i,
new PrimitivePatchInterpolation<primitivePatch>
(
mesh.boundaryMesh()[i]
)
);
}
/*
convertVolFields<Foam::label>
(
@ -122,23 +137,23 @@ void Foam::vtkPV3Foam::updateVolFields
*/
convertVolFields<Foam::scalar>
(
mesh, pInterp, objects, arraySelection, output
mesh, pInterp, ppInterpList, objects, arraySelection, output
);
convertVolFields<Foam::vector>
(
mesh, pInterp, objects, arraySelection, output
mesh, pInterp, ppInterpList, objects, arraySelection, output
);
convertVolFields<Foam::sphericalTensor>
(
mesh, pInterp, objects, arraySelection, output
mesh, pInterp, ppInterpList, objects, arraySelection, output
);
convertVolFields<Foam::symmTensor>
(
mesh, pInterp, objects, arraySelection, output
mesh, pInterp, ppInterpList, objects, arraySelection, output
);
convertVolFields<Foam::tensor>
(
mesh, pInterp, objects, arraySelection, output
mesh, pInterp, ppInterpList, objects, arraySelection, output
);
}