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:
[legend]
Collaboration diagram for exprResultStack:
[legend]

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 uniform=false, const bool needsValue=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
 
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
 
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)
 
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 >
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
 
- Public Member Functions inherited from refCount
constexpr refCount () noexcept
 Default construct, 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...
 

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 55 of file exprResultStack.H.

Constructor & Destructor Documentation

◆ exprResultStack() [1/3]

Default construct.

Definition at line 63 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 72 of file exprResultStack.C.

◆ exprResultStack() [3/3]

exprResultStack ( const dictionary dict)
explicit

Construct from a dictionary.

Definition at line 83 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 92 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 96 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 129 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 172 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 186 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: