Go to the documentation of this file.
57 #ifndef expressions_exprResult_H
58 #define expressions_exprResult_H
115 singleValue(
const singleValue& val);
122 inline const T&
get()
const
125 <<
"Not implemented for type "
133 inline const T&
set(
const T& val)
136 <<
"Not implemented for type "
154 inline bool deleteChecked();
162 inline bool readChecked
165 const dictionary&
dict,
173 bool getUniformChecked
183 bool getUniformCheckedBool
198 bool setAverageValueCheckedBool(
const bool parRun =
Pstream::parRun());
203 bool duplicateFieldChecked(
const void* ptr);
208 bool writeSingleValueChecked(Ostream&
os)
const;
214 bool writeFieldChecked(
const word& keyword, Ostream&
os)
const;
219 bool writeEntryChecked(
const word& keyword, Ostream&
os)
const;
229 bool multiplyEqChecked(
const scalar&
b);
233 inline void setResultImpl(Field<Type>*,
bool wantPointData=
false);
236 inline void setResultImpl(
const Field<Type>&,
bool wantPointData=
false);
239 inline void setResultImpl(Field<Type>&&,
bool wantPointData=
false);
242 inline void setResultImpl(
const Type& val,
const label len);
245 inline void setSingleValueImpl(
const Type& val);
253 inline virtual expressions::exprResult&
target() {
return *
this; }
260 bool reset(
bool force=
false);
263 void needsReset(
bool val) { needsReset_ = val; }
284 const dictionary&
dict
314 const bool needsValue =
false
336 #undef exprResult_Construct
337 #define exprResult_Construct(Type) \
339 explicit exprResult(const Type& val) : exprResult() \
341 setSingleValue(val); \
351 #undef exprResult_Construct
385 inline
bool isPointData(const
bool wantPointData=true) const;
392 inline
bool isType() const;
404 inline label
size() const;
418 void noReset() noexcept { noReset_ =
true; }
421 void allowReset() noexcept { noReset_ =
false; }
482 template<
template<
class>
class BinaryOp,
class Type>
485 const BinaryOp<Type>& bop,
static autoPtr< T > New(Args &&... args)
Construct autoPtr of T with forwarding arguments.
SphericalTensor< scalar > sphericalTensor
SphericalTensor of scalars, i.e. SphericalTensor<scalar>.
void set(List< bool > &bools, const labelRange &range)
Set the specified range 'on' in a boolList.
void writeDict(Ostream &os, const bool subDict=true) const
Write entry as dictionary contents.
A class for handling words, derived from Foam::string.
label size() const
The field or object size.
Type getReduced(const BinaryOp< Type > &bop, const Type &initial=pTraits< Type >::zero)
Get a reduced result.
A class for managing temporary objects.
Reference counter for various OpenFOAM components.
bool isPointData(const bool wantPointData=true) const
void testIfSingleValue(const bool parRun=Pstream::parRun())
Test if field corresponds to a single-value and thus uniform.
TypeName("exprResult")
Runtime type information.
tmp< Field< Type > > getResult(bool cacheCopy=false)
auto key(const Type &t) -> typename std::enable_if< std::is_enum< Type >::value, typename std::underlying_type< Type >::type >::type
Istream & operator>>(Istream &, directionInfo &)
virtual void operator=(const exprResult &rhs)
Copy assignment.
bool reset(bool force=false)
Reset at new timestep according to type.
exprResult & operator+=(const exprResult &b)
Addition of results.
Ostream & operator<<(Ostream &, const boundaryPatch &p)
Write boundaryPatch as dictionary entries (without surrounding braces)
Field< Type > & constCast() const
Return non-const reference to the field, casting away constness.
A polymorphic field/result from evaluating an expression.
const word & valueType() const noexcept
Basic type for the field or single value.
const dimensionedScalar b
Wien displacement law constant: default SI units: [m.K].
Generic templated field type.
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
void writeField(Ostream &os, const word &keyword="") const
Write the field, optionally as an entry.
static autoPtr< exprResult > New(const dictionary &dict)
Return a reference to the selected value driver.
Field< Type > & ref()
Return non-const reference to the field.
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
void writeValue(Ostream &os) const
Write the single value, or the first value from field.
void setSingleValue(const Type &val)
Set single-value uniform result.
SymmTensor< scalar > symmTensor
SymmTensor of scalars, i.e. SymmTensor<scalar>.
A globally available registry of expression results. These are currently registered on Time (may chan...
void noReset() noexcept
Change reset behaviour.
gmvFile<< "tracers "<< particles.size()<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().x()<< ' ';}gmvFile<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().y()<< ' ';}gmvFile<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().z()<< ' ';}gmvFile<< nl;for(const word &name :lagrangianScalarNames){ IOField< scalar > fld(IOobject(name, runTime.timeName(), cloud::prefix, mesh, IOobject::MUST_READ, IOobject::NO_WRITE))
bool hasValue() const
Has a value?
void allowReset() noexcept
Change reset behaviour.
bool isUniform() const
True if single, uniform value.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
virtual void resetImpl()
Reset at new timestep according to the derived class type.
OBJstream os(runTime.globalPath()/outputName)
void needsReset(bool val)
Adjusts the internal needsReset value.
Generic dimensioned Type class.
friend class exprResultGlobals
Friendship with globals.
const Field< Type > & cref() const
Return const reference to the field.
bool isType() const
True if valueType corresponds to the given Type.
Vector< scalar > vector
A scalar version of the templated Vector.
exprResult getUniform(const label size, const bool noWarn, const bool parRun=Pstream::parRun()) const
Construct a uniform field from the current results.
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
declareRunTimeSelectionTable(autoPtr, exprResult, dictionary,(const dictionary &dict),(dict))
exprResult()
Default construct.
void clear()
Clear (zero) the result.
Macros to ease declaration of run-time selection tables.
static bool & parRun() noexcept
Test if this a parallel run.
virtual expressions::exprResult & target()
Simulate virtual templated methods.
A traits class, which is primarily used for primitives.
void writeEntry(const word &keyword, Ostream &os) const
Forwarding to Field::writeEntry.
virtual ~exprResult()
Destructor.
exprResult & operator*=(const scalar &b)
Scalar multiplication.
List< ReturnType > get(const UPtrList< T > &list, const AccessOp &aop)
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
#define exprResult_Construct(Type)
void setResult(Field< Type > *, bool wantPointData=false)
Set result field, taking ownership of the pointer.
virtual autoPtr< exprResult > clone() const
Clone.
#define WarningInFunction
Report a warning using Foam::Warning.
bool is_bool() const
True if valueType is a bool.
Tensor< scalar > tensor
Tensor of scalars, i.e. Tensor<scalar>.
Database for solution data, solver performance and other reduced data.
const void * dataAddress() const
The address of the field data content.