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_(df->dimensions_)
157 #ifndef NoConstructFromTmp 158 template<
class Type,
class GeoMesh>
171 dimensions_(tdf().dimensions_)
178 template<
class Type,
class GeoMesh>
188 dimensions_(df.dimensions_)
192 template<
class Type,
class GeoMesh>
203 dimensions_(df.dimensions_)
207 template<
class Type,
class GeoMesh>
217 dimensions_(df.dimensions_)
221 template<
class Type,
class GeoMesh>
232 dimensions_(df.dimensions_)
236 template<
class Type,
class GeoMesh>
246 dimensions_(df->dimensions_)
250 #ifndef NoConstructFromTmp 251 template<
class Type,
class GeoMesh>
265 dimensions_(tdf().dimensions_)
272 template<
class Type,
class GeoMesh>
285 template<
class Type,
class GeoMesh>
292 template<
class Type,
class GeoMesh>
296 <
typename DimensionedField<Type, GeoMesh>::cmptType,
GeoMesh>
324 template<
class Type,
class GeoMesh>
329 <
typename DimensionedField<Type, GeoMesh>::cmptType,
GeoMesh>& df
336 template<
class Type,
class GeoMesh>
343 <
typename DimensionedField<Type, GeoMesh>::cmptType,
GeoMesh>
352 template<
class Type,
class GeoMesh>
377 template<
class Type,
class GeoMesh>
382 this->
name() +
".average()",
391 template<
class Type,
class GeoMesh>
401 this->
name() +
".weightedAverage(weights)",
403 gSum(weightField*field())/
gSum(weightField)
409 template<
class Type,
class GeoMesh>
416 tweightField.clear();
423 template<
class Type,
class GeoMesh>
424 void DimensionedField<Type, GeoMesh>::operator=
433 <<
"attempted assignment to self" 439 dimensions_ = df.dimensions();
444 template<
class Type,
class GeoMesh>
445 void DimensionedField<Type, GeoMesh>::operator=
456 <<
"attempted assignment to self" 468 template<
class Type,
class GeoMesh>
469 void DimensionedField<Type, GeoMesh>::operator=
479 #define COMPUTED_ASSIGNMENT(TYPE, op) \ 481 template<class Type, class GeoMesh> \ 482 void DimensionedField<Type, GeoMesh>::operator op \ 484 const DimensionedField<TYPE, GeoMesh>& df \ 487 checkField(*this, df, #op); \ 489 dimensions_ op df.dimensions(); \ 490 Field<Type>::operator op(df); \ 493 template<class Type, class GeoMesh> \ 494 void DimensionedField<Type, GeoMesh>::operator op \ 496 const tmp<DimensionedField<TYPE, GeoMesh>>& tdf \ 499 operator op(tdf()); \ 503 template<class Type, class GeoMesh> \ 504 void DimensionedField<Type, GeoMesh>::operator op \ 506 const dimensioned<TYPE>& dt \ 509 dimensions_ op dt.dimensions(); \ 510 Field<Type>::operator op(dt.value()); \ 518 #undef COMPUTED_ASSIGNMENT A simple container for copying or transferring objects of type <T>.
const word & name() const
Return name.
#define checkField(df1, df2, op)
#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.
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 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.
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...
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.
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)