www.cemf.ir
NBSLevel0.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 
22 #ifndef __NBSLevel0_hpp__
23 #define __NBSLevel0_hpp__
24 
25 #include "NBSLevel0Kernels.hpp"
26 #include "mapperNBS.hpp"
27 
28 namespace pFlow
29 {
30 
31 
32 class NBSLevel0
33 :
34  public mapperNBS
35 {
36 public:
37 
39 
41 
42  using HeadType = typename MapperType::HeadType;
43 
44  using NextType = typename MapperType::NextType;
45 
46 
47 private:
48 
50 
51  bool findPairs
52  (
53  csPairContainerType& pairs,
54  const deviceViewType1D<realx3>& pointPos,
55  const pFlagTypeDevice& flags,
56  const deviceViewType1D<real>& diameter
57  );
58 
59 public:
60 
61  TypeInfoNV("NBSLevel0");
62 
64  NBSLevel0() = default;
65 
66  NBSLevel0(
67  const box& domain,
68  real cellSize,
69  real sizeRatio,
70  const deviceViewType1D<realx3>& pointPos,
71  const pFlagTypeDevice& flags,
72  bool adjustableBox);
73 
75  NBSLevel0(const NBSLevel0&) = default;
76 
78  NBSLevel0& operator = (const NBSLevel0&) = default;
79 
81  ~NBSLevel0()=default;
82 
83 
84  bool broadSearch(
85  csPairContainerType& pairs,
86  const deviceViewType1D<realx3>& pointPos,
87  const pFlagTypeDevice& flags,
88  const deviceViewType1D<real>& diameter,
89  bool& searchBoxChanged);
90 
91 
92 
93 
94 };
95 
96 } // pFlow
97 
98 #endif // __NBSLevel0_hpp__
pFlow::mapperNBS::mapperNBS
INLINE_FUNCTION_HD mapperNBS()=default
pFlow::NBSLevel0::~NBSLevel0
INLINE_FUNCTION_HD ~NBSLevel0()=default
mapperNBS.hpp
pFlow::real
float real
Definition: builtinTypes.hpp:45
pFlow::NBSLevel0
Definition: NBSLevel0.hpp:32
pFlow::NBSLevel0::broadSearch
bool broadSearch(csPairContainerType &pairs, const deviceViewType1D< realx3 > &pointPos, const pFlagTypeDevice &flags, const deviceViewType1D< real > &diameter, bool &searchBoxChanged)
Definition: NBSLevel0.cpp:94
pFlow::mapperNBS::CellIterator
Definition: mapperNBS.hpp:45
pFlow::deviceViewType1D
Kokkos::View< T * > deviceViewType1D
1D array (vector) with default device (memory space and execution space)
Definition: KokkosTypes.hpp:121
pFlow::unsortedPairs
Definition: unsortedPairs.hpp:32
pFlow::mapperNBS
Definition: mapperNBS.hpp:34
pFlow
Definition: demGeometry.hpp:27
pFlow::NBSLevel0::TypeInfoNV
TypeInfoNV("NBSLevel0")
pFlow::NBSLevel0::operator=
INLINE_FUNCTION_HD NBSLevel0 & operator=(const NBSLevel0 &)=default
pFlow::NBSLevel0::findPairs
bool findPairs(csPairContainerType &pairs, const deviceViewType1D< realx3 > &pointPos, const pFlagTypeDevice &flags, const deviceViewType1D< real > &diameter)
Definition: NBSLevel0.cpp:25
pFlow::NBSLevel0::NBSLevel0
INLINE_FUNCTION_HD NBSLevel0()=default
pFlow::NBSLevel0::sizeRatio_
real sizeRatio_
Definition: NBSLevel0.hpp:49
NBSLevel0Kernels.hpp
pFlow::mapperNBS::HeadType
deviceViewType3D< uint32 > HeadType
Definition: mapperNBS.hpp:38
pFlow::box
Definition: box.hpp:32
pFlow::domain
Definition: domain.hpp:31
pFlow::mapperNBS::NextType
deviceViewType1D< uint32 > NextType
Definition: mapperNBS.hpp:40
pFlow::NBSLevel0::CellIterator
typename MapperType::CellIterator CellIterator
Definition: NBSLevel0.hpp:40
INLINE_FUNCTION_HD
#define INLINE_FUNCTION_HD
Definition: pFlowMacros.hpp:55
pFlow::pointFlag< DefaultExecutionSpace >