diff --git a/applications/utilities/mesh/generation/cvMesh/checkCvMesh/Make/files b/applications/utilities/mesh/generation/cvMesh/checkCvMesh/Make/files new file mode 100644 index 0000000000..73871a7532 --- /dev/null +++ b/applications/utilities/mesh/generation/cvMesh/checkCvMesh/Make/files @@ -0,0 +1,3 @@ +checkCvMesh.C + +EXE = $(FOAM_APPBIN)/checkCvMesh diff --git a/applications/utilities/mesh/generation/cvMesh/checkCvMesh/Make/options b/applications/utilities/mesh/generation/cvMesh/checkCvMesh/Make/options new file mode 100644 index 0000000000..ba68fd3819 --- /dev/null +++ b/applications/utilities/mesh/generation/cvMesh/checkCvMesh/Make/options @@ -0,0 +1,14 @@ +EXE_INC = \ + -I$(LIB_SRC)/finiteVolume/lnInclude \ + -I$(LIB_SRC)/triSurface/lnInclude \ + -I$(LIB_SRC)/mesh/autoMesh/lnInclude \ + -I$(LIB_SRC)/dynamicMesh/lnInclude \ + -I$(LIB_SRC)/meshTools/lnInclude + +EXE_LIBS = \ + -lfiniteVolume \ + -ldynamicMesh \ + -ltriSurface \ + -lautoMesh \ + -lmeshTools + diff --git a/applications/utilities/mesh/generation/cvMesh/checkCvMesh/checkCvMesh.C b/applications/utilities/mesh/generation/cvMesh/checkCvMesh/checkCvMesh.C new file mode 100644 index 0000000000..df2a3b90f8 --- /dev/null +++ b/applications/utilities/mesh/generation/cvMesh/checkCvMesh/checkCvMesh.C @@ -0,0 +1,122 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2011 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 . + +Application + checkCvMesh + +Description + +\*---------------------------------------------------------------------------*/ + +#include "argList.H" +#include "Time.H" +#include "fvMesh.H" +#include "autoSnapDriver.H" +#include "faceSet.H" +#include "motionSmoother.H" +#include "timeSelector.H" + + +using namespace Foam; + + +int main(int argc, char *argv[]) +{ +# include "addOverwriteOption.H" + +# include "setRootCase.H" +# include "createTime.H" + + instantList timeDirs = timeSelector::select0(runTime, args); + +# include "createMesh.H" + + runTime.functionObjects().off(); + + forAll(timeDirs, timeI) + { + runTime.setTime(timeDirs[timeI], timeI); + + Info<< "Create mesh for time = " << runTime.timeName() + << nl << endl; + + mesh.readUpdate(); + + Info<< "Read mesh in = " + << runTime.cpuTimeIncrement() << " s" << endl; + + // Check patches and faceZones are synchronised + mesh.boundaryMesh().checkParallelSync(true); + meshRefinement::checkCoupledFaceZones(mesh); + + // Read meshing dictionary + IOdictionary cvMeshDict + ( + IOobject + ( + "cvMeshDict", + runTime.system(), + mesh, + IOobject::MUST_READ_IF_MODIFIED, + IOobject::NO_WRITE + ) + ); + + // mesh motion and mesh quality parameters + const dictionary& meshQualityDict + = cvMeshDict.subDict("meshQualityControls"); + + + Info<< "Checking initial mesh ..." << endl; + faceSet wrongFaces(mesh, "wrongFaces", mesh.nFaces()/100); + motionSmoother::checkMesh(false, mesh, meshQualityDict, wrongFaces); + + const label nInitErrors = returnReduce + ( + wrongFaces.size(), + sumOp