www.cemf.ir
insertion.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 #ifndef __insertion_hpp__
21 #define __insertion_hpp__
22 
23 #include "fileDictionary.hpp"
24 
25 namespace pFlow
26 {
27 
28 // forward
29 class particles;
30 class pointStructure;
31 
35 class insertion
36 :
37  public fileDictionary
38 {
39 private:
40 
42  Logical active_ = "No";
43 
46 
50 
51  word diameterName_ = "diameter";
52 
53  word velocityName_ = "velocity";
54 
57 
58  bool readFromFile_ = false;
59 
61  bool readInsertionDict();
62 
63 protected:
64 
66  virtual bool writeInsertionDict(dictionary& dict)const;
67 
68 public:
69 
71  TypeInfo("insertion");
72 
74  explicit insertion(particles& prtcl);
75 
77  ~insertion() override = default;
78 
80  inline bool isActive() const
81  {
82  return readFromFile_ && active_();
83  }
84 
85  inline bool checkForCollision() const
86  {
87  return checkForCollision_();
88  }
89 
90  inline particles& Particles()
91  {
92  return particles_;
93  }
94 
95  inline const particles& Particles() const
96  {
97  return particles_;
98  }
99 
100  const pointStructure& pStruct()const;
101 
102  inline bool readFromFile() const
103  {
104  return readFromFile_;
105  }
106 
107  const word& diameterName()const
108  {
109  return diameterName_;
110  }
111 
112  const word& velocityName()const
113  {
114  return velocityName_;
115  }
116 
118  //bool read(iIstream& is, const IOPattern& iop) override;
119 
120  /*/// read from iIstream
121  virtual bool read(iIstream& is) = 0;*/
122 
123  using fileDictionary::write;
124 
126  bool write(iOstream& os, const IOPattern& iop)const override ;
127 };
128 
129 }
130 
131 #endif
pFlow::insertion::pStruct
const pointStructure & pStruct() const
Definition: insertion.cpp:72
pFlow::insertion::readFromFile
bool readFromFile() const
Definition: insertion.hpp:102
pFlow::insertion::velocityName_
word velocityName_
Definition: insertion.hpp:53
pFlow::insertion::increaseVelocity_
Logical increaseVelocity_
if increase velocity in case particles are failed to be inserted due to collision
Definition: insertion.hpp:49
pFlow::word
std::string word
Definition: builtinTypes.hpp:64
pFlow::insertion::isActive
bool isActive() const
is Insertion active
Definition: insertion.hpp:80
pFlow::insertion::Particles
particles & Particles()
Definition: insertion.hpp:90
pFlow::insertion::particles_
particles & particles_
Ref to particles.
Definition: insertion.hpp:56
pFlow::insertion::Particles
const particles & Particles() const
Definition: insertion.hpp:95
pFlow::insertion::checkForCollision
bool checkForCollision() const
Definition: insertion.hpp:85
pFlow
Definition: demGeometry.hpp:27
pFlow::insertion::checkForCollision_
Logical checkForCollision_
Check for collision? It is not active now.
Definition: insertion.hpp:45
pFlow::pointStructure
Definition: pointStructure.hpp:34
pFlow::particles
Definition: particles.hpp:33
pFlow::insertion::readFromFile_
bool readFromFile_
Definition: insertion.hpp:58
pFlow::dictionary::dict
virtual dictionary & dict()
ref to this dictionary, if it is a dictionary
Definition: dictionary.cpp:369
pFlow::insertion::insertion
insertion(particles &prtcl)
Construct from component.
Definition: insertion.cpp:27
pFlow::insertion::writeInsertionDict
virtual bool writeInsertionDict(dictionary &dict) const
Write to dictionary.
Definition: insertion.cpp:99
pFlow::insertion::diameterName_
word diameterName_
Definition: insertion.hpp:51
pFlow::IOPattern
Definition: IOPattern.hpp:32
pFlow::insertion::active_
Logical active_
Is insertion active.
Definition: insertion.hpp:42
pFlow::insertion::diameterName
const word & diameterName() const
Definition: insertion.hpp:107
pFlow::Logical
Holds a bool value and converts strings to bool.
Definition: Logical.hpp:39
fileDictionary.hpp
pFlow::fileDictionary
Definition: fileDictionary.hpp:29
pFlow::fileDictionary::write
bool write(iOstream &os, const IOPattern &iop) const override
write to stream
Definition: fileDictionary.cpp:75
pFlow::insertion::velocityName
const word & velocityName() const
Definition: insertion.hpp:112
pFlow::insertion::~insertion
~insertion() override=default
Destructor.
pFlow::insertion::TypeInfo
TypeInfo("insertion")
Type info.
pFlow::iOstream
Interface class for any output stream.
Definition: iOstream.hpp:59
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::insertion
Base class for particle insertion.
Definition: insertion.hpp:35
pFlow::insertion::write
bool write(iOstream &os, const IOPattern &iop) const override
write to iOstream
Definition: insertion.cpp:120
pFlow::insertion::readInsertionDict
bool readInsertionDict()
Read from dictionary.
Definition: insertion.cpp:78