www.cemf.ir
processField.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 __processField_hpp__
22 #define __processField_hpp__
23 
24 
25 #include "virtualConstructor.hpp"
26 #include "dictionary.hpp"
27 #include "readFromTimeFolder.hpp"
28 #include "includeMask.hpp"
29 #include "pointRectCell.hpp"
30 
31 namespace pFlow
32 {
33 
34 
35 class repository;
36 
38 {
39 protected:
40 
42 
44 
46 
48 
50 
52 
54 
56 
58 
60 
61  bool static getFieldType(
62  const dictionary& dict,
64  word& fieldName,
65  word& fieldType);
66 
67 public:
68 
69  TypeInfo("processField");
70 
71  processField(const dictionary& dict, pointRectCell& pToCell, repository& rep);
72 
73  virtual ~processField() = default;
74 
77  dictionary,
78  (const dictionary& dict,
79  pointRectCell& pToCell,
80  repository& rep),
81  (dict, pToCell, rep) );
82 
83 
84  const auto& mesh()const
85  {
86  return pointToCell_.mesh();
87  }
88 
89  auto& mesh()
90  {
91  return pointToCell_.mesh();
92  }
93 
94  const auto& pointToCell()const
95  {
96  return pointToCell_;
97  }
98 
99  auto& pointToCell()
100  {
101  return pointToCell_;
102  }
103 
104  auto& dict()
105  {
106  return dict_;
107  }
108 
109  const auto& dict()const
110  {
111  return dict_;
112  }
113 
115  {
116  return timeFolder_.db();
117  }
118 
120  {
122  }
123 
124  const word& fieldType()const
125  {
126  return fieldType_;
127  }
128 
129  const word& fieldName()const
130  {
131  return fieldName_;
132  }
133 
134  bool isUniform()const
135  {
136  return fieldName_ == "uniformField";
137  }
138 
139  const word& operation()const
140  {
141  return operation_;
142  }
143 
144  auto& timeFolder()
145  {
146  return timeFolder_;
147  }
148 
149  const word& includeMaskType()const
150  {
151  return includeMaskType_;
152  }
153 
154  auto threshold()const
155  {
156  return threshold_;
157  }
158 
159  const word& processedFieldName()const
160  {
161  return processedFieldName_;
162  }
163 
164  // requires a class to read pointField from timefolder
165  virtual bool process() = 0;
166 
167  virtual bool writeToVTK(iOstream& is) const = 0;
168 
169  static
171  const dictionary& dict,
172  pointRectCell& pToCell,
173  repository& rep);
174 };
175 
176 
177 }
178 
179 
180 #endif //__processField_hpp__
pFlow::processField::fieldType_
word fieldType_
Definition: processField.hpp:51
pFlow::pointRectCell::mesh
auto & mesh()
Definition: pointRectCell.hpp:81
pFlow::processField::threshold_
int32 threshold_
Definition: processField.hpp:57
includeMask.hpp
pFlow::processField::writeToVTK
virtual bool writeToVTK(iOstream &is) const =0
pFlow::processField::operation_
word operation_
Definition: processField.hpp:53
pFlow::readFromTimeFolder
Definition: readFromTimeFolder.hpp:31
pFlow::processField::create
static uniquePtr< processField > create(const dictionary &dict, pointRectCell &pToCell, repository &rep)
Definition: processField.cpp:95
pFlow::processField::timeFolderRepository
auto & timeFolderRepository()
Definition: processField.hpp:114
pFlow::word
std::string word
Definition: builtinTypes.hpp:64
pFlow::processField::getFieldType
static bool getFieldType(const dictionary &dict, readFromTimeFolder &timeFolder, word &fieldName, word &fieldType)
Definition: processField.cpp:56
pFlow::processField::dict_
dictionary dict_
Definition: processField.hpp:41
readFromTimeFolder.hpp
pFlow::processField::isUniform
bool isUniform() const
Definition: processField.hpp:134
pFlow::processField::processedFieldName
const word & processedFieldName() const
Definition: processField.hpp:159
pFlow::readFromTimeFolder::db
auto & db()
Definition: readFromTimeFolder.hpp:52
pFlow::processField::fieldName_
word fieldName_
Definition: processField.hpp:49
pFlow::processField::operation
const word & operation() const
Definition: processField.hpp:139
pFlow::processField::includeMask_
uniquePtr< includeMask > includeMask_
Definition: processField.hpp:59
pointRectCell.hpp
pFlow::processField::~processField
virtual ~processField()=default
pFlow::processField::process
virtual bool process()=0
pFlow::pointRectCell::processedRepository
auto & processedRepository()
Definition: pointRectCell.hpp:91
pFlow
Definition: demGeometry.hpp:27
pFlow::int32
int int32
Definition: builtinTypes.hpp:50
pFlow::pointRectCell
Definition: pointRectCell.hpp:32
dictionary.hpp
virtualConstructor.hpp
pFlow::processField::processField
processField(const dictionary &dict, pointRectCell &pToCell, repository &rep)
Definition: processField.cpp:27
pFlow::processField
Definition: processField.hpp:37
pFlow::processField::processedRepository
auto & processedRepository()
Definition: processField.hpp:119
pFlow::processField::fieldType
const word & fieldType() const
Definition: processField.hpp:124
pFlow::processField::includeMaskType
const word & includeMaskType() const
Definition: processField.hpp:149
pFlow::processField::dict
const auto & dict() const
Definition: processField.hpp:109
pFlow::processField::processedFieldName_
word processedFieldName_
Definition: processField.hpp:47
pFlow::processField::TypeInfo
TypeInfo("processField")
pFlow::processField::pointToCell_
pointRectCell & pointToCell_
Definition: processField.hpp:43
pFlow::uniquePtr
Definition: uniquePtr.hpp:42
pFlow::processField::threshold
auto threshold() const
Definition: processField.hpp:154
pFlow::processField::fieldName
const word & fieldName() const
Definition: processField.hpp:129
pFlow::processField::timeFolder
auto & timeFolder()
Definition: processField.hpp:144
pFlow::repository
Definition: repository.hpp:34
pFlow::processField::timeFolder_
readFromTimeFolder timeFolder_
Definition: processField.hpp:45
pFlow::processField::mesh
auto & mesh()
Definition: processField.hpp:89
pFlow::processField::create_vCtor
create_vCtor(processField, dictionary,(const dictionary &dict, pointRectCell &pToCell, repository &rep),(dict, pToCell, rep))
pFlow::processField::pointToCell
auto & pointToCell()
Definition: processField.hpp:99
pFlow::processField::mesh
const auto & mesh() const
Definition: processField.hpp:84
pFlow::processField::dict
auto & dict()
Definition: processField.hpp:104
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::processField::includeMaskType_
word includeMaskType_
Definition: processField.hpp:55
pFlow::processField::pointToCell
const auto & pointToCell() const
Definition: processField.hpp:94
pFlow::timeFolder
Definition: timeFolder.hpp:32