Merge branch 'feature-profiling' into 'develop'

high-level profiling/timing functionality



See merge request !47
This commit is contained in:
Andrew Heather
2016-06-22 14:46:50 +01:00
47 changed files with 1934 additions and 640 deletions

View File

@ -0,0 +1,3 @@
Test-cpuInfo.C
EXE = $(FOAM_USER_APPBIN)/Test-cpuInfo

View File

View File

@ -0,0 +1,47 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2016 OpenCFD Ltd.
\\/ 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 <http://www.gnu.org/licenses/>.
Application
Description
\*---------------------------------------------------------------------------*/
#include "cpuInfo.H"
#include "IOstreams.H"
using namespace Foam;
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Main program:
int main(int argc, char *argv[])
{
cpuInfo().write(Info);
Info<< endl;
return 0;
}
// ************************************************************************* //

View File

@ -0,0 +1,3 @@
Test-sysInfo.C
EXE = $(FOAM_USER_APPBIN)/Test-sysInfo

View File

View File

@ -0,0 +1,46 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2016 OpenCFD Ltd.
\\/ 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 <http://www.gnu.org/licenses/>.
Application
Description
\*---------------------------------------------------------------------------*/
#include "ProfilingSysInfo.H"
#include "IOstreams.H"
using namespace Foam;
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Main program:
int main(int argc, char *argv[])
{
Profiling::sysInfo().write(Info);
return 0;
}
// ************************************************************************* //

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;