diff --git a/applications/utilities/preProcessing/createZeroDirectory/Make/files b/applications/utilities/preProcessing/createZeroDirectory/Make/files new file mode 100644 index 0000000000..379802af21 --- /dev/null +++ b/applications/utilities/preProcessing/createZeroDirectory/Make/files @@ -0,0 +1,7 @@ +boundaryInfo.C +boundaryTemplates.C +caseInfo.C +solverTemplate.C +createZeroDirectory.C + +EXE = $(FOAM_APPBIN)/createZeroDirectory diff --git a/applications/utilities/preProcessing/createZeroDirectory/Make/options b/applications/utilities/preProcessing/createZeroDirectory/Make/options new file mode 100644 index 0000000000..b6e5516b59 --- /dev/null +++ b/applications/utilities/preProcessing/createZeroDirectory/Make/options @@ -0,0 +1,11 @@ +EXE_INC = \ + -I$(LIB_SRC)/finiteVolume/lnInclude \ + -I$(LIB_SRC)/dynamicMesh/lnInclude \ + -I$(LIB_SRC)/meshTools/lnInclude \ + -I$(LIB_SRC)/regionModels/regionModel/lnInclude + +EXE_LIBS = \ + -lfiniteVolume \ + -ldynamicMesh \ + -lmeshTools \ + -lregionModels diff --git a/applications/utilities/preProcessing/createZeroDirectory/boundaryInfo.C b/applications/utilities/preProcessing/createZeroDirectory/boundaryInfo.C new file mode 100644 index 0000000000..6dd055b6a3 --- /dev/null +++ b/applications/utilities/preProcessing/createZeroDirectory/boundaryInfo.C @@ -0,0 +1,198 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +\*---------------------------------------------------------------------------*/ + +#include "boundaryInfo.H" +#include "Time.H" +#include "polyMesh.H" +#include "processorPolyPatch.H" + +using namespace Foam; + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +namespace Foam +{ + defineTemplateTypeNameAndDebug(IOPtrList, 0); +} + +// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // + +Foam::IOPtrList Foam::boundaryInfo::readBoundaryDict +( + const Time& runTime, + const word& regionName +) const +{ + Info<< " Reading mesh boundaries" << endl; + + const_cast(IOPtrList::typeName) = polyBoundaryMesh::typeName; + IOPtrList boundaryPatchList + ( + IOobject + ( + "boundary", + runTime.findInstance(regionName/polyMesh::meshSubDir, "boundary"), + regionName/polyMesh::meshSubDir, + runTime, + IOobject::MUST_READ, + IOobject::NO_WRITE, + false + ) + ); + + // remove zero-sized patches + PtrList boundaryPatchListNew; + forAll(boundaryPatchList, patchI) + { + const dictionary& dict = boundaryPatchList[patchI].dict(); + const word pType = dict.lookup("type"); + bool procPatch = pType == processorPolyPatch::typeName; + + bool addPatch = true; + if (!procPatch) + { + label nFaces = readLabel(dict.lookup("nFaces")); + reduce(nFaces, sumOp