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

View File

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

View File

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

View File

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