Skip to content

Commit 8291265

Browse files
committed
Debuging Branch For TimeEff
1 parent 2ea3159 commit 8291265

23 files changed

+305
-168
lines changed

application/solvers/HFDIBDEMFoam/HFDIBDEMFoam.C

Lines changed: 0 additions & 130 deletions
This file was deleted.
Lines changed: 187 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,187 @@
1+
/*---------------------------------------------------------------------------*\
2+
========= |
3+
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4+
\\ / O peration | Website: https://openfoam.org
5+
\\ / A nd | Copyright (C) 2011-2020 OpenFOAM Foundation
6+
\\/ M anipulation |
7+
-------------------------------------------------------------------------------
8+
License
9+
This file is part of OpenFOAM.
10+
11+
OpenFOAM is free software: you can redistribute it and/or modify it
12+
under the terms of the GNU General Public License as published by
13+
the Free Software Foundation, either version 3 of the License, or
14+
(at your option) any later version.
15+
16+
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17+
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18+
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
19+
for more details.
20+
21+
You should have received a copy of the GNU General Public License
22+
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
23+
24+
Application
25+
HFDIBDEMFoam
26+
27+
Description
28+
Transient solver for pure DEM simulations.
29+
30+
\*---------------------------------------------------------------------------*/
31+
32+
#include "fvCFD.H"
33+
#include "dynamicFvMesh.H"
34+
#include "openHFDIBDEM.H"
35+
#include "pimpleControl.H"
36+
#include "fvOptions.H"
37+
#include "fvcSmooth.H"
38+
39+
#include "triSurfaceMesh.H"
40+
#include "clockTime.H"
41+
42+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
43+
44+
int main(int argc, char *argv[])
45+
{
46+
#include "postProcess.H"
47+
48+
#include "setRootCase.H"
49+
#include "createTime.H"
50+
#include "createDynamicFvMesh.H"
51+
#include "createDyMControls.H"
52+
#include "createFields.H"
53+
#include "createUfIfPresent.H"
54+
#include "createFvOptions.H"
55+
#include "createMRF.H"
56+
#include "CourantNo.H"
57+
#include "setInitialDeltaT.H"
58+
59+
#include "readDynMeshDict.H"
60+
61+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
62+
63+
Info << "\nInitializing HFDIBDEM\n" << endl;
64+
openHFDIBDEM HFDIBDEM(mesh);
65+
HFDIBDEM.initialize(lambda,U,refineF,maxRefinementLevel,runTime.timeName());
66+
HFDIBDEM.setSolverInfo();
67+
#include "initialMeshRefinement.H"
68+
69+
Info<< "\nStarting time loop\n" << endl;
70+
// OS time efficiency testing
71+
72+
scalar preUpdateTime_(0.0);
73+
scalar postUpdateTime_(0.0);
74+
scalar addRemoveTime_(0.0);
75+
scalar updateDEMTime_(0.0);
76+
scalar writeBodiesInfoTime_(0.0);
77+
scalar meshUpdateTime_(0.0);
78+
scalar meshChangingTime_(0.0);
79+
scalar createBodiesTime_(0.0);
80+
81+
// OS time efficiency testing
82+
if(HFDIBDEM.getRecordFirstTime())
83+
{
84+
HFDIBDEM.setRecordFirstTime(false);
85+
HFDIBDEM.writeFirtsTimeBodiesInfo();
86+
}
87+
88+
while (runTime.run())
89+
{
90+
91+
#include "readDyMControls.H"
92+
#include "CourantNo.H"
93+
#include "setDeltaT.H"
94+
95+
runTime++;
96+
97+
Info<< "Time = " << runTime.timeName() << nl << endl;
98+
99+
clockTime createBodiesTime; // OS time efficiency testing
100+
HFDIBDEM.createBodies(lambda,refineF);
101+
createBodiesTime_ += createBodiesTime.timeIncrement(); // OS time efficiency testing
102+
103+
clockTime preUpdateBodiesTime; // OS time efficiency testing
104+
HFDIBDEM.preUpdateBodies(lambda,f);
105+
preUpdateTime_ += preUpdateBodiesTime.timeIncrement(); // OS time efficiency testing
106+
107+
clockTime meshUpdateTime; // OS time efficiency testing
108+
mesh.update();
109+
meshUpdateTime_ += meshUpdateTime.timeIncrement(); // OS time efficiency testing
110+
111+
clockTime meshChangingTime; // OS time efficiency testing
112+
if (mesh.changing())
113+
{
114+
lambda *= 0;
115+
HFDIBDEM.recreateBodies(lambda,refineF);
116+
}
117+
meshChangingTime_ += meshChangingTime.timeIncrement(); // OS time efficiency testing
118+
119+
Info << "updating HFDIBDEM" << endl;
120+
121+
clockTime postUpdateBodiesTime;
122+
HFDIBDEM.postUpdateBodies(lambda,f);
123+
postUpdateTime_ += postUpdateBodiesTime.timeIncrement();
124+
125+
clockTime addRemoveTime;
126+
HFDIBDEM.addRemoveBodies(lambda,U,refineF);
127+
addRemoveTime_ += addRemoveTime.timeIncrement();
128+
129+
clockTime updateDEMTime;
130+
HFDIBDEM.updateDEM(lambda,refineF);
131+
updateDEMTime_ += updateDEMTime.timeIncrement();
132+
133+
Info << "updated HFDIBDEM" << endl;
134+
135+
runTime.write();
136+
137+
clockTime writeBodiesInfoTime;
138+
if(runTime.outputTime())
139+
{
140+
HFDIBDEM.writeBodiesInfo();
141+
}
142+
writeBodiesInfoTime_ += writeBodiesInfoTime.timeIncrement();
143+
144+
Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
145+
<< " ClockTime = " << runTime.elapsedClockTime() << " s"
146+
<< nl << endl;
147+
148+
Info<< "preUpdateTime = " << preUpdateTime_ << " s \n"
149+
<< "createBodiesTime = " << createBodiesTime_ << " s \n"
150+
<< "meshUpdateTime = " << meshUpdateTime_ << " s \n"
151+
<< "meshChangingTime = " << preUpdateTime_ << " s \n"
152+
<< "postUpdateTime = " << postUpdateTime_ << " s \n"
153+
<< "addRemoveTime = " << addRemoveTime_ << " s \n"
154+
<< "updateDEMTime = " << updateDEMTime_ << " s \n"
155+
<< " wallContactTime_ = " << HFDIBDEM.wallContactTime_<< " s \n"
156+
<< " wallContactParallelTime_ = " << HFDIBDEM.wallContactParallelTime_<< " s \n"
157+
<< " wallContactSCTime_ = " << HFDIBDEM.wallContactReduceTime_<< " s \n"
158+
<< " prtContactTime_ = " << HFDIBDEM.prtContactTime_<< " s \n"
159+
<< " prtContactParallelTime_ = " << HFDIBDEM.prtContactParallelTime_<< " s \n"
160+
<< " prtContactSCTime_ = " << HFDIBDEM.prtContactReduceTime_<< " s \n"
161+
<< " demItegrationTime_ = " << HFDIBDEM.demItegrationTime_<< " s \n"
162+
<< "writeBodiesInfoTime = " << writeBodiesInfoTime_ << " s \n" << endl;
163+
164+
}
165+
166+
Info<< "preUpdateTime = " << preUpdateTime_ << " s \n"
167+
<< "createBodiesTime = " << createBodiesTime_ << " s \n"
168+
<< "meshUpdateTime = " << meshUpdateTime_ << " s \n"
169+
<< "meshChangingTime = " << preUpdateTime_ << " s \n"
170+
<< "postUpdateTime = " << postUpdateTime_ << " s \n"
171+
<< "addRemoveTime = " << addRemoveTime_ << " s \n"
172+
<< "updateDEMTime = " << updateDEMTime_ << " s \n"
173+
<< " wallContactTime_ = " << HFDIBDEM.wallContactTime_ << " s \n"
174+
<< " wallContactParallelTime_ = " << HFDIBDEM.wallContactParallelTime_<< " s \n"
175+
<< " wallContactSCTime_ = " << HFDIBDEM.wallContactReduceTime_ << " s \n"
176+
<< " prtContactTime_ = " << HFDIBDEM.prtContactTime_ << " s \n"
177+
<< " prtContactParallelTime_ = " << HFDIBDEM.prtContactParallelTime_ << " s \n"
178+
<< " prtContactSCTime_ = " << HFDIBDEM.prtContactReduceTime_ << " s \n"
179+
<< " demItegrationTime_ = " << HFDIBDEM.demItegrationTime_ << " s \n"
180+
<< "writeBodiesInfoTime = " << writeBodiesInfoTime_ << " s \n" << endl;
181+
Info<< "End\n" << endl;
182+
183+
return 0;
184+
};
185+
186+
187+
// ************************************************************************* //

