ENH: output function objects - added evaluateControl
This commit is contained in:
parent
1c4d93e637
commit
d24bc269f2
@ -110,7 +110,8 @@ Foam::OutputFilterFunctionObject<OutputFilter>::OutputFilterFunctionObject
|
||||
storeFilter_(true),
|
||||
timeStart_(-VGREAT),
|
||||
timeEnd_(VGREAT),
|
||||
outputControl_(t, dict)
|
||||
outputControl_(t, dict, "output"),
|
||||
evaluateControl_(t, dict, "evaluate")
|
||||
{
|
||||
readDict();
|
||||
}
|
||||
@ -159,7 +160,10 @@ bool Foam::OutputFilterFunctionObject<OutputFilter>::execute
|
||||
allocateFilter();
|
||||
}
|
||||
|
||||
ptr_->execute();
|
||||
if (evaluateControl_.output())
|
||||
{
|
||||
ptr_->execute();
|
||||
}
|
||||
|
||||
if (forceWrite || outputControl_.output())
|
||||
{
|
||||
|
@ -98,6 +98,9 @@ class OutputFilterFunctionObject
|
||||
//- Output controls
|
||||
outputFilterOutputControl outputControl_;
|
||||
|
||||
//- Evaluate controls
|
||||
outputFilterOutputControl evaluateControl_;
|
||||
|
||||
//- Pointer to the output filter
|
||||
autoPtr<OutputFilter> ptr_;
|
||||
|
||||
|
@ -31,7 +31,7 @@ License
|
||||
namespace Foam
|
||||
{
|
||||
template<>
|
||||
const char* NamedEnum<outputFilterOutputControl::outputControls, 6>::
|
||||
const char* NamedEnum<outputFilterOutputControl::outputControls, 7>::
|
||||
names[] =
|
||||
{
|
||||
"timeStep",
|
||||
@ -39,11 +39,12 @@ namespace Foam
|
||||
"adjustableTime",
|
||||
"runTime",
|
||||
"clockTime",
|
||||
"cpuTime"
|
||||
"cpuTime",
|
||||
"none"
|
||||
};
|
||||
}
|
||||
|
||||
const Foam::NamedEnum<Foam::outputFilterOutputControl::outputControls, 6>
|
||||
const Foam::NamedEnum<Foam::outputFilterOutputControl::outputControls, 7>
|
||||
Foam::outputFilterOutputControl::outputControlNames_;
|
||||
|
||||
|
||||
@ -52,10 +53,12 @@ const Foam::NamedEnum<Foam::outputFilterOutputControl::outputControls, 6>
|
||||
Foam::outputFilterOutputControl::outputFilterOutputControl
|
||||
(
|
||||
const Time& t,
|
||||
const dictionary& dict
|
||||
const dictionary& dict,
|
||||
const word& prefix
|
||||
)
|
||||
:
|
||||
time_(t),
|
||||
prefix_(prefix),
|
||||
outputControl_(ocTimeStep),
|
||||
outputInterval_(0),
|
||||
outputTimeLastDump_(0),
|
||||
@ -75,9 +78,12 @@ Foam::outputFilterOutputControl::~outputFilterOutputControl()
|
||||
|
||||
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
|
||||
{
|
||||
@ -88,13 +94,13 @@ void Foam::outputFilterOutputControl::read(const dictionary& dict)
|
||||
{
|
||||
case ocTimeStep:
|
||||
{
|
||||
outputInterval_ = dict.lookupOrDefault<label>("outputInterval", 0);
|
||||
outputInterval_ = dict.lookupOrDefault<label>(intervalName, 0);
|
||||
break;
|
||||
}
|
||||
|
||||
case ocOutputTime:
|
||||
{
|
||||
outputInterval_ = dict.lookupOrDefault<label>("outputInterval", 1);
|
||||
outputInterval_ = dict.lookupOrDefault<label>(intervalName, 1);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -190,6 +196,11 @@ bool Foam::outputFilterOutputControl::output()
|
||||
break;
|
||||
}
|
||||
|
||||
case ocNone:
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
default:
|
||||
{
|
||||
// this error should not actually be possible
|
||||
|
@ -61,7 +61,8 @@ public:
|
||||
ocAdjustableTime, /*!< Adjust time step for dumping */
|
||||
ocRunTime, /*!< run 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
|
||||
const Time& time_;
|
||||
|
||||
//- Prefix
|
||||
const word prefix_;
|
||||
|
||||
//- String representation of outputControls enums
|
||||
static const NamedEnum<outputControls, 6> outputControlNames_;
|
||||
static const NamedEnum<outputControls, 7> outputControlNames_;
|
||||
|
||||
//- Type of output
|
||||
outputControls outputControl_;
|
||||
@ -101,7 +105,12 @@ public:
|
||||
// Constructors
|
||||
|
||||
//- Construct from Time object and dictionary
|
||||
outputFilterOutputControl(const Time&, const dictionary&);
|
||||
outputFilterOutputControl
|
||||
(
|
||||
const Time&,
|
||||
const dictionary&,
|
||||
const word& prefix
|
||||
);
|
||||
|
||||
|
||||
//- Destructor
|
||||
|
Loading…
Reference in New Issue
Block a user