mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
Merge remote-tracking branch 'origin/feature-cellSetRemove' into develop
This commit is contained in:
@ -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)
|
||||
{
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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>
|
||||
(
|
||||
|
||||
Reference in New Issue
Block a user