ENH: add preliminary profiling items into snappyHexMesh

- needs more refinement, but provides the general idea.
This commit is contained in:
Mark Olesen
2016-06-18 01:00:55 +02:00
parent be73d81a22
commit e86d3f2e0e
4 changed files with 39 additions and 4 deletions

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation | Copyright 2015 OpenCFD Ltd. \\/ M anipulation | Copyright 2015-2016 OpenCFD Ltd.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
This file is part of OpenFOAM. This file is part of OpenFOAM.
@ -59,6 +59,7 @@ Description
#include "IOmanip.H" #include "IOmanip.H"
#include "decompositionModel.H" #include "decompositionModel.H"
#include "fvMeshTools.H" #include "fvMeshTools.H"
#include "Profiling.H"
using namespace Foam; using namespace Foam;
@ -633,6 +634,7 @@ int main(int argc, char *argv[])
"fileName", "fileName",
"name of the file to save the simplified surface to" "name of the file to save the simplified surface to"
); );
#include "addProfilingOption.H"
#include "addDictOption.H" #include "addDictOption.H"
#include "setRootCase.H" #include "setRootCase.H"
@ -816,7 +818,6 @@ int main(int argc, char *argv[])
const Switch keepPatches(meshDict.lookupOrDefault("keepPatches", false)); const Switch keepPatches(meshDict.lookupOrDefault("keepPatches", false));
// Read decomposePar dictionary // Read decomposePar dictionary
dictionary decomposeDict; dictionary decomposeDict;
{ {
@ -927,6 +928,8 @@ int main(int argc, char *argv[])
} }
} }
// for the impatient who want to see some output files:
Profiling::writeNow();
// Read geometry // Read geometry
// ~~~~~~~~~~~~~ // ~~~~~~~~~~~~~
@ -957,6 +960,7 @@ int main(int argc, char *argv[])
if (surfaceSimplify) if (surfaceSimplify)
{ {
addProfiling(surfaceSimplify, "snappyHexMesh::surfaceSimplify");
IOdictionary foamyHexMeshDict IOdictionary foamyHexMeshDict
( (
IOobject IOobject
@ -1001,6 +1005,8 @@ int main(int argc, char *argv[])
refineDict.lookupOrDefault("gapLevelIncrement", 0), refineDict.lookupOrDefault("gapLevelIncrement", 0),
initialCellSize/defaultCellSize initialCellSize/defaultCellSize
); );
Profiling::writeNow();
} }
else else
{ {
@ -1535,6 +1541,8 @@ int main(int argc, char *argv[])
Info<< "Mesh refined in = " Info<< "Mesh refined in = "
<< timer.cpuTimeIncrement() << " s." << endl; << timer.cpuTimeIncrement() << " s." << endl;
Profiling::writeNow();
} }
if (wantSnap) if (wantSnap)
@ -1583,6 +1591,8 @@ int main(int argc, char *argv[])
Info<< "Mesh snapped in = " Info<< "Mesh snapped in = "
<< timer.cpuTimeIncrement() << " s." << endl; << timer.cpuTimeIncrement() << " s." << endl;
Profiling::writeNow();
} }
if (wantLayers) if (wantLayers)
@ -1639,11 +1649,14 @@ int main(int argc, char *argv[])
Info<< "Layers added in = " Info<< "Layers added in = "
<< timer.cpuTimeIncrement() << " s." << endl; << timer.cpuTimeIncrement() << " s." << endl;
Profiling::writeNow();
} }
{ {
addProfiling(checkMesh, "snappyHexMesh::checkMesh");
// Check final mesh // Check final mesh
Info<< "Checking final mesh ..." << endl; Info<< "Checking final mesh ..." << endl;
faceSet wrongFaces(mesh, "wrongFaces", mesh.nFaces()/100); faceSet wrongFaces(mesh, "wrongFaces", mesh.nFaces()/100);
@ -1665,11 +1678,15 @@ int main(int argc, char *argv[])
{ {
Info<< "Finished meshing without any errors" << endl; Info<< "Finished meshing without any errors" << endl;
} }
Profiling::writeNow();
} }
if (surfaceSimplify) if (surfaceSimplify)
{ {
addProfiling(surfaceSimplify, "snappyHexMesh::surfaceSimplify");
const polyBoundaryMesh& bMesh = mesh.boundaryMesh(); const polyBoundaryMesh& bMesh = mesh.boundaryMesh();
labelHashSet includePatches(bMesh.size()); labelHashSet includePatches(bMesh.size());
@ -1727,6 +1744,7 @@ int main(int argc, char *argv[])
cellCentres.write(); cellCentres.write();
} }
Profiling::writeNow();
Info<< "Finished meshing in = " Info<< "Finished meshing in = "
<< runTime.elapsedCpuTime() << " s." << endl; << runTime.elapsedCpuTime() << " s." << endl;

View File

