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 tmp< DimensionedField< Type, GeoMesh > > T() const
Return the field transpose (only defined for second rank tensors)
A simple container for copying or transferring objects of type <T>.
tmp< DimensionedField< cmptType, GeoMesh > > component(const direction) const
Return a component field of the field.
#define checkField(df1, df2, op)
dimensioned< Type > weightedAverage(const DimensionedField< scalar, GeoMesh > &) const
Calculate and return weighted average.
const dimensionSet & dimensions() const
Return const reference to dimensions.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
void size(const label)
Override size to be inconsistent with allocated storage.
const Type & value() const
Return const reference to value.
Generic dimensioned Type class.
void replace(const direction, const UList< cmptType > &)
Replace a component field of the field.
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.
virtual ~DimensionedField()
Destructor.
GeoMesh::Mesh Mesh
Type of mesh on which this DimensionedField is instantiated.
errorManip< error > abort(error &err)
#define COMPUTED_ASSIGNMENT(TYPE, op)
const dimensionSet & dimensions() const
Return dimensions.
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.
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...
regIOobject is an abstract class derived from IOobject to handle automatic object registration with t...
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...
tmp< DimensionedField< Type, GeoMesh > > clone() const
Clone.
void component(FieldField< Field, typename FieldField< Field, Type >::cmptType > &sf, const FieldField< Field, Type > &f, const direction d)
const word & name() const
Return name.
dimensioned< Type > average() const
Calculate and return arithmetic average.