ENH: multiLevel decomposition method.

This commit is contained in:
mattijs
2010-06-04 15:31:19 +01:00
parent c9f9d384e5
commit dafbfb5c20
30 changed files with 1140 additions and 828 deletions

View File

@ -381,7 +381,8 @@ void subsetVolFields
const fvMesh& mesh,
const fvMesh& subMesh,
const labelList& cellMap,
const labelList& faceMap
const labelList& faceMap,
const labelHashSet& addedPatches
)
{
const labelList patchMap(identity(mesh.boundaryMesh().size()));
@ -412,14 +413,7 @@ void subsetVolFields
// get initialised.
forAll(tSubFld().boundaryField(), patchI)
{
const fvPatchField<typename GeoField::value_type>& pfld =
tSubFld().boundaryField()[patchI];
if
(
isA<calculatedFvPatchField<typename GeoField::value_type> >
(pfld)
)
if (addedPatches.found(patchI))
{
tSubFld().boundaryField()[patchI] ==
pTraits<typename GeoField::value_type>::zero;
@ -440,7 +434,8 @@ void subsetSurfaceFields
(
const fvMesh& mesh,
const fvMesh& subMesh,
const labelList& faceMap
const labelList& faceMap,
const labelHashSet& addedPatches
)
{
const labelList patchMap(identity(mesh.boundaryMesh().size()));
@ -470,14 +465,7 @@ void subsetSurfaceFields
// get initialised.
forAll(tSubFld().boundaryField(), patchI)
{
const fvsPatchField<typename GeoField::value_type>& pfld =
tSubFld().boundaryField()[patchI];
if
(
isA<calculatedFvsPatchField<typename GeoField::value_type> >
(pfld)
)
if (addedPatches.found(patchI))
{
tSubFld().boundaryField()[patchI] ==
pTraits<typename GeoField::value_type>::zero;
@ -852,6 +840,15 @@ void createAndWriteRegion
newMesh
);
// Make map of all added patches
labelHashSet addedPatches(2*interfaceToPatch.size());
forAllConstIter(EdgeMap<label>, interfaceToPatch, iter)
{
addedPatches.insert(iter());
addedPatches.insert(iter()+1);
}
Info<< "Mapping fields" << endl;
// Map existing fields
@ -863,66 +860,76 @@ void createAndWriteRegion
mesh,
newMesh(),
map().cellMap(),
map().faceMap()
map().faceMap(),
addedPatches
);
subsetVolFields<volVectorField>
(
mesh,
newMesh(),
map().cellMap(),
map().faceMap()
map().faceMap(),
addedPatches
);
subsetVolFields<volSphericalTensorField>
(
mesh,
newMesh(),
map().cellMap(),
map().faceMap()
map().faceMap(),
addedPatches
);
subsetVolFields<volSymmTensorField>
(
mesh,
newMesh(),
map().cellMap(),
map().faceMap()
map().faceMap(),
addedPatches
);
subsetVolFields<volTensorField>
(
mesh,
newMesh(),
map().cellMap(),
map().faceMap()
map().faceMap(),
addedPatches
);
subsetSurfaceFields<surfaceScalarField>
(
mesh,
newMesh(),
map().faceMap()
map().faceMap(),
addedPatches
);
subsetSurfaceFields<surfaceVectorField>
(
mesh,
newMesh(),
map().faceMap()
map().faceMap(),
addedPatches
);
subsetSurfaceFields<surfaceSphericalTensorField>
(
mesh,
newMesh(),
map().faceMap()
map().faceMap(),
addedPatches
);
subsetSurfaceFields<surfaceSymmTensorField>
(
mesh,
newMesh(),
map().faceMap()
map().faceMap(),
addedPatches
);
subsetSurfaceFields<surfaceTensorField>
(
mesh,
newMesh(),
map().faceMap()
map().faceMap(),
addedPatches
);