32 template<
class DimensionedFieldType>
36 const dictionary&
dict,
37 DimensionedFieldType& field
40 DimensionedFieldFunction<DimensionedFieldType>(
dict, field),
41 value_(
dict.
lookup<Type>(
"defaultValue", this->field_.dimensions())),
42 zonesDict_(
dict.subDict(
"zones"))
48 template<
class DimensionedFieldType>
53 DimensionedFieldType& field
56 DimensionedFieldFunction<DimensionedFieldType>(dff, field),
58 zonesDict_(dff.zonesDict_)
62 template<
class DimensionedFieldType>
66 DimensionedFieldType& field
69 return autoPtr<DimensionedFieldFunction<DimensionedFieldType>>
71 new Zonal<DimensionedFieldType>(*
this, field)
78 template<
class DimensionedFieldType>
81 DimensionedFieldType& field = this->field_;
83 const fvMesh&
mesh(field.mesh()());
85 field.primitiveFieldRef() = value_;
89 const dictionary& zoneDict = iter().dict();
91 autoPtr<zoneGenerator> zg
102 const zoneSet zs(zg->generate());
104 if (zs.valid<Zone>())
106 const labelList& selected = zs.zone<Zone>();
110 zoneDict.lookup<Type>(
"value", field.dimensions())
113 if (&selected == &labelList::null())
115 field.primitiveFieldRef() = value;
123 if (
patchi == field.mesh().index())
125 field[selected[i] - field.mesh().start()] = value;
134 template<
class DimensionedFieldType>
140 writeEntry(os,
"defaultValue", this->field_.dimensions(), value_);
#define forAll(list, i)
Loop across all elements in list.
#define forAllConstIter(Container, container, iter)
Iterate across all elements in the container object of type.
virtual autoPtr< DimensionedFieldFunction< DimensionedFieldType > > clone() const
Construct and return a clone for the specified field.
Zonal(const dictionary &dict, DimensionedFieldType &field)
Construct with dictionary to initialise given field.
virtual void evaluate()
Evaluate the function and set the field.
virtual void write(Ostream &os) const
Write data to dictionary stream.
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
const polyMesh & poly() const
Return reference to polyMesh.
label whichPatch(const label faceIndex) const
Return patch index for a given face label.
const polyBoundaryMesh & boundary() const
Return boundary mesh.
Foam::fvMesh mesh(Foam::IOobject(regionName, runTime.name(), runTime, Foam::IOobject::MUST_READ), false)
const unitSet & lookup(const word &unitName)
Lookup and return the named unit from the table.
List< label > labelList
A List of labels.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
void evaluate(GeometricField< Type, GeoMesh > &result, const Function1< Type > &func, const GeometricField< Type, GeoMesh > &x)
tmp< DimensionedField< TypeR, GeoMesh, Field > > New(const tmp< DimensionedField< TypeR, GeoMesh, Field >> &tdf1, const word &name, const dimensionSet &dimensions)
void writeEntry(Ostream &os, const word &key, const DimensionedFieldFunction< DimensionedFieldType > &f)