ENH: improve robustness of outputFilterOutputControl

This commit is contained in:
Mark Olesen
2010-05-18 09:24:46 +02:00
parent db07daf6ba
commit 7abd54708c
3 changed files with 33 additions and 16 deletions

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd.
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -68,17 +68,27 @@ Foam::outputFilterOutputControl::~outputFilterOutputControl()
void Foam::outputFilterOutputControl::read(const dictionary& dict)
{
outputControl_ = outputControlNames_.read(dict.lookup("outputControl"));
if (dict.found("outputControl"))
{
outputControl_ = outputControlNames_.read(dict.lookup("outputControl"));
}
else
{
outputControl_ = ocTimeStep;
}
switch (outputControl_)
{
case ocTimeStep:
{
dict.lookup("outputInterval") >> outputInterval_;
outputInterval_ = dict.lookupOrDefault<label>("outputInterval", 0);
break;
}
default:
{
// do nothing
break;
}
}
}
@ -97,17 +107,21 @@ bool Foam::outputFilterOutputControl::output() const
);
break;
}
case ocOutputTime:
{
return time_.outputTime();
break;
}
default:
{
// this error should not actually be possible
FatalErrorIn("bool Foam::outputFilterOutputControl::output()")
<< "Unknown output control: "
<< "Undefined output control: "
<< outputControlNames_[outputControl_] << nl
<< abort(FatalError);
break;
}
}

View File

@ -25,6 +25,8 @@ Class
Foam::outputFilterOutputControl
Description
An output control for function objects.
The default is time-step execution at every interval.
SourceFiles
outputFilterOutputControl.C
@ -51,10 +53,11 @@ class outputFilterOutputControl
{
public:
//- The output control options
enum outputControls
{
ocTimeStep,
ocOutputTime
ocTimeStep, /*!< execution is coupled to the time-step */
ocOutputTime /*!< execution is coupled to the output-time */
};
@ -71,7 +74,7 @@ private:
//- Type of output
outputControls outputControl_;
//- The execution interval (in time steps) when using TIMESTEP mode
//- The execution interval (in time steps) when using @c timeStep mode,
// a value <= 1 means execute at every time step
label outputInterval_;