mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: output function objects - added evaluateControl
This commit is contained in:
@ -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();
|
||||||
}
|
}
|
||||||
|
|
||||||
ptr_->execute();
|
if (evaluateControl_.output())
|
||||||
|
{
|
||||||
|
ptr_->execute();
|
||||||
|
}
|
||||||
|
|
||||||
if (forceWrite || outputControl_.output())
|
if (forceWrite || outputControl_.output())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -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_;
|
||||||
|
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user