@ -57,6 +57,7 @@ Description
#include "localPointRegion.H" #include "localPointRegion.H"
#include "externalDisplacementMeshMover.H" #include "externalDisplacementMeshMover.H"
#include "scalarIOField.H" #include "scalarIOField.H"
#include "Profiling.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
@ -3399,6 +3400,7 @@ void Foam::snappyLayerDriver::addLayers
// extrudeStatus // extrudeStatus
//); //);
addProfiling(grow, "snappyHexMesh::layers::grow");
// Grow out region of non-extrusion // Grow out region of non-extrusion
for (label i = 0; i < layerParams.nGrow(); i++) for (label i = 0; i < layerParams.nGrow(); i++)
@ -4219,6 +4221,7 @@ void Foam::snappyLayerDriver::doLayers
fvMeshDistribute& distributor fvMeshDistribute& distributor
) )
{ {
addProfiling(layers, "snappyHexMesh::layers");
const fvMesh& mesh = meshRefiner_.mesh(); const fvMesh& mesh = meshRefiner_.mesh();
Info<< nl Info<< nl

View File

@ -39,6 +39,7 @@ License
#include "localPointRegion.H" #include "localPointRegion.H"
#include "IOmanip.H" #include "IOmanip.H"
#include "labelVector.H" #include "labelVector.H"
#include "Profiling.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
@ -79,6 +80,7 @@ Foam::label Foam::snappyRefineDriver::featureEdgeRefine
const label minRefine const label minRefine
) )
{ {
addProfiling(edge, "snappyHexMesh::refine::edge");
const fvMesh& mesh = meshRefiner_.mesh(); const fvMesh& mesh = meshRefiner_.mesh();
label iter = 0; label iter = 0;
@ -188,6 +190,7 @@ Foam::label Foam::snappyRefineDriver::smallFeatureRefine
const label maxIter const label maxIter
) )
{ {
addProfiling(feature, "snappyHexMesh::refine::smallFeature");
const fvMesh& mesh = meshRefiner_.mesh(); const fvMesh& mesh = meshRefiner_.mesh();
@ -310,6 +313,7 @@ Foam::label Foam::snappyRefineDriver::surfaceOnlyRefine
const label maxIter const label maxIter
) )
{ {
addProfiling(surface, "snappyHexMesh::refine::surface");
const fvMesh& mesh = meshRefiner_.mesh(); const fvMesh& mesh = meshRefiner_.mesh();
// Determine the maximum refinement level over all surfaces. This // Determine the maximum refinement level over all surfaces. This
@ -807,6 +811,7 @@ Foam::label Foam::snappyRefineDriver::danglingCellRefine
const label maxIter const label maxIter
) )
{ {
addProfiling(dangling, "snappyHexMesh::refine::danglingCell");
const fvMesh& mesh = meshRefiner_.mesh(); const fvMesh& mesh = meshRefiner_.mesh();
label iter; label iter;
@ -952,6 +957,7 @@ Foam::label Foam::snappyRefineDriver::refinementInterfaceRefine
const label maxIter const label maxIter
) )
{ {
addProfiling(interface, "snappyHexMesh::refine::transition");
const fvMesh& mesh = meshRefiner_.mesh(); const fvMesh& mesh = meshRefiner_.mesh();
label iter = 0; label iter = 0;
@ -1340,6 +1346,7 @@ Foam::label Foam::snappyRefineDriver::shellRefine
const label maxIter const label maxIter
) )
{ {
addProfiling(shell, "snappyHexMesh::refine::shell");
const fvMesh& mesh = meshRefiner_.mesh(); const fvMesh& mesh = meshRefiner_.mesh();
// Mark current boundary faces with 0. Have meshRefiner maintain them. // Mark current boundary faces with 0. Have meshRefiner maintain them.
@ -1515,6 +1522,7 @@ void Foam::snappyRefineDriver::baffleAndSplitMesh
const dictionary& motionDict const dictionary& motionDict
) )
{ {
addProfiling(split, "snappyHexMesh::refine::splitting");
Info<< nl Info<< nl
<< "Splitting mesh at surface intersections" << nl << "Splitting mesh at surface intersections" << nl
<< "---------------------------------------" << nl << "---------------------------------------" << nl
@ -1839,6 +1847,7 @@ void Foam::snappyRefineDriver::mergePatchFaces
const dictionary& motionDict const dictionary& motionDict
) )
{ {
addProfiling(merge, "snappyHexMesh::refine::merge");
Info<< nl Info<< nl
<< "Merge refined boundary faces" << nl << "Merge refined boundary faces" << nl
<< "----------------------------" << nl << "----------------------------" << nl
@ -1893,6 +1902,7 @@ void Foam::snappyRefineDriver::doRefine
const dictionary& motionDict const dictionary& motionDict
) )
{ {
addProfiling(refine, "snappyHexMesh::refine");
Info<< nl Info<< nl
<< "Refinement phase" << nl << "Refinement phase" << nl
<< "----------------" << nl << "----------------" << nl

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd. \\/ M anipulation | Copyright (C) 2015-2016 OpenCFD Ltd.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
This file is part of OpenFOAM. This file is part of OpenFOAM.
@ -45,6 +45,7 @@ Description
#include "localPointRegion.H" #include "localPointRegion.H"
#include "PatchTools.H" #include "PatchTools.H"
#include "refinementFeatures.H" #include "refinementFeatures.H"
#include "Profiling.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
@ -832,6 +833,7 @@ void Foam::snappySnapDriver::preSmoothPatch
motionSmoother& meshMover motionSmoother& meshMover
) )
{ {
addProfiling(smooth, "snappyHexMesh::snap::smoothing");
const fvMesh& mesh = meshRefiner.mesh(); const fvMesh& mesh = meshRefiner.mesh();
labelList checkFaces; labelList checkFaces;
@ -2168,6 +2170,7 @@ bool Foam::snappySnapDriver::scaleMesh
motionSmoother& meshMover motionSmoother& meshMover
) )
{ {
addProfiling(scale, "snappyHexMesh::snap::scale");
const fvMesh& mesh = meshRefiner_.mesh(); const fvMesh& mesh = meshRefiner_.mesh();
// Relax displacement until correct mesh // Relax displacement until correct mesh
@ -2534,6 +2537,7 @@ void Foam::snappySnapDriver::doSnap
const snapParameters& snapParams const snapParameters& snapParams
) )
{ {
addProfiling(snap, "snappyHexMesh::snap");
fvMesh& mesh = meshRefiner_.mesh(); fvMesh& mesh = meshRefiner_.mesh();
Info<< nl Info<< nl