www.cemf.ir
geometricRegion.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 __geometricRegion_hpp__
22 #define __geometricRegion_hpp__
23 
24 
25 #include "dictionary.hpp"
26 #include "uniformRandomReal.hpp"
27 #include "typeInfo.hpp"
28 
29 namespace pFlow
30 {
31 
32 template<typename GeomType>
34 {
35 public:
36 
37  using GeometryType = GeomType;
38 
39 private:
40 
41  GeomType geom_;
42 
44 
46 
48 
49  static constexpr uint32 maxTries_ = 100;
50 
51 public:
52 
53  // - type info
54  TypeInfoTemplateNV11("geometricRegion", GeomType);
55 
56  explicit geometricRegion(const dictionary& dict);
57 
58  ~geometricRegion() = default;
59 
61  bool isInside(const realx3& p) const;
62 
63  realx3 peek() const;
64 
65  const auto& minPoint()const
66  {
67  return minPoint_;
68  }
69 
70  const auto& maxPoint()const
71  {
72  return maxPoint_;
73  }
74 
76  bool read(const dictionary& dict);
77 
78  bool write(dictionary& dict) const;
79 };
80 
81 } // namespace pFlow
82 
83 #include "geometricRegion.cpp"
84 
85 #endif
pFlow::geometricRegion::maxTries_
static constexpr uint32 maxTries_
Definition: geometricRegion.hpp:49
pFlow::geometricRegion::geom_
GeomType geom_
Definition: geometricRegion.hpp:41
pFlow::geometricRegion::minPoint_
realx3 minPoint_
Definition: geometricRegion.hpp:43
pFlow::geometricRegion::~geometricRegion
~geometricRegion()=default
pFlow::uint32
unsigned int uint32
Definition: builtinTypes.hpp:56
pFlow::geometricRegion::maxPoint
const auto & maxPoint() const
Definition: geometricRegion.hpp:70
pFlow::geometricRegion::geometricRegion
geometricRegion(const dictionary &dict)
Definition: geometricRegion.cpp:22
pFlow::geometricRegion::minPoint
const auto & minPoint() const
Definition: geometricRegion.hpp:65
pFlow
Definition: demGeometry.hpp:27
pFlow::uniformRandomReal
Definition: uniformRandomReal.hpp:32
pFlow::geometricRegion::GeometryType
GeomType GeometryType
Definition: geometricRegion.hpp:37
dictionary.hpp
pFlow::geometricRegion::isInside
bool isInside(const realx3 &p) const
Definition: geometricRegion.cpp:32
uniformRandomReal.hpp
geometricRegion.cpp
pFlow::geometricRegion::read
bool read(const dictionary &dict)
Definition: geometricRegion.cpp:57
pFlow::geometricRegion::write
bool write(dictionary &dict) const
Definition: geometricRegion.cpp:64
pFlow::geometricRegion::maxPoint_
realx3 maxPoint_
Definition: geometricRegion.hpp:45
pFlow::geometricRegion
Definition: geometricRegion.hpp:33
typeInfo.hpp
pFlow::geometricRegion::random_
uniformRandomReal random_
Definition: geometricRegion.hpp:47
pFlow::geometricRegion::peek
realx3 peek() const
Definition: geometricRegion.cpp:39
pFlow::triple< real >
pFlow::geometricRegion::TypeInfoTemplateNV11
TypeInfoTemplateNV11("geometricRegion", GeomType)
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