50 const word& fieldTypeDesc,
58 if (fieldTypeDesc != fieldType::typeName +
"Value")
63 word fieldName(fieldValueStream);
75 if (!fieldHeader.typeHeaderOk<fieldType>(
true))
87 if (fieldHeader.typeHeaderOk<fieldType>(
true))
89 Info<<
" Setting internal values of "
90 << fieldHeader.headerClassName()
91 <<
" " << fieldName <<
endl;
93 fieldType
field(fieldHeader,
mesh,
false);
97 if (selectedCells.size() ==
field.size())
99 field.primitiveFieldRef() = value;
103 forAll(selectedCells, celli)
105 field[selectedCells[celli]] = value;
110 Boundary& fieldBf =
field.boundaryFieldRef();
114 fieldBf[patchi] = fieldBf[patchi].patchInternalField();
120 <<
"Failed writing field " << fieldName <<
endl;
126 <<
"Field " << fieldName <<
" not found" <<
endl;
159 selectedCells_(selectedCells)
165 selectedCells_(std::move(selectedCells))
170 word fieldType(fieldValues);
175 setCellFieldType<scalar>
176 (fieldType, mesh_, selectedCells_, fieldValues)
177 || setCellFieldType<vector>
178 (fieldType, mesh_, selectedCells_, fieldValues)
179 || setCellFieldType<sphericalTensor>
180 (fieldType, mesh_, selectedCells_, fieldValues)
181 || setCellFieldType<symmTensor>
182 (fieldType, mesh_, selectedCells_, fieldValues)
183 || setCellFieldType<tensor>
184 (fieldType, mesh_, selectedCells_, fieldValues)
189 <<
"field type " << fieldType <<
" not currently supported"
200 bool setFaceFieldType
202 const word& fieldTypeDesc,
210 if (fieldTypeDesc != fieldType::typeName +
"Value")
215 word fieldName(fieldValueStream);
227 if (!fieldHeader.typeHeaderOk<fieldType>(
true))
239 if (fieldHeader.typeHeaderOk<fieldType>(
true))
241 Info<<
" Setting patchField values of "
242 << fieldHeader.headerClassName()
243 <<
" " << fieldName <<
endl;
256 field.boundaryField()[patchi].size(),
257 field.boundaryField()[patchi].patch().start()
259 ) =
field.boundaryField()[patchi];
263 bool hasWarned =
false;
271 label facei = selectedFaces[i];
278 <<
"Ignoring internal face " << facei
279 <<
". Suppressing further warnings." <<
endl;
285 allBoundaryValues[bFacei] = value;
294 Boundary& fieldBf =
field.boundaryFieldRef();
299 if (nChanged[patchi] > 0)
302 <<
field.boundaryField()[patchi].patch().name()
303 <<
" set " << nChanged[patchi] <<
" values" <<
endl;
307 fieldBf[patchi].size(),
308 fieldBf[patchi].
patch().start()
323 <<
"Field " << fieldName <<
" not found" <<
endl;
356 selectedFaces_(selectedFaces)
362 selectedFaces_(std::move(selectedFaces))
367 word fieldType(fieldValues);
372 setFaceFieldType<scalar>
373 (fieldType, mesh_, selectedFaces_, fieldValues)
374 || setFaceFieldType<vector>
375 (fieldType, mesh_, selectedFaces_, fieldValues)
376 || setFaceFieldType<sphericalTensor>
377 (fieldType, mesh_, selectedFaces_, fieldValues)
378 || setFaceFieldType<symmTensor>
379 (fieldType, mesh_, selectedFaces_, fieldValues)
380 || setFaceFieldType<tensor>
381 (fieldType, mesh_, selectedFaces_, fieldValues)
386 <<
"field type " << fieldType <<
" not currently supported"
399 int main(
int argc,
char *argv[])
403 "Set values on a selected set of cells/patch-faces via a dictionary"
420 if (setFieldsDict.found(
"defaultFieldValues"))
422 Info<<
"Setting field default values" <<
endl;
425 setFieldsDict.lookup(
"defaultFieldValues"),
432 Info<<
"Setting field region values" <<
endl;
438 const entry& region = regions[regionI];