application/solvers/pimpleHFDIBFoam/pimpleHFDIBFoam.C renamed to applications/solvers/pimpleHFDIBFoam/pimpleHFDIBFoam.C

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ Description
4444

4545
#include "triSurfaceMesh.H"
4646
#include "openHFDIBDEM.H"
47-
47+
#include "clockTime.H"
4848
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
4949

5050
int main(int argc, char *argv[])
@@ -83,6 +83,15 @@ int main(int argc, char *argv[])
8383
}
8484

8585
Info<< "\nStarting time loop\n" << endl;
86+
scalar CFDTime_(0.0);
87+
scalar preUpdateTime_(0.0);
88+
scalar postUpdateTime_(0.0);
89+
scalar addRemoveTime_(0.0);
90+
scalar updateDEMTime_(0.0);
91+
scalar writeBodiesInfoTime_(0.0);
92+
scalar meshUpdateTime_(0.0);
93+
scalar meshChangingTime_(0.0);
94+
scalar createBodiesTime_(0.0);
8695

8796
while (pimple.run(runTime))
8897
{
@@ -102,9 +111,15 @@ int main(int argc, char *argv[])
102111

103112
Info<< "Time = " << runTime.timeName() << nl << endl;
104113

114+
clockTime createBodiesTime; // OS time efficiency testing
105115
HFDIBDEM.createBodies(lambda,refineF);
116+
createBodiesTime_ += createBodiesTime.timeIncrement(); // OS time efficiency testing
117+
118+
clockTime preUpdateBodiesTime; // OS time efficiency testing
106119
HFDIBDEM.preUpdateBodies(lambda,f);
120+
preUpdateTime_ += preUpdateBodiesTime.timeIncrement(); // OS time efficiency testing
107121

122+
clockTime pimpleRunClockTime; // OS time efficiency testing
108123
// --- Pressure-velocity PIMPLE corrector loop
109124
while (pimple.loop())
110125
{
@@ -154,22 +169,31 @@ int main(int argc, char *argv[])
154169
turbulence->correct();
155170
}
156171
}
157-
172+
CFDTime_ += pimpleRunClockTime.timeIncrement();
158173
Info << "updating HFDIBDEM" << endl;
174+
clockTime postUpdateBodiesTime;
159175
HFDIBDEM.postUpdateBodies(lambda,f);
176+
postUpdateTime_ += postUpdateBodiesTime.timeIncrement();
177+
160178

179+
clockTime addRemoveTime;
161180
HFDIBDEM.addRemoveBodies(lambda,U,refineF);
181+
addRemoveTime_ += addRemoveTime.timeIncrement();
162182

183+
clockTime updateDEMTime;
163184
HFDIBDEM.updateDEM(lambda,refineF);
185+
updateDEMTime_ += updateDEMTime.timeIncrement();
164186
Info << "updated HFDIBDEM" << endl;
165187

166188

167189
runTime.write();
168190

191+
clockTime writeBodiesInfoTime;
169192
if(runTime.outputTime())
170193
{
171194
HFDIBDEM.writeBodiesInfo();
172195
}
196+
writeBodiesInfoTime_ += writeBodiesInfoTime.timeIncrement();
173197

174198
Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
175199
<< " ClockTime = " << runTime.elapsedClockTime() << " s"

0 commit comments

Comments
 (0)