mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
- Avoids the need for the 'OutputFilterFunctionObject' wrapper
- Time-control for execution and writing is now provided by the
'timeControlFunctionObject' which instantiates the processing
'functionObject' and controls its operation.
- Alternative time-control functionObjects can now be written and
selected at run-time without the need to compile wrapped version of
EVERY existing functionObject which would have been required in the
old structure.
- The separation of 'execute' and 'write' functions is now formalized in the
'functionObject' base-class and all derived classes implement the
two functions.
- Unnecessary implementations of functions with appropriate defaults
in the 'functionObject' base-class have been removed reducing
clutter and simplifying implementation of new functionObjects.
- The 'coded' 'functionObject' has also been updated, simplified and tested.
- Further simplification is now possible by creating some general
intermediate classes derived from 'functionObject'.
81 lines
1.8 KiB
C++
81 lines
1.8 KiB
C++
/*--------------------------------*- C++ -*----------------------------------*\
|
|
| ========= | |
|
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
|
| \\ / O peration | Version: dev |
|
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
|
| \\/ M anipulation | |
|
|
\*---------------------------------------------------------------------------*/
|
|
FoamFile
|
|
{
|
|
version 2.0;
|
|
format ascii;
|
|
class dictionary;
|
|
location "system";
|
|
object controlDict.1st;
|
|
}
|
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
|
|
application engineFoam;
|
|
|
|
startFrom startTime;
|
|
|
|
startTime -180;
|
|
|
|
stopAt endTime;
|
|
|
|
endTime 60;
|
|
|
|
deltaT 0.25;
|
|
|
|
writeControl runTime;
|
|
|
|
writeInterval 5;
|
|
|
|
purgeWrite 0;
|
|
|
|
writeFormat ascii;
|
|
|
|
writePrecision 6;
|
|
|
|
writeCompression off;
|
|
|
|
timeFormat general;
|
|
|
|
timePrecision 6;
|
|
|
|
runTimeModifiable true;
|
|
|
|
adjustTimeStep no;
|
|
|
|
maxCo 0.2;
|
|
|
|
maxDeltaT 1;
|
|
|
|
functions
|
|
{
|
|
timeStep
|
|
{
|
|
type coded;
|
|
functionObjectLibs ("libutilityFunctionObjects.so");
|
|
redirectType setDeltaT;
|
|
|
|
code
|
|
#{
|
|
#};
|
|
|
|
codeExecute
|
|
#{
|
|
const Time& runTime = mesh().time();
|
|
if (runTime.timeToUserTime(runTime.value()) >= -15.0)
|
|
{
|
|
const_cast<Time&>(runTime).setDeltaT
|
|
(
|
|
runTime.userTimeToTime(0.025)
|
|
);
|
|
}
|
|
#};
|
|
}
|
|
}
|
|
|
|
// ************************************************************************* //
|