37 #define checkField(df1, df2, op) \ 38 if (&(df1).mesh() != &(df2).mesh()) \ 40 FatalErrorInFunction \ 41 << "different mesh for fields " \ 42 << (df1).name() << " and " << (df2).name() \ 43 << " during operatrion " << op \ 44 << abort(FatalError); \ 50 template<
class Type,
class GeoMesh>
64 if (field.
size() && field.
size() != GeoMesh::size(mesh))
67 <<
"size of field = " << field.
size()
68 <<
" is not the same as the size of mesh = " 69 << GeoMesh::size(mesh)
75 template<
class Type,
class GeoMesh>
81 const bool checkIOFlags
96 template<
class Type,
class GeoMesh>
102 const bool checkIOFlags
117 template<
class Type,
class GeoMesh>
126 dimensions_(df.dimensions_)
130 template<
class Type,
class GeoMesh>
140 dimensions_(df.dimensions_)
144 template<
class Type,
class GeoMesh>
153 dimensions_(move(df.dimensions_))
157 template<
class Type,
class GeoMesh>
170 dimensions_(tdf().dimensions_)
176 template<
class Type,
class GeoMesh>
186 dimensions_(df.dimensions_)
190 template<
class Type,
class GeoMesh>
201 dimensions_(df.dimensions_)
205 template<
class Type,
class GeoMesh>
215 dimensions_(df.dimensions_)
219 template<
class Type,
class GeoMesh>
230 dimensions_(df.dimensions_)
234 template<
class Type,
class GeoMesh>
248 dimensions_(tdf().dimensions_)
254 template<
class Type,
class GeoMesh>
265 template<
class Type,
class GeoMesh>
281 mesh.time().timeName(),
295 template<
class Type,
class GeoMesh>
311 mesh.time().timeName(),
325 template<
class Type,
class GeoMesh>
353 template<
class Type,
class GeoMesh>
383 template<
class Type,
class GeoMesh>
390 template<
class Type,
class GeoMesh>
394 <
typename DimensionedField<Type, GeoMesh>::cmptType,
GeoMesh>
417 template<
class Type,
class GeoMesh>
422 <
typename DimensionedField<Type, GeoMesh>::cmptType,
GeoMesh>& df
429 template<
class Type,
class GeoMesh>
436 <
typename DimensionedField<Type, GeoMesh>::cmptType,
GeoMesh>
445 template<
class Type,
class GeoMesh>
465 template<
class Type,
class GeoMesh>
470 this->
name() +
".average()",
479 template<
class Type,
class GeoMesh>
489 this->
name() +
".weightedAverage(weights)",
491 gSum(weightField*field())/
gSum(weightField)
497 template<
class Type,
class GeoMesh>
504 tweightField.clear();
511 template<
class Type,
class GeoMesh>
512 void DimensionedField<Type, GeoMesh>::operator=
521 <<
"attempted assignment to self" 532 template<
class Type,
class GeoMesh>
533 void DimensionedField<Type, GeoMesh>::operator=
542 <<
"attempted assignment to self" 553 template<
class Type,
class GeoMesh>
554 void DimensionedField<Type, GeoMesh>::operator=
565 <<
"attempted assignment to self" 577 template<
class Type,
class GeoMesh>
578 void DimensionedField<Type, GeoMesh>::operator=
588 template<
class Type,
class GeoMesh>
595 #define COMPUTED_ASSIGNMENT(TYPE, op) \ 597 template<class Type, class GeoMesh> \ 598 void DimensionedField<Type, GeoMesh>::operator op \ 600 const DimensionedField<TYPE, GeoMesh>& df \ 603 checkField(*this, df, #op); \ 605 dimensions_ op df.dimensions(); \ 606 Field<Type>::operator op(df); \ 609 template<class Type, class GeoMesh> \ 610 void DimensionedField<Type, GeoMesh>::operator op \ 612 const tmp<DimensionedField<TYPE, GeoMesh>>& tdf \ 615 operator op(tdf()); \ 619 template<class Type, class GeoMesh> \ 620 void DimensionedField<Type, GeoMesh>::operator op \ 622 const dimensioned<TYPE>& dt \ 625 dimensions_ op dt.dimensions(); \ 626 Field<Type>::operator op(dt.value()); \ 634 #undef COMPUTED_ASSIGNMENT const word & name() const
Return name.
#define checkField(df1, df2, op)
static tmp< DimensionedField< Type, GeoMesh > > New(const word &name, const Mesh &mesh, const dimensionSet &)
Return a temporary field constructed from name, mesh.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
tmp< DimensionedField< Type, GeoMesh > > clone() const
Clone.
void size(const label)
Override size to be inconsistent with allocated storage.
tmp< DimensionedField< Type, GeoMesh > > T() const
Return the field transpose (only defined for second rank tensors)
dimensioned< Type > weightedAverage(const DimensionedField< scalar, GeoMesh > &) const
Calculate and return weighted average.
Generic dimensioned Type class.
void replace(const direction, const UList< cmptType > &)
Replace a component field of the field.
const dimensionSet & dimensions() const
Return dimensions.
Dimension set for the base types.
void operator=(const DimensionedField< Type, GeoMesh > &)
Type gSum(const FieldField< Field, Type > &f)
Pre-declare SubField and related Field type.
void clear()
Clear the list, i.e. set size to zero.
A class for handling words, derived from string.
const fileName & local() const
const Type & value() const
Return const reference to value.
virtual ~DimensionedField()
Destructor.
Foam::pointMesh ::Mesh Mesh
Type of mesh on which this DimensionedField is instantiated.
errorManip< error > abort(error &err)
#define COMPUTED_ASSIGNMENT(TYPE, op)
void operator=(const Field< Type > &)
DimensionedField(const IOobject &, const Mesh &mesh, const dimensionSet &, const Field< Type > &)
Construct from components.
void replace(const direction, const DimensionedField< cmptType, GeoMesh > &)
Replace a component field of the field.
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
word name(const complex &)
Return a string representation of a complex.
dimensioned< Type > average() const
Calculate and return arithmetic average.
const fileName & instance() const
Type gAverage(const FieldField< Field, Type > &f)
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
const dimensionSet & dimensions() const
Return const reference to dimensions.
regIOobject is an abstract class derived from IOobject to handle automatic object registration with t...
A class representing the concept of 0 used to avoid unnecessary manipulations for objects that are kn...
tmp< DimensionedField< cmptType, GeoMesh > > component(const direction) const
Return a component field of the field.
Generic mesh wrapper used by volMesh, surfaceMesh, pointMesh etc.
A class for managing temporary objects.
const objectRegistry & db() const
Return the local objectRegistry.
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
void component(FieldField< Field, typename FieldField< Field, Type >::cmptType > &sf, const FieldField< Field, Type > &f, const direction d)