A polymorphic field/result from evaluating an expression. More...
Public Member Functions | |
TypeName ("exprResult") | |
Runtime type information. More... | |
declareRunTimeSelectionTable (autoPtr, exprResult, dictionary,(const dictionary &dict),(dict)) | |
declareRunTimeSelectionTable (autoPtr, exprResult, empty,(),()) | |
exprResult () | |
Construct null. More... | |
exprResult (const exprResult &expr) | |
Copy construct. More... | |
exprResult (exprResult &&expr) | |
Move construct. More... | |
exprResult (const dictionary &dict, const bool uniform=false, const bool needsValue=false) | |
Construct from a dictionary. More... | |
template<class Type > | |
exprResult (const Field< Type > &f) | |
Construct by copying a field. More... | |
template<class Type > | |
exprResult (Field< Type > &&f) | |
Construct by moving a field. More... | |
template<class Type > | |
exprResult (autoPtr< Type > &ap) | |
Construct for an IOobject. More... | |
template<class Type > | |
exprResult (autoPtr< Type > &&ap) | |
Construct for an IOobject. More... | |
template<class Type > | |
exprResult (const dimensioned< Type > &f) | |
Construct from a dimensioned value. More... | |
exprResult (const bool &val) | |
exprResult (const scalar &val) | |
exprResult (const vector &val) | |
exprResult (const tensor &val) | |
exprResult (const symmTensor &val) | |
exprResult (const sphericalTensor &val) | |
virtual autoPtr< exprResult > | clone () const |
Clone. More... | |
virtual | ~exprResult () |
Destructor. More... | |
bool | hasValue () const |
Has a value? More... | |
const word & | valueType () const |
Basic type for the field or single value. More... | |
bool | isPointValue (const bool isPointVal=true) const |
True if representing point values, or test if same as isPointVal. More... | |
bool | isUniform () const |
True if single, uniform value. More... | |
template<class Type > | |
bool | isType () const |
True if valueType corresponds to the given Type. More... | |
bool | isBool () const |
True if valueType is a bool. More... | |
bool | isObject () const |
True if the object pointer is being used. More... | |
label | size () const |
The field or object size. More... | |
const void * | dataAddress () const |
The address of the field data content. More... | |
void | clear () |
Clear (zero) the result. More... | |
void | noReset () |
Change reset behaviour. More... | |
void | allowReset () |
Change reset behaviour. More... | |
void | testIfSingleValue (const bool parRun=Pstream::parRun()) |
Test if field corresponds to a single-value and thus uniform. More... | |
template<class Type > | |
void | setResult (Field< Type > *, bool isPointVal=false) |
Set result field, taking ownership of the pointer. More... | |
template<class Type > | |
void | setResult (const Field< Type > &fld, bool isPointVal=false) |
Set result field, taking copy of the field contents. More... | |
template<class Type > | |
void | setResult (Field< Type > &&, bool isPointVal=false) |
Set result field, moving field contents. More... | |
template<class Type > | |
void | setResult (const Type &val, const label size) |
Set uniform result field of given size. More... | |
template<class Type > | |
void | setSingleValue (const Type &val) |
Set single-value uniform result. More... | |
template<class Type > | |
void | setObjectResult (autoPtr< Type > &o) |
template<class Type > | |
void | setObjectResult (autoPtr< Type > &&o) |
template<class Type > | |
const Field< Type > & | cref () const |
Return const reference to the field. More... | |
template<class Type > | |
Field< Type > & | ref () |
Return non-const reference to the field. More... | |
template<class Type > | |
Field< Type > & | getRef () const |
Return non-const reference to the field, casting away constness. More... | |
template<class Type > | |
tmp< Field< Type > > | getResult (bool cacheCopy=false) |
template<class Type > | |
tmp< Type > | getObjectResult (bool cacheCopy=false) |
exprResult | getUniform (const label size, const bool noWarn, const bool parRun=Pstream::parRun()) const |
Construct a uniform field from the current results. More... | |
template<template< class > class BinaryOp, class Type > | |
Type | getReduced (const BinaryOp< Type > &bop, const Type &initial=pTraits< Type >::zero) |
Get a reduced result. More... | |
void | writeEntry (const word &keyword, Ostream &os) const |
Forwarding to Field::writeEntry. More... | |
void | writeDict (Ostream &os, const bool subDict=true) const |
Write entry as dictionary contents. More... | |
void | writeValue (Ostream &os) const |
Write the single value, or the first value from field. More... | |
virtual void | operator= (const exprResult &rhs) |
Copy assignment. More... | |
virtual void | operator= (exprResult &&rhs) |
Move assignment. More... | |
exprResult & | operator*= (const scalar &b) |
Scalar multiplication. More... | |
exprResult & | operator+= (const exprResult &b) |
Addition of results. More... | |
template<class T > | |
void | setObjectResultImpl (T *ptr) |
template<class T > | |
void | setObjectResultImpl (autoPtr< T > &o) |
template<class T > | |
void | setObjectResultImpl (autoPtr< T > &&o) |
template<class Type > | |
Foam::tmp< Foam::Field< Type > > | getResult (bool cacheCopy) |
template<class Type > | |
const Foam::Field< Type > & | cref () const |
template<class Type > | |
Foam::Field< Type > & | ref () |
template<class Type > | |
Foam::Field< Type > & | getRef () const |
template<class Type > | |
Foam::tmp< Type > | getObjectResult (bool cacheCopy) |
Public Member Functions inherited from refCount | |
constexpr | refCount () noexcept |
Construct null initializing count to 0. More... | |
int | count () const noexcept |
Return the current reference count. More... | |
bool | unique () const noexcept |
Return true if the reference count is zero. More... | |
void | operator++ () noexcept |
Increment the reference count. More... | |
void | operator++ (int) noexcept |
Increment the reference count. More... | |
void | operator-- () noexcept |
Decrement the reference count. More... | |
void | operator-- (int) noexcept |
Decrement the reference count. More... | |
Static Public Member Functions | |
static autoPtr< exprResult > | New (const dictionary &dict) |
Return a reference to the selected value driver. More... | |
Static Public Attributes | |
static const exprResult | null |
An empty result. More... | |
Protected Member Functions | |
virtual exprResult & | target () |
Simulate virtual templated methods. More... | |
virtual void | resetImpl () |
Reset at new timestep according to the derived class type. More... | |
bool | reset (bool force=false) |
Reset at new timestep according to type. More... | |
void | needsReset (bool val) |
Adjusts the internal needsReset value. More... | |
Friends | |
class | exprResultGlobals |
Friendship with globals. More... | |
A polymorphic field/result from evaluating an expression.
Dictionary parameters
Property | Description | Required | Default |
---|---|---|---|
resultType | The type of result | no | exprResult |
unsetValue | Create without reading the dictionary | no | false |
noReset | Suppress reset on time | no | false |
When creating with values
Property | Description | Required | Default |
---|---|---|---|
valueType | Result value type (scalar, vector,..) | yes | |
isSingleValue | A single field value | no | false |
isPointValue | Interpret values as point values | no | false |
value | The field values | yes | |
fieldSize | The size of the field (when not single-value) | no |
Definition at line 128 of file exprResult.H.
exprResult | ( | ) |
Construct null.
Definition at line 205 of file exprResult.C.
References exprResult::clear().
exprResult | ( | const exprResult & | expr | ) |
Copy construct.
Definition at line 222 of file exprResult.C.
References exprResult::operator=().
exprResult | ( | exprResult && | expr | ) |
Move construct.
Definition at line 230 of file exprResult.C.
References exprResult::operator=().
|
explicit |
Construct from a dictionary.
Definition at line 239 of file exprResult.C.
References DebugInFunction, dict, Foam::exit(), Foam::FatalError, FatalErrorInFunction, Foam::FatalIOError, FatalIOErrorInFunction, and Foam::nl.
exprResult | ( | const Field< Type > & | f | ) |
Construct by copying a field.
Definition at line 193 of file exprResultI.H.
References DebugInFunction, f(), Foam::nl, and exprResult::setResult().
exprResult | ( | Field< Type > && | f | ) |
Construct by moving a field.
Definition at line 204 of file exprResultI.H.
References DebugInFunction, f(), Foam::nl, and exprResult::setResult().
exprResult | ( | autoPtr< Type > & | ap | ) |
Construct for an IOobject.
Definition at line 215 of file exprResultI.H.
References exprResult::setObjectResult().
exprResult | ( | autoPtr< Type > && | ap | ) |
Construct for an IOobject.
Definition at line 224 of file exprResultI.H.
References exprResult::setObjectResult().
exprResult | ( | const dimensioned< Type > & | f | ) |
Construct from a dimensioned value.
Definition at line 233 of file exprResultI.H.
References DebugInFunction, f(), Foam::nl, and exprResult::setSingleValue().
|
inlineexplicit |
Construct from single value of bool
Definition at line 406 of file exprResult.H.
|
inlineexplicit |
Construct from single value of scalar
Definition at line 407 of file exprResult.H.
|
inlineexplicit |
Construct from single value of vector
Definition at line 408 of file exprResult.H.
|
inlineexplicit |
Construct from single value of tensor
Definition at line 409 of file exprResult.H.
|
inlineexplicit |
Construct from single value of symmTensor
Definition at line 410 of file exprResult.H.
|
inlineexplicit |
Construct from single value of sphericalTensor
Definition at line 411 of file exprResult.H.
|
virtual |
|
inlineprotectedvirtual |
Simulate virtual templated methods.
Reimplemented in exprResultDelayed.
Definition at line 314 of file exprResult.H.
|
protectedvirtual |
Reset at new timestep according to the derived class type.
Reimplemented in exprResultStored, and exprResultStoredStack.
Definition at line 365 of file exprResult.C.
References clear().
Reset at new timestep according to type.
Definition at line 371 of file exprResult.C.
|
inlineprotected |
Adjusts the internal needsReset value.
Definition at line 324 of file exprResult.H.
Referenced by exprResultStack::exprResultStack(), and exprResultStoredStack::exprResultStoredStack().
TypeName | ( | "exprResult" | ) |
Runtime type information.
declareRunTimeSelectionTable | ( | autoPtr | , |
exprResult | , | ||
dictionary | , | ||
(const dictionary &dict) | , | ||
(dict) | |||
) |
declareRunTimeSelectionTable | ( | autoPtr | , |
exprResult | , | ||
empty | , | ||
() | , | ||
() | |||
) |
|
static |
Return a reference to the selected value driver.
Definition at line 304 of file exprResult.C.
References DebugInfo, dict, Foam::exit(), Foam::FatalError, FatalErrorInLookup, and Foam::nl.
Referenced by exprResultGlobals::addValue().
|
inlinevirtual |
Clone.
Reimplemented in exprResultDelayed, exprResultStored, exprResultStack, and exprResultStoredStack.
Definition at line 422 of file exprResult.H.
References autoPtr< T >::New().
|
inline |
Has a value?
Definition at line 244 of file exprResultI.H.
Referenced by Foam::stringOps::evaluate().
|
inline |
Basic type for the field or single value.
Definition at line 250 of file exprResultI.H.
Referenced by exprDriver::getResultType(), exprDriver::isLocalVariable(), and exprResultStack::push().
True if representing point values, or test if same as isPointVal.
Definition at line 257 of file exprResultI.H.
Referenced by parseDriver::getField(), exprDriver::getResult(), parseDriver::getVariableIfAvailable(), and exprDriver::isLocalVariable().
|
inline |
True if single, uniform value.
Definition at line 265 of file exprResultI.H.
Referenced by fvExprDriver::evaluateVariableRemote(), parseDriver::getField(), fvExprDriver::getVariable(), and parseDriver::getVariableIfAvailable().
|
inline |
True if valueType corresponds to the given Type.
Definition at line 272 of file exprResultI.H.
Referenced by exprDriver::isLocalVariable().
|
inline |
True if valueType is a bool.
Definition at line 278 of file exprResultI.H.
|
inline |
True if the object pointer is being used.
Definition at line 284 of file exprResultI.H.
|
inline |
The field or object size.
Definition at line 290 of file exprResultI.H.
Referenced by Foam::stringOps::evaluate(), and exprDriver::isLocalVariable().
const void * dataAddress | ( | ) | const |
The address of the field data content.
Fatal for unknown types. Used, for example, for python integration
Definition at line 825 of file exprResult.C.
References defineExpressionMethod, Foam::exit(), Foam::FatalError, FatalErrorInFunction, and Foam::nl.
void clear | ( | ) |
Clear (zero) the result.
Definition at line 383 of file exprResult.C.
Referenced by exprDriver::clearResult(), and exprResult::exprResult().
|
inline |
Change reset behaviour.
Definition at line 473 of file exprResult.H.
|
inline |
Change reset behaviour.
Definition at line 476 of file exprResult.H.
void testIfSingleValue | ( | const bool | parRun = Pstream::parRun() | ) |
Test if field corresponds to a single-value and thus uniform.
Uses field min/max to establish uniformity. Test afterwards with isUniform()
Definition at line 459 of file exprResult.C.
References Foam::endl(), Foam::nl, and WarningInFunction.
Referenced by fvExprDriver::evaluateVariableRemote().
Set result field, taking ownership of the pointer.
Definition at line 410 of file exprResultI.H.
Referenced by exprResult::exprResult(), and parseDriver::setResult().
Set result field, taking copy of the field contents.
Definition at line 298 of file exprResultI.H.
References DebugInFunction, and Foam::nl.
Set result field, moving field contents.
Definition at line 311 of file exprResultI.H.
References DebugInFunction, and Foam::nl.
|
inline |
Set uniform result field of given size.
Definition at line 441 of file exprResultI.H.
|
inline |
Set single-value uniform result.
Definition at line 473 of file exprResultI.H.
Referenced by exprDriver::addUniformVariable(), and exprResult::exprResult().
|
inline |
Definition at line 367 of file exprResultI.H.
References autoPtr< T >::ptr().
Referenced by exprResult::exprResult().
|
inline |
Definition at line 374 of file exprResultI.H.
|
inline |
Return const reference to the field.
Referenced by parseDriver::getField(), fvExprDriver::getVariable(), and parseDriver::getVariableIfAvailable().
|
inline |
Return non-const reference to the field.
|
inline |
Return non-const reference to the field, casting away constness.
Return tmp field of the contents, optionally keeping a copy in cache
Referenced by exprDriver::getResult().
Get object result (Caution - potentially fragile) optionally keeping a copy in cache
Foam::expressions::exprResult getUniform | ( | const label | size, |
const bool | noWarn, | ||
const bool | parRun = Pstream::parRun() |
||
) | const |
Construct a uniform field from the current results.
Uses the field average. Optionally warning if the min/max deviation is larger than SMALL.
Definition at line 424 of file exprResult.C.
References Foam::exit(), Foam::FatalError, FatalErrorInFunction, and Foam::nl.
Referenced by exprDriver::getRemoteResult(), and exprResultStack::operator=().
Get a reduced result.
Definition at line 794 of file exprResultI.H.
References Foam::exit(), Foam::FatalError, FatalErrorInFunction, fld, Foam::nl, and Foam::returnReduce().
Forwarding to Field::writeEntry.
Definition at line 557 of file exprResult.C.
References Foam::endl(), and WarningInFunction.
Write entry as dictionary contents.
Definition at line 581 of file exprResult.C.
References Ostream::beginBlock(), DebugInFunction, Ostream::endBlock(), Foam::endl(), IOstreamOption::format(), IOstreamOption::formatNames, Foam::name(), Foam::nl, WarningInFunction, Ostream::writeEntry(), and Ostream::writeEntryIfDifferent().
void writeValue | ( | Ostream & | os | ) | const |
Write the single value, or the first value from field.
Definition at line 639 of file exprResult.C.
References DebugInFunction, Foam::endl(), IOstreamOption::format(), IOstreamOption::formatNames, Foam::name(), Foam::nl, and WarningInFunction.
Referenced by Foam::stringOps::evaluate().
|
virtual |
Copy assignment.
Reimplemented in exprResultDelayed, exprResultStored, and exprResultStack.
Definition at line 486 of file exprResult.C.
References clear(), DebugInFunction, Foam::exit(), Foam::FatalError, FatalErrorInFunction, and Foam::nl.
Referenced by exprResult::exprResult(), exprResultStored::operator=(), exprResultDelayed::operator=(), exprResultStack::push(), and exprResultDelayed::setReadValue().
|
virtual |
Move assignment.
Reimplemented in exprResultDelayed.
Definition at line 530 of file exprResult.C.
References clear().
Foam::expressions::exprResult & operator*= | ( | const scalar & | b | ) |
Scalar multiplication.
Definition at line 673 of file exprResult.C.
References Foam::constant::physicoChemical::b, Foam::exit(), Foam::FatalError, FatalErrorInFunction, and Foam::nl.
Foam::expressions::exprResult & operator+= | ( | const exprResult & | b | ) |
Addition of results.
Definition at line 714 of file exprResult.C.
References Foam::constant::physicoChemical::b, Foam::exit(), Foam::FatalError, FatalErrorInFunction, and Foam::nl.
void setObjectResultImpl | ( | T * | ptr | ) |
Definition at line 381 of file exprResultI.H.
References DebugInFunction, and Foam::nl.
Definition at line 395 of file exprResultI.H.
References autoPtr< T >::ptr().
Definition at line 402 of file exprResultI.H.
|
inline |
Definition at line 669 of file exprResultI.H.
References clear(), DebugInFunction, Foam::exit(), Foam::FatalError, FatalErrorInFunction, Foam::New(), and Foam::nl.
|
inline |
Definition at line 711 of file exprResultI.H.
References DebugInFunction, Foam::exit(), Foam::FatalError, FatalErrorInFunction, and Foam::nl.
|
inline |
Definition at line 738 of file exprResultI.H.
|
inline |
Definition at line 746 of file exprResultI.H.
Definition at line 754 of file exprResultI.H.
References clear(), DebugInFunction, Foam::exit(), Foam::FatalError, FatalErrorInFunction, tmp< T >::New(), Foam::nl, and WarningInFunction.
|
friend |
Friendship with globals.
Definition at line 333 of file exprResult.H.
|
static |
An empty result.
Definition at line 330 of file exprResult.H.
Referenced by exprResultGlobals::get().