www.cemf.ir
boundaryList.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 __boundaryList_hpp__
21 #define __boundaryList_hpp__
22 
23 #include "domain.hpp"
24 #include "boundaryBase.hpp"
25 #include "ListPtr.hpp"
26 #include "timeInfo.hpp"
27 #include "boundariesMask.hpp"
28 
29 
30 namespace pFlow
31 {
32 
33 class pointStructure;
34 
36 :
37  public ListPtr<boundaryBase>
38 {
39 private:
40 
43 
45 
47 
49 
51 
53 
55 
57 
59 
60  bool listSet_ = false;
61 
62  void setExtendedDomain();
63 
64  bool resetLists();
65 
68  bool updateNeighborLists();
69 
70 public:
71 
73  TypeInfo("boundaryList");
74 
75 
78 
79 
80  virtual ~boundaryList() = default;
81 
84  bool updateNeighborLists(uint32 iter, bool force = false);
85 
86  bool createBoundaries();
87 
88  inline
89  const pointStructure& pStruct()const
90  {
91  return pStruct_;
92  }
93 
94  inline
95  auto& boundary(size_t i)
96  {
98  }
99 
100  inline
101  const auto& boundary(size_t i)const
102  {
104  }
105 
106  inline
107  bool boundariesUpdated()const
108  {
109  return boundaryUpdate_;
110  }
111 
112  inline
113  const auto& extendedDomain()const
114  {
115  return extendedDomain_;
116  }
117 
118  inline
119  const auto& extendedDomainBox()const
120  {
121  return extendedDomain_.domainBox();
122  }
123 
124  box internalDomainBox()const;
125 
126  bool beforeIteration(const timeInfo& tf, bool force = false);
127 
128  bool iterate(const timeInfo& tf, bool force = false);
129 
130  bool afterIteration(const timeInfo& tf, bool force = false);
131 
132 };
133 
134 } // pFlow
135 
136 
137 
138 
139 #endif //__boundaryList_hpp__
140 
141 
pFlow::boundaryList::internalDomainBox
box internalDomainBox() const
Definition: boundaryList.cpp:165
pFlow::ListPtr
Definition: ListPtr.hpp:37
ListPtr.hpp
domain.hpp
timeInfo.hpp
pFlow::boundaryList::pStruct_
pointStructure & pStruct_
Definition: boundaryList.hpp:42
pFlow::boundaryList::extendedDomain
const auto & extendedDomain() const
Definition: boundaryList.hpp:113
pFlow::domain::domainBox
const INLINE_FUNCTION_HD auto & domainBox() const
Definition: domain.hpp:86
boundaryBase.hpp
pFlow::boundaryList::pStruct
const pointStructure & pStruct() const
Definition: boundaryList.hpp:89
pFlow::boundaryList::neighborListUpdate_
bool neighborListUpdate_
Definition: boundaryList.hpp:50
pFlow::boundaryList::iterate
bool iterate(const timeInfo &tf, bool force=false)
Definition: boundaryList.cpp:237
pFlow::uint32
unsigned int uint32
Definition: builtinTypes.hpp:56
pFlow::boundaryList
Definition: boundaryList.hpp:35
pFlow::boundaryList::beforeIteration
bool beforeIteration(const timeInfo &tf, bool force=false)
Definition: boundaryList.cpp:186
pFlow::boundaryList::extendedDomain_
domain extendedDomain_
Definition: boundaryList.hpp:56
pFlow::timeInfo
Definition: timeInfo.hpp:28
pFlow
Definition: demGeometry.hpp:27
pFlow::boundaryList::lastNeighborUpdated_
uint32 lastNeighborUpdated_
Definition: boundaryList.hpp:48
pFlow::boundaryList::boundaryList
boundaryList(pointStructure &pStruct)
Definition: boundaryList.cpp:91
pFlow::boundaryList::boundary
const auto & boundary(size_t i) const
Definition: boundaryList.hpp:101
pFlow::boundaryList::afterIteration
bool afterIteration(const timeInfo &tf, bool force=false)
Definition: boundaryList.cpp:252
pFlow::pointStructure
Definition: pointStructure.hpp:34
pFlow::boundaryList::boundary
auto & boundary(size_t i)
Definition: boundaryList.hpp:95
pFlow::boundaryList::createBoundaries
bool createBoundaries()
Definition: boundaryList.cpp:141
pFlow::boundaryList::extendedDomainBox
const auto & extendedDomainBox() const
Definition: boundaryList.hpp:119
pFlow::boundaryList::iterBeforeBoundaryUpdate_
bool iterBeforeBoundaryUpdate_
Definition: boundaryList.hpp:54
pFlow::boundaryList::boundariesUpdated
bool boundariesUpdated() const
Definition: boundaryList.hpp:107
pFlow::boundaryList::TypeInfo
TypeInfo("boundaryList")
type info
pFlow::boundaryList::setExtendedDomain
void setExtendedDomain()
Definition: boundaryList.cpp:25
pFlow::boundaryList::listSet_
bool listSet_
Definition: boundaryList.hpp:60
pFlow::boundaryList::internalDomainBox_
box internalDomainBox_
Definition: boundaryList.hpp:58
pFlow::boundaryList::updateNeighborLists
bool updateNeighborLists()
update neighbor list of boundaries regardless of the time intervals
Definition: boundaryList.cpp:54
pFlow::box
Definition: box.hpp:32
boundariesMask.hpp
pFlow::boundaryList::boundaryUpdate_
bool boundaryUpdate_
Definition: boundaryList.hpp:52
pFlow::boundaryList::updateInterval_
uint32 updateInterval_
Definition: boundaryList.hpp:46
pFlow::boundaryList::neighborListUpdateInterval_
uint32 neighborListUpdateInterval_
Definition: boundaryList.hpp:44
pFlow::ListPtr::operator[]
T & operator[](size_t i)
Definition: ListPtrI.hpp:230
pFlow::boundaryList::~boundaryList
virtual ~boundaryList()=default
pFlow::domain
Definition: domain.hpp:31
pFlow::boundaryList::resetLists
bool resetLists()
Definition: boundaryList.cpp:46