exprResultStack Class Reference

A stack of polymorphic fields. Can be used to build a list of results one at a time. More...

Inheritance diagram for exprResultStack:
Collaboration diagram for exprResultStack:

Public Member Functions

 TypeName ("exprResultStack")
 Runtime type information. More...
 
 exprResultStack ()
 Default construct. More...
 
 exprResultStack (const exprResultStack &rhs)
 Copy construct. More...
 
 exprResultStack (const dictionary &dict)
 Construct from a dictionary. More...
 
virtual autoPtr< exprResultclone () const
 Clone. More...
 
virtual ~exprResultStack ()=default
 Destructor. More...
 
exprResult pop ()
 Pop the last value as an expression result. More...
 
void push (const exprResult &result)
 Push an expression result value. More...
 
void operator= (const exprResultStack &rhs)
 Copy assignment. More...
 
void operator= (const exprResult &rhs)
 Copy assignment. More...
 
- Public Member Functions inherited from exprResult
 TypeName ("exprResult")
 Runtime type information. More...
 
 declareRunTimeSelectionTable (autoPtr, exprResult, dictionary,(const dictionary &dict),(dict))
 
 declareRunTimeSelectionTable (autoPtr, exprResult, empty,(),())
 
 exprResult ()
 Default construct. More...
 
 exprResult (const exprResult &expr)
 Copy construct. More...
 
 exprResult (exprResult &&expr)
 Move construct. More...
 
 exprResult (const dictionary &dict, const bool singleValueOnly=false, const bool valueReqd=false)
 Construct from a dictionary. More...
 
 exprResult (Istream &is)
 Construct from Istream as dictionary content. More...
 
template<class Type >
 exprResult (const Field< Type > &fld)
 Construct by copying a field. More...
 
template<class Type >
 exprResult (Field< Type > &&fld)
 Construct by moving a field. More...
 
template<class Type >
 exprResult (autoPtr< Type > &&obj)
 Construct for an IOobject. More...
 
template<class Type >
 exprResult (const dimensioned< Type > &dt)
 Construct from a dimensioned value. More...
 
 exprResult (const bool &val)
 Construct from single value of bool. More...
 
 exprResult (const scalar &val)
 Construct from single value of scalar. More...
 
 exprResult (const vector &val)
 Construct from single value of vector. More...
 
 exprResult (const tensor &val)
 Construct from single value of tensor. More...
 
 exprResult (const symmTensor &val)
 Construct from single value of symmTensor. More...
 
 exprResult (const sphericalTensor &val)
 Construct from single value of sphericalTensor. More...
 
virtual ~exprResult ()
 Destructor. More...
 
bool hasValue () const
 Has a value? More...
 
const wordvalueType () const noexcept
 Basic type for the field or single value. More...
 
bool isPointData (const bool wantPointData=true) const
 True if representing point data, or test for same value as wantPointData argument. 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...
 
template<class Type >
Type getValue () const
 Return a single value when isUniform() is true, or Zero when it is non-uniform or if the type mismatches, which means that it can generally be considered as failsafe. More...
 
template<class Type >
const Field< Type > * getField () const
 Return a read pointer to the field data if the type matches, nullptr otherwise. Can generally be considered as failsafe. More...
 
bool is_bool () const
 True if valueType is a bool. 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 () noexcept
 Change reset behaviour. More...
 
void allowReset () noexcept
 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 wantPointData=false)
 Set result field, taking ownership of the pointer. More...
 
template<class Type >
void setResult (const Field< Type > &, bool wantPointData=false)
 Set result field, taking copy of the field contents. More...
 
template<class Type >
void setResult (Field< Type > &&, bool wantPointData=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 >
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 > & constCast () const
 Return non-const reference to the field, casting away constness. More...
 
template<class Type >
tmp< Field< Type > > getResult (bool cacheCopy=false)
 Return tmp field of the contents, optionally keeping a copy in cache. More...
 
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 writeField (Ostream &os, const word &keyword="") const
 Write the field, optionally as an entry. More...
 
void writeValue (Ostream &os) const
 Write the single value, or the first value from field. More...
 
virtual void operator= (exprResult &&rhs)
 Move assignment. More...
 
exprResultoperator*= (const scalar &b)
 Scalar multiplication. More...
 
exprResultoperator+= (const exprResult &b)
 Addition of results. More...
 
template<class Type >
const Foam::Field< Type > * getField () const
 
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 > & constCast () const
 

Additional Inherited Members

- Static Public Member Functions inherited from exprResult
static autoPtr< exprResultNew (const dictionary &dict)
 Return a reference to the selected value driver. More...
 
static autoPtr< exprResultNew (Istream &is)
 Construct from Istream as dictionary content. More...
 
- Static Public Attributes inherited from exprResult
static const exprResult null
 An empty result. More...
 
- Protected Member Functions inherited from exprResult
virtual expressions::exprResulttarget ()
 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...
 

Detailed Description

A stack of polymorphic fields. Can be used to build a list of results one at a time.

Source files

Definition at line 51 of file exprResultStack.H.

Constructor & Destructor Documentation

◆ exprResultStack() [1/3]

Default construct.

Definition at line 56 of file exprResultStack.C.

References exprResult::needsReset().

Referenced by exprResultStack::clone().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ exprResultStack() [2/3]

exprResultStack ( const exprResultStack rhs)

Copy construct.

Definition at line 65 of file exprResultStack.C.

◆ exprResultStack() [3/3]

exprResultStack ( const dictionary dict)
explicit

Construct from a dictionary.

Definition at line 76 of file exprResultStack.C.

◆ ~exprResultStack()

virtual ~exprResultStack ( )
virtualdefault

Destructor.

Member Function Documentation

◆ TypeName()

TypeName ( "exprResultStack"  )

Runtime type information.

◆ clone()

virtual autoPtr<exprResult> clone ( ) const
inlinevirtual

Clone.

Reimplemented from exprResult.

Reimplemented in exprResultStoredStack.

Definition at line 102 of file exprResultStack.H.

References exprResultStack::exprResultStack().

Here is the call graph for this function:

◆ pop()

Pop the last value as an expression result.

Definition at line 89 of file exprResultStack.C.

References Foam::abort(), Foam::endl(), Foam::FatalError, FatalErrorInFunction, and Foam::nl.

Here is the call graph for this function:

◆ push()

void push ( const exprResult result)

Push an expression result value.

Definition at line 122 of file exprResultStack.C.

References Foam::abort(), DebugInFunction, Foam::FatalError, FatalErrorInFunction, Foam::nl, exprResult::operator=(), and exprResult::valueType().

Here is the call graph for this function:

◆ operator=() [1/2]

void operator= ( const exprResultStack rhs)

Copy assignment.

Definition at line 165 of file exprResultStack.C.

Referenced by exprResultStoredStack::operator=().

Here is the caller graph for this function:

◆ operator=() [2/2]

void operator= ( const exprResult rhs)
virtual

Copy assignment.

Reimplemented from exprResult.

Definition at line 179 of file exprResultStack.C.

References DebugInFunction, exprResult::getUniform(), and Foam::nl.

Here is the call graph for this function:

The documentation for this class was generated from the following files: