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
35
class
boundaryList
36
:
37
public
ListPtr
<boundaryBase>
38
{
39
private
:
40
42
pointStructure
&
pStruct_
;
43
44
uint32
neighborListUpdateInterval_
;
45
46
uint32
updateInterval_
;
47
48
uint32
lastNeighborUpdated_
= 0;
49
50
bool
neighborListUpdate_
;
51
52
bool
boundaryUpdate_
;
53
54
bool
iterBeforeBoundaryUpdate_
;
55
56
domain
extendedDomain_
;
57
58
box
internalDomainBox_
;
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
77
explicit
boundaryList
(
pointStructure
&
pStruct
);
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
{
97
return
ListPtr<boundaryBase>::operator[]
(i);
98
}
99
100
inline
101
const
auto
&
boundary
(
size_t
i)
const
102
{
103
return
ListPtr<boundaryBase>::operator[]
(i);
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
src
phasicFlow
structuredData
boundaries
boundaryList.hpp
Generated by
1.8.17