Merge remote-tracking branch 'origin/feature-cellSetRemove' into develop

This commit is contained in:
Mark Olesen
2016-12-07 14:13:00 +00:00
58 changed files with 860 additions and 116 deletions

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
\\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -53,6 +53,7 @@ Description
#include "fvMeshAdder.H"
#include "polyTopoChange.H"
#include "extrapolatedCalculatedFvPatchFields.H"
#include "topoSet.H"
using namespace Foam;
@ -731,6 +732,7 @@ int main(int argc, char *argv[])
<< "Failed writing polyMesh."
<< exit(FatalError);
}
topoSet::removeFiles(masterMesh);
if (writeCellDist)
{

View File

@ -4,7 +4,8 @@ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/lagrangian/basic/lnInclude \
-I$(LIB_SRC)/dynamicMesh/lnInclude
-I$(LIB_SRC)/dynamicMesh/lnInclude \
-I$(LIB_SRC)/mesh/snappyHexMesh/lnInclude
EXE_LIBS = \
-lfiniteVolume \
@ -14,4 +15,5 @@ EXE_LIBS = \
-ldecompose \
-lmeshTools \
-llagrangian \
-ldynamicMesh
-ldynamicMesh \
-lsnappyHexMesh

View File

@ -75,11 +75,15 @@ Usage
#include "loadOrCreateMesh.H"
#include "processorFvPatchField.H"
#include "zeroGradientFvPatchFields.H"
#include "decompositionModel.H"
#include "topoSet.H"
#include "parFvFieldReconstructor.H"
#include "parLagrangianRedistributor.H"
#include "unmappedPassiveParticleCloud.H"
#include "hexRef8Data.H"
#include "meshRefinement.H"
#include "pointFields.H"
using namespace Foam;
@ -837,6 +841,8 @@ autoPtr<mapDistributePolyMesh> redistributeAndWrite
PtrList<DimensionedField<symmTensor, volMesh>> dimSymmTensorFields;
PtrList<DimensionedField<tensor, volMesh>> dimTensorFields;
DynamicList<word> pointFieldNames;
if (doReadFields)
{
@ -1050,6 +1056,40 @@ autoPtr<mapDistributePolyMesh> redistributeAndWrite
);
// pointFields currently not supported. Read their names so we
// can delete them.
{
// Get my objects of type
pointFieldNames.append
(
objects.lookupClass(pointScalarField::typeName).sortedNames()
);
pointFieldNames.append
(
objects.lookupClass(pointVectorField::typeName).sortedNames()
);
pointFieldNames.append
(
objects.lookupClass
(
pointSphericalTensorField::typeName
).sortedNames()
);
pointFieldNames.append
(
objects.lookupClass
(
pointSymmTensorField::typeName
).sortedNames()
);
pointFieldNames.append
(
objects.lookupClass(pointTensorField::typeName).sortedNames()
);
// Make sure all processors have the same set
Pstream::scatter(pointFieldNames);
}
if (Pstream::master() && decompose)
{
@ -1136,6 +1176,20 @@ autoPtr<mapDistributePolyMesh> redistributeAndWrite
runTime.TimePaths::caseName() = baseRunTime.caseName();
mesh.write();
topoSet::removeFiles(mesh);
forAll(pointFieldNames, i)
{
IOobject io
(
pointFieldNames[i],
runTime.timeName(),
mesh
);
fileName fieldFile(io.objectPath());
if (topoSet::debug) DebugVar(fieldFile);
rm(fieldFile);
}
// Now we've written all. Reset caseName on master
Info<< "Restoring caseName to " << proc0CaseName << endl;
@ -1145,6 +1199,20 @@ autoPtr<mapDistributePolyMesh> redistributeAndWrite
else
{
mesh.write();
topoSet::removeFiles(mesh);
forAll(pointFieldNames, i)
{
IOobject io
(
pointFieldNames[i],
runTime.timeName(),
mesh
);
fileName fieldFile(io.objectPath());
if (topoSet::debug) DebugVar(fieldFile);
rm(fieldFile);
}
}
Info<< "Written redistributed mesh to " << mesh.facesInstance() << nl
<< endl;
@ -1180,14 +1248,18 @@ autoPtr<mapDistributePolyMesh> redistributeAndWrite
{
runTime.TimePaths::caseName() = proc0CaseName;
}
// Make sure all processors have valid data (since only some will
// read)
refData.sync(io);
// Distribute
refData.distribute(map);
// Now we've read refinement data we can remove it
meshRefinement::removeFiles(mesh);
if (nDestProcs == 1)
{
if (Pstream::master())
@ -1209,6 +1281,55 @@ autoPtr<mapDistributePolyMesh> redistributeAndWrite
}
}
//// Sets. Disabled for now.
//{
// // Read sets
// if (Pstream::master() && decompose)
// {
// runTime.TimePaths::caseName() = baseRunTime.caseName();
// }
// IOobjectList objects(mesh, mesh.facesInstance(), "polyMesh/sets");
//
// PtrList<cellSet> cellSets;
// ReadFields(objects, cellSets);
//
// if (Pstream::master() && decompose)
// {
// runTime.TimePaths::caseName() = proc0CaseName;
// }
//
// forAll(cellSets, i)
// {
// cellSets[i].distribute(map);
// }
//
// if (nDestProcs == 1)
// {
// if (Pstream::master())
// {
// Info<< "Setting caseName to " << baseRunTime.caseName()
// << " to write reconstructed refinement data." << endl;
// runTime.TimePaths::caseName() = baseRunTime.caseName();
//
// forAll(cellSets, i)
// {
// cellSets[i].distribute(map);
// }
//
// // Now we've written all. Reset caseName on master
// Info<< "Restoring caseName to " << proc0CaseName << endl;
// runTime.TimePaths::caseName() = proc0CaseName;
// }
// }
// else
// {
// forAll(cellSets, i)
// {
// cellSets[i].distribute(map);
// }
// }
//}
return autoPtr<mapDistributePolyMesh>
(