mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: add preliminary profiling items into snappyHexMesh
- needs more refinement, but provides the general idea.
This commit is contained in:
@ -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;
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user