ENH: output function objects - added evaluateControl

This commit is contained in:
andy
2013-11-29 09:24:11 +00:00
parent 1c4d93e637
commit d24bc269f2
4 changed files with 40 additions and 13 deletions

View File

@ -110,7 +110,8 @@ Foam::OutputFilterFunctionObject<OutputFilter>::OutputFilterFunctionObject
storeFilter_(true), storeFilter_(true),
timeStart_(-VGREAT), timeStart_(-VGREAT),
timeEnd_(VGREAT), timeEnd_(VGREAT),
outputControl_(t, dict) outputControl_(t, dict, "output"),
evaluateControl_(t, dict, "evaluate")
{ {
readDict(); readDict();
} }
@ -159,7 +160,10 @@ bool Foam::OutputFilterFunctionObject<OutputFilter>::execute
allocateFilter(); allocateFilter();
} }
if (evaluateControl_.output())
{
ptr_->execute(); ptr_->execute();
}
if (forceWrite || outputControl_.output()) if (forceWrite || outputControl_.output())
{ {

View File

@ -98,6 +98,9 @@ class OutputFilterFunctionObject
//- Output controls //- Output controls
outputFilterOutputControl outputControl_; outputFilterOutputControl outputControl_;
//- Evaluate controls
outputFilterOutputControl evaluateControl_;
//- Pointer to the output filter //- Pointer to the output filter
autoPtr<OutputFilter> ptr_; autoPtr<OutputFilter> ptr_;

View File

@ -31,7 +31,7 @@ License
namespace Foam namespace Foam
{ {
template<> template<>
const char* NamedEnum<outputFilterOutputControl::outputControls, 6>:: const char* NamedEnum<outputFilterOutputControl::outputControls, 7>::
names[] = names[] =
{ {
"timeStep", "timeStep",
@ -39,11 +39,12 @@ namespace Foam
"adjustableTime", "adjustableTime",
"runTime", "runTime",
"clockTime", "clockTime",
"cpuTime" "cpuTime",
"none"
}; };
} }
const Foam::NamedEnum<Foam::outputFilterOutputControl::outputControls, 6> const Foam::NamedEnum<Foam::outputFilterOutputControl::outputControls, 7>
Foam::outputFilterOutputControl::outputControlNames_; Foam::outputFilterOutputControl::outputControlNames_;
@ -52,10 +53,12 @@ const Foam::NamedEnum<Foam::outputFilterOutputControl::outputControls, 6>
Foam::outputFilterOutputControl::outputFilterOutputControl Foam::outputFilterOutputControl::outputFilterOutputControl
( (
const Time& t, const Time& t,
const dictionary& dict const dictionary& dict,
const word& prefix
) )
: :
time_(t), time_(t),
prefix_(prefix),
outputControl_(ocTimeStep), outputControl_(ocTimeStep),
outputInterval_(0), outputInterval_(0),
outputTimeLastDump_(0), outputTimeLastDump_(0),
@ -75,9 +78,12 @@ Foam::outputFilterOutputControl::~outputFilterOutputControl()
void Foam::outputFilterOutputControl::read(const dictionary& dict) void Foam::outputFilterOutputControl::read(const dictionary& dict)
{ {
if (dict.found("outputControl")) const word controlName(prefix_ + "Control");
const word intervalName(prefix_ + "Interval");
if (dict.found(controlName))
{ {
outputControl_ = outputControlNames_.read(dict.lookup("outputControl")); outputControl_ = outputControlNames_.read(dict.lookup(controlName));
} }
else else
{ {
@ -88,13 +94,13 @@ void Foam::outputFilterOutputControl::read(const dictionary& dict)
{ {
case ocTimeStep: case ocTimeStep:
{ {
outputInterval_ = dict.lookupOrDefault<label>("outputInterval", 0); outputInterval_ = dict.lookupOrDefault<label>(intervalName, 0);
break; break;
} }
case ocOutputTime: case ocOutputTime:
{ {
outputInterval_ = dict.lookupOrDefault<label>("outputInterval", 1); outputInterval_ = dict.lookupOrDefault<label>(intervalName, 1);
break; break;
} }
@ -190,6 +196,11 @@ bool Foam::outputFilterOutputControl::output()
break; break;
} }
case ocNone:
{
return false;
}
default: default:
{ {
// this error should not actually be possible // this error should not actually be possible

View File

@ -61,7 +61,8 @@ public:
ocAdjustableTime, /*!< Adjust time step for dumping */ ocAdjustableTime, /*!< Adjust time step for dumping */
ocRunTime, /*!< run time for dumping */ ocRunTime, /*!< run time for dumping */
ocClockTime, /*!< clock time for dumping */ ocClockTime, /*!< clock time for dumping */
ocCpuTime /*!< cpu time for dumping */ ocCpuTime, /*!< cpu time for dumping */
ocNone /*!< no output */
}; };
@ -72,8 +73,11 @@ private:
//- Time object //- Time object
const Time& time_; const Time& time_;
//- Prefix
const word prefix_;
//- String representation of outputControls enums //- String representation of outputControls enums
static const NamedEnum<outputControls, 6> outputControlNames_; static const NamedEnum<outputControls, 7> outputControlNames_;
//- Type of output //- Type of output
outputControls outputControl_; outputControls outputControl_;
@ -101,7 +105,12 @@ public:
// Constructors // Constructors
//- Construct from Time object and dictionary //- Construct from Time object and dictionary
outputFilterOutputControl(const Time&, const dictionary&); outputFilterOutputControl
(
const Time&,
const dictionary&,
const word& prefix
);
//- Destructor //- Destructor