38#ifndef Foam_expressions_exprValueFieldTag_H
39#define Foam_expressions_exprValueFieldTag_H
135 void set(const Type* first, const Type* last)
141 value_.set<Type>(*first);
155 value_.
set<Type>(val);
225 return !(*
this ==
rhs);
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
An expressions::exprValue (polymorphic typed union) with an additional flag for tracking Field conten...
void set_value(const Type &val)
Set as uniform, with specified value.
void operator=(Foam::zero)
Assign from zero. Changes value but not type.
static exprValueFieldTag make_empty()
Make an empty field tag with the specified type (zero-value).
void set_nouniform()
Set as non-uniform with zero value, leave type unchanged.
exprValueFieldTag(const exprValueFieldTag &)=default
Copy construct.
static exprValueFieldTag returnReduce(const exprValueFieldTag &tag)
Perform a reduction on a copy and return the result.
bool empty() const noexcept
True if the uniformity is "empty".
void reduce()
Inplace parallel reduction, uses worldComm.
void print(Ostream &os) const
Print description to Ostream.
const expressions::exprValue & value() const noexcept
Representative (uniform) value for the field.
bool equal(const exprValueFieldTag &rhs) const
Test for equality of the values.
void set(const Type *first, const Type *last)
Set value and uniformity from range of data.
exprValueFieldTag & operator=(const exprValueFieldTag &)=default
Copy assignment.
void set_empty()
Set as empty with zero value, leave type unchanged.
int compare(const exprValueFieldTag &rhs) const
Compare (uniformity, type, value).
bool is_nonuniform() const noexcept
True if the uniformity is "non-uniform".
bool operator!=(const exprValueFieldTag &rhs) const
Compare (uniformity,value) for inequality.
void combine(const exprValueFieldTag &b)
Inplace combine - eg, for global uniformity.
exprValueFieldTag(const Type *first, const Type *last)
Construct from a range of values.
void set_zero()
Set type and zero value (does not affect uniformity).
bool operator<(const exprValueFieldTag &) const
Compare (uniformity,value).
exprValueFieldTag()=default
Default construct. Uniformity = empty, type = none.
void read(Istream &is)
Read uniformity label and the value as pair.
bool operator==(const exprValueFieldTag &) const
Compare (uniformity,value) for equality.
exprValueFieldTag(const Type &val)
Construct as uniform with the specified type/value.
bool is_uniform() const noexcept
True if the uniformity is "uniform".
A polymorphic typed union of simple primitive and VectorSpace types. It uses a 'fatter' representatio...
bool set(const Type &val)
Assign from type. Returns false and sets to 'none' for unsupported types.
A class representing the concept of 0 (zero) that can be used to avoid manipulating objects known to ...
OBJstream os(runTime.globalPath()/outputName)
@ UNIFORM
Container (non-empty) with identical values.
enum uniformity check_uniformity(InputIt first, InputIt last)
Algorithm to determine list/container uniformity.
A namespace for expression-related classes/traits etc.
bool equal(const T &a, const T &b)
Compare two values for equality.
Ostream & operator<<(Ostream &, const boundaryPatch &p)
Write boundaryPatch as dictionary entries (without surrounding braces).
Istream & operator>>(Istream &, directionInfo &)
void rhs(fvMatrix< typename Expr::value_type > &m, const Expr &expression)
Binary combine operator, e.g. for global reduction.