Go to the documentation of this file.
34 if (getTypeName<T>() != tpEntry.
firstPart())
48 if (!(setOneEntry<real>(stField, varList) ||
49 setOneEntry<realx3>(stField, varList) ||
50 setOneEntry<realx4>(stField, varList) ||
51 setOneEntry<int8>(stField, varList) ||
52 setOneEntry<uint8>(stField, varList) ||
53 setOneEntry<uint32>(stField, varList) ||
54 setOneEntry<uint64>(stField, varList) ||
55 setOneEntry<int32>(stField, varList) ||
56 setOneEntry<int64>(stField, varList)))
76 dict.subDict(
"mixture"),
82 if (
dict.containsDictionay(
"setFields"))
85 makeUnique<dictionary>(
"setFields",
dict,
dict.subDict(
"setFields"));
105 if(!dict.
add(
"rate", rate_))
108 if(!tControl_.write(dict))
111 if (!dict.
add(
"regionType", type_))
116 if (!pRegion_().write(prDict))
123 if (!mixture_().write(mixDict))
129 if(!dict.
addDict(
"setFields", setFieldDict_()))
139 wordList Keys = setFieldDict_().dataEntryKeywords();
141 for (
const auto& key : Keys)
143 if (!
readOneEtrty(setFieldDict_().dataEntryRef(key), setFieldList_))
157 dict_(instn.subDict(name)),
159 tControl_(dict_,
"insertion")
176 if (!tControl_.isInRange(iter, t, dt))
179 if (tControl_.isTimeStep())
181 return static_cast<uint32>(
182 (iter - tControl_.startIter() + tControl_.iInterval()) * dt * rate_ -
188 return static_cast<uint32>(
189 (t - tControl_.startTime() + tControl_.rInterval()) * rate_ -
uint32 numInserted_
number of inserted particles
const pointStructure & pStruct() const
word type_
type of insertion region
#define fatalExit
Fatal exit.
uint32 numberToBeInserted(uint32 iter, real t, real dt)
insertionRegion(const word &name, const insertion &instn)
Construct from a dictionary.
const pointStructure & pStruct() const
wordList shapeNameList() const
dictionary & subDictOrCreate(const word &keyword)
search for a sub-dict with keyword create a new sub-dict if not found and return a ref to it fatalExi...
bool add(const word &keyword, const float &v)
add a float dataEntry
iOstream & endl(iOstream &os)
Add newline and flush stream.
uniquePtr< shapeMixture > mixture_
mixture of shapes
uniquePtr< dictionary > setFieldDict_
dictionary for set field
Data entry to be used in dictionries.
#define fatalErrorInFunction
Report a fatal error and function name and exit the application.
const insertion & insertion_
ref to insertion
virtual const shape & getShapes() const =0
const dictionary & dict_
insertion region dictionary
static uniquePtr< peakableRegion > create(const word &type, const dictionary &dict)
const word & keyword() const
bool writeInsertionRegion(dictionary &dict) const
write to dictionary
const auto & dict() const
bool readOneEtrty(const dataEntry &entry, anyList &varList)
uniquePtr< peakableRegion > pRegion_
peakable region of points
const word & firstPart() const
bool addDict(const word &keyword, const dictionary &dict)
add a dictionary with the specifiedd keyword, if it exists, replace it.
This class manages all the insertion regions for particles insertion in the simulation.
real rate_
rate of insertion
bool readInsertionRegion(const dictionary &dict)
read from dictionary
reference emplaceBack(const word &name, Args &&... args)
Create variable using constructor in-place.
Dictionary holds a set of data entries or sub-dictionaries that are enclosed in a curely braces or ar...
bool setOneEntry(const twoPartEntry &tpEntry, anyList &varList)
Base class for particle insertion.