www.cemf.ir
insertionRegion.hpp
Go to the documentation of this file.
1 /*------------------------------- phasicFlow ---------------------------------
2  O C enter of
3  O O E ngineering and
4  O O M ultiscale modeling of
5  OOOOOOO F luid flow
6 ------------------------------------------------------------------------------
7  Copyright (C): www.cemf.ir
8  email: hamid.r.norouzi AT gmail.com
9 ------------------------------------------------------------------------------
10 Licence:
11  This file is part of phasicFlow code. It is a free software for simulating
12  granular and multiphase flows. You can redistribute it and/or modify it under
13  the terms of GNU General Public License v3 or any other later versions.
14 
15  phasicFlow is distributed to help others in their research in the field of
16  granular and multiphase flows, but WITHOUT ANY WARRANTY; without even the
17  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 
19 -----------------------------------------------------------------------------*/
20 
21 #ifndef __insertionRegion_hpp__
22 #define __insertionRegion_hpp__
23 
24 #include "anyList.hpp"
25 #include "baseTimeControl.hpp"
26 #include "peakableRegion.hpp"
27 #include "shapeMixture.hpp"
28 
29 namespace pFlow
30 {
31 
32 class dictionary;
33 class insertion;
34 class pointStructure;
35 
87 {
88 private:
89 
91  const word name_;
92 
94  const dictionary& dict_;
95 
98 
101 
104 
107 
110 
113 
116 
119 
122 
123 private:
124 
125  // - private methods
126 
128  bool readInsertionRegion(const dictionary& dict);
129 
131  bool writeInsertionRegion(dictionary& dict) const;
132 
133  bool readSetFieldDict();
134 
135 public:
136 
138  TypeInfoNV("insertionRegion");
139 
140  // - Constructors
141 
143  insertionRegion(const word& name, const insertion& instn);
144 
146  ~insertionRegion() = default;
147 
148  // - Methods
149 
151  const auto& name() const
152  {
153  return name_;
154  }
155 
157  const auto& type() const
158  {
159  return type_;
160  }
161 
162  const auto& dict()const
163  {
164  return dict_;
165  }
166 
167  const auto& Insertion() const
168  {
169  return insertion_;
170  }
171 
172  const pointStructure& pStruct()const;
173 
174  inline bool insertionTime(uint32 iter, real t, real dt) const
175  {
176  return tControl_.timeEvent(iter, t, dt);
177  }
178 
180 
181  inline uint32 addToNumInserted(uint32 newInserted)
182  {
183  return numInserted_ += newInserted;
184  }
185 
186  inline uint32 totalInserted() const
187  {
188  return numInserted_;
189  }
190 
191  auto& mixture()
192  {
193  return mixture_();
194  }
195 
196  auto& pRegion()
197  {
198  return pRegion_();
199  }
200 
201  const auto& setFieldList() const
202  {
203  return setFieldList_;
204  }
205  // - IO operation
206 
208  /*bool read(const dictionary& dict)
209  {
210  if (!timeFlowControl::read(dict))
211  return false;
212 
213  return readInsertionRegion(dict);
214  }*/
215 
217  bool write(dictionary& dict) const
218  {
219  return writeInsertionRegion(dict);
220  }
221 };
222 
223 } // pFlow
224 
225 #endif //__insertionRegion_hpp__
anyList.hpp
pFlow::insertionRegion::numInserted_
uint32 numInserted_
number of inserted particles
Definition: insertionRegion.hpp:106
pFlow::insertionRegion::TypeInfoNV
TypeInfoNV("insertionRegion")
Type info.
pFlow::insertionRegion::type_
word type_
type of insertion region
Definition: insertionRegion.hpp:109
pFlow::real
float real
Definition: builtinTypes.hpp:45
pFlow::insertionRegion::numberToBeInserted
uint32 numberToBeInserted(uint32 iter, real t, real dt)
Definition: insertionRegion.cpp:174
pFlow::insertionRegion::addToNumInserted
uint32 addToNumInserted(uint32 newInserted)
Definition: insertionRegion.hpp:181
pFlow::insertionRegion::Insertion
const auto & Insertion() const
Definition: insertionRegion.hpp:167
pFlow::insertionRegion::insertionRegion
insertionRegion(const word &name, const insertion &instn)
Construct from a dictionary.
Definition: insertionRegion.cpp:152
pFlow::insertionRegion::pRegion
auto & pRegion()
Definition: insertionRegion.hpp:196
pFlow::insertionRegion::pStruct
const pointStructure & pStruct() const
Definition: insertionRegion.cpp:168
pFlow::uint32
unsigned int uint32
Definition: builtinTypes.hpp:56
pFlow::baseTimeControl::timeEvent
bool timeEvent(uint32 iter, real t, real dt) const
Definition: baseTimeControl.cpp:78
pFlow::word
std::string word
Definition: builtinTypes.hpp:64
pFlow::insertionRegion::setFieldList
const auto & setFieldList() const
Definition: insertionRegion.hpp:201
pFlow::insertionRegion
This class defines all the necessary enteties for defining an insertion region.
Definition: insertionRegion.hpp:86
pFlow::insertionRegion::write
bool write(dictionary &dict) const
read from dictionary
Definition: insertionRegion.hpp:217
pFlow::insertionRegion::mixture_
uniquePtr< shapeMixture > mixture_
mixture of shapes
Definition: insertionRegion.hpp:115
pFlow
Definition: demGeometry.hpp:27
pFlow::insertionRegion::setFieldDict_
uniquePtr< dictionary > setFieldDict_
dictionary for set field
Definition: insertionRegion.hpp:118
pFlow::insertionRegion::tControl_
baseTimeControl tControl_
time control for insertion events
Definition: insertionRegion.hpp:100
shapeMixture.hpp
pFlow::pointStructure
Definition: pointStructure.hpp:34
pFlow::anyList
Definition: anyList.hpp:35
pFlow::insertionRegion::name
const auto & name() const
Const ref to name of the region.
Definition: insertionRegion.hpp:151
pFlow::insertionRegion::insertion_
const insertion & insertion_
ref to insertion
Definition: insertionRegion.hpp:97
pFlow::insertionRegion::setFieldList_
anyList setFieldList_
list of (filedName type value) for the fields
Definition: insertionRegion.hpp:121
pFlow::insertionRegion::totalInserted
uint32 totalInserted() const
Definition: insertionRegion.hpp:186
pFlow::baseTimeControl
Definition: baseTimeControl.hpp:29
pFlow::insertionRegion::dict_
const dictionary & dict_
insertion region dictionary
Definition: insertionRegion.hpp:94
peakableRegion.hpp
baseTimeControl.hpp
pFlow::insertionRegion::type
const auto & type() const
return type of insertion region
Definition: insertionRegion.hpp:157
pFlow::insertionRegion::writeInsertionRegion
bool writeInsertionRegion(dictionary &dict) const
write to dictionary
Definition: insertionRegion.cpp:102
pFlow::insertionRegion::mixture
auto & mixture()
Definition: insertionRegion.hpp:191
pFlow::uniquePtr
Definition: uniquePtr.hpp:42
pFlow::insertionRegion::dict
const auto & dict() const
Definition: insertionRegion.hpp:162
pFlow::insertionRegion::name_
const word name_
name of this region
Definition: insertionRegion.hpp:91
pFlow::insertionRegion::insertionTime
bool insertionTime(uint32 iter, real t, real dt) const
Definition: insertionRegion.hpp:174
pFlow::insertionRegion::pRegion_
uniquePtr< peakableRegion > pRegion_
peakable region of points
Definition: insertionRegion.hpp:112
pFlow::insertionRegion::readSetFieldDict
bool readSetFieldDict()
Definition: insertionRegion.cpp:137
pFlow::insertionRegion::rate_
real rate_
rate of insertion
Definition: insertionRegion.hpp:103
pFlow::insertionRegion::readInsertionRegion
bool readInsertionRegion(const dictionary &dict)
read from dictionary
Definition: insertionRegion.cpp:67
pFlow::dictionary
Dictionary holds a set of data entries or sub-dictionaries that are enclosed in a curely braces or ar...
Definition: dictionary.hpp:67
pFlow::insertionRegion::~insertionRegion
~insertionRegion()=default
Destructor.
pFlow::insertion
Base class for particle insertion.
Definition: insertion.hpp:35