36 IStringStream(
"(points cellSet cellZone all)")()
44 IStringStream(
"(absolute specific)")()
57 forAll(selectionModeTypeNames_, i)
59 if (smtName == selectionModeTypeNames_[i])
67 "TimeActivatedExplicitSource<Type>::selectionModeType"
68 "TimeActivatedExplicitSource<Type>::wordToSelectionModeType"
72 ) <<
"Unknown selectionMode type " << smtName
73 <<
". Valid selectionMode types are:" <<
nl << selectionModeTypeNames_
87 forAll(volumeModeTypeNames_, i)
89 if (vmtName == volumeModeTypeNames_[i])
97 "TimeActivatedExplicitSource<Type>::volumeModeType"
98 "TimeActivatedExplicitSource<Type>::wordToVolumeModeType(const word&)"
99 ) <<
"Unknown volumeMode type " << vmtName
100 <<
". Valid volumeMode types are:" <<
nl << volumeModeTypeNames_
113 if (smtType > selectionModeTypeNames_.size())
119 return selectionModeTypeNames_[smtType];
130 if (vmtType > volumeModeTypeNames_.size())
136 return volumeModeTypeNames_[vmtType];
147 switch (selectionMode_)
151 dict.
lookup(
"points") >> points_;
156 dict.
lookup(
"cellSet") >> cellSetName_;
161 dict.
lookup(
"cellZone") >> cellSetName_;
172 "TimeActivatedExplicitSource::setSelection(const dictionary&)"
173 ) <<
"Unknown selectionMode "
174 << selectionModeTypeNames_[selectionMode_]
175 <<
". Valid selectionMode types are" << selectionModeTypeNames_
189 dict.
lookup(
"fieldData") >> fieldData_;
190 labelList localFieldIds(fieldData_.size(), -1);
195 const word& fdName = fieldData_[j].first();
196 if (fdName == fieldNames[i])
199 localFieldIds[j] = i;
206 if (localFieldIds[i] < 0)
210 "TimeActivatedExplicitSource<Type>::setFieldData"
212 "const dictionary&, "
215 ) <<
"Field " << fieldData_[i].first() <<
" not found in "
216 <<
"field list. Available fields are: " <<
nl << fieldNames
227 switch (selectionMode_)
237 label cellI = mesh_.findCell(points_[i]);
240 selectedCells.
insert(cellI);
246 WarningIn(
"TimeActivatedExplicitSource<Type>::setCellIds()")
247 <<
"Unable to find owner cell for point " << points_[i]
252 cells_ = selectedCells.
toc();
258 Info<<
indent <<
"- selecting cells using cellSet "
259 << cellSetName_ <<
endl;
261 cellSet selectedCells(mesh_, cellSetName_);
262 cells_ = selectedCells.
toc();
268 Info<<
indent <<
"- selecting cells using cellZone "
269 << cellSetName_ <<
endl;
270 label zoneID = mesh_.cellZones().findZoneID(cellSetName_);
273 FatalErrorIn(
"TimeActivatedExplicitSource<Type>::setCellIds()")
274 <<
"Cannot find cellZone " << cellSetName_ << endl
275 <<
"Valid cellZones are " << mesh_.cellZones().names()
278 cells_ = mesh_.cellZones()[zoneID];
291 FatalErrorIn(
"TimeActivatedExplicitSource<Type>::setCellIds()")
292 <<
"Unknown selectionMode "
293 << selectionModeTypeNames_[selectionMode_]
294 <<
". Valid selectionMode types are" << selectionModeTypeNames_
300 if (volumeMode_ == vmAbsolute)
305 V_ += mesh_.V()[cells_[i]];
332 volumeMode_(wordToVolumeModeType(dict.
lookup(
"volumeMode"))),
333 selectionMode_(wordToSelectionModeType(dict.
lookup(
"selectionMode"))),
335 cellSetName_(
"none"),
338 fieldIds_(fieldNames.
size(), -1)
342 if (fieldNames.
size() == 1)
344 fieldData_.setSize(1);
345 fieldData_[0].first() = fieldNames[0];
346 dict.
lookup(
"fieldData") >> fieldData_[0].second();
351 setFieldData(dict, fieldNames);
365 const label fid = fieldIds_[fieldI];
371 && (mesh_.time().value() >= timeStart_)
372 && (mesh_.time().value() <= timeEnd())
376 if (mesh_.changing())
383 Su[cells_[i]] = fieldData_[fid].second()/V_;