47 IStringStream(
"(absolute specific)")()
62 selectedCells.
insert(cellI);
69 WarningIn(
"explicitSource::setSelectedCellsFromPoints()")
70 <<
"Unable to find owner cell for point " <<
points_[i]
87 forAll(volumeModeTypeNames_, i)
89 if (vmtName == volumeModeTypeNames_[i])
97 "explicitSource<Type>::volumeModeType"
98 "explicitSource<Type>::wordToVolumeModeType(const word&)"
99 ) <<
"Unknown volumeMode type " << vmtName
100 <<
". Valid volumeMode types are:" <<
nl << volumeModeTypeNames_
112 if (vmtType > volumeModeTypeNames_.size())
118 return volumeModeTypeNames_[vmtType];
125 scalarFields_.clear();
126 vectorFields_.clear();
133 const word& fieldName = dict.
toc()[i];
152 "explicitSource::setFieldData"
153 ) <<
"header not OK " << io.
name()
158 addField(scalarFields_, fieldTypes,
fieldNames, dict);
159 addField(vectorFields_, fieldTypes,
fieldNames, dict);
173 scalarFields_(0, *
this),
174 vectorFields_(0, *
this),
175 dict_(dict.
subDict(typeName +
"Coeffs")),
176 volumeMode_(wordToVolumeModeType(dict_.lookup(
"volumeMode"))),
178 volSource_(this->
cells().size(), 1.0)
180 setFieldData(dict_.subDict(
"fieldData"));
183 if (this->selectionMode() == smPoints)
185 dict_.lookup(
"points") >> points_;
186 setSelectedCellsFromPoints();
187 volSource_.setSize(points_.size(), 1.0);
192 if (volumeMode_ == vmAbsolute)
196 volSource_[cellI] = mesh.
V()[cellList[cellI]];
197 V += volSource_[cellI];
204 V += mesh.
V()[cellList[cellI]];
211 <<
" cell(s) with Volume: " << V <<
" in time activated sources "
219 scalar data = scalarFields_[Eqn.
psi().
name()];
220 addSources<scalar>(source, data);
228 addSources<vector>(source, data);
234 scalar data = scalarFields_[field.
name()];
235 addSources<scalar>(field, data);
242 addSources<vector>(field, data);
248 scalarFields_.applySources();
249 vectorFields_.applySources();