OpenLB 1.8.1
Loading...
Searching...
No Matches
superIndicatorF3D.h
Go to the documentation of this file.
1/* This file is part of the OpenLB library
2 *
3 * Copyright (C) 2016-2018 Benjamin Förster, Adrian Kummerlaender
4 * E-mail contact: info@openlb.net
5 * The most recent release of OpenLB can be downloaded at
6 * <http://www.openlb.net/>
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License
10 * as published by the Free Software Foundation; either version 2
11 * of the License, or (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public
19 * License along with this program; if not, write to the Free
20 * Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21 * Boston, MA 02110-1301, USA.
22*/
23
24#ifndef SUPER_INDICATOR_F_3D_H
25#define SUPER_INDICATOR_F_3D_H
26
27#include <list>
28
33
34namespace olb {
35
36
38template <typename T>
39class SuperIndicatorFfromIndicatorF3D : public SuperIndicatorF3D<T> {
40protected:
42public:
48 SuperGeometry<T,3>& geometry);
49
50 using SuperIndicatorF3D<T>::operator();
51 bool operator() (bool output[], const int input[]) override;
52};
53
54
56
59template <typename T, bool HLBM>
61protected:
63public:
69 SuperGeometry<T,3>& geometry);
70
71 using SuperIndicatorF3D<T>::operator();
72 bool operator() (bool output[], const int input[]) override;
73};
74
75
77
80template <typename T>
82public:
88 SuperIndicatorMaterial3D(SuperGeometry<T,3>& geometry, std::vector<int> materials);
94 SuperIndicatorMaterial3D(SuperGeometry<T,3>& geometry, std::list<int> materials);
95
96 using SuperIndicatorF3D<T>::operator();
97 bool operator() (bool output[], const int input[]) override;
98};
99
101template <typename T, typename DESCRIPTOR, typename FIELD>
103private:
104SuperLattice<T, DESCRIPTOR>& _superLattice;
105T _thresholdValue;
106std::string _condition;
107
108public:
109 SuperIndicatorFieldThreshold3D(SuperGeometry<T,3>& geometry, SuperLattice<T, DESCRIPTOR>& superLattice, std::vector<int> materials, T thresholdValue, std::string condition);
110
111 using SuperIndicatorF3D<T>::operator();
112 bool operator() (bool output[], const int input[]) override;
113};
114
116template <typename T>
118private:
120
121public:
123
124 using SuperIndicatorF3D<T>::operator();
125 bool operator() (bool output[], const int input[]) override;
126};
127
129
134template <typename T>
136protected:
138public:
140
141 using SuperIndicatorF3D<T>::operator();
142 bool operator() (bool output[], const int input[]) override;
143};
144
146template <typename T>
148protected:
151public:
154
155 using SuperIndicatorF3D<T>::operator();
156 bool operator() (bool output[], const int input[]) override;
157};
158
160template <typename T>
162protected:
165public:
168
169 using SuperIndicatorF3D<T>::operator();
170
171 bool operator() (bool output[], const int input[]) override;
172};
173
175
178template <typename T>
180protected:
183public:
185
186 using SuperIndicatorF3D<T>::operator();
187 bool operator() (bool output[], const int input[]) override;
188};
189} // namespace olb
190
191#endif
Smart pointer for managing the various ways of passing functors around.
Definition functorPtr.h:60
IndicatorF3D is an application from .
Definition aliases.h:244
Representation of a statistic for a parallel 2D geometry.
Indicator identifying neighbors of boundary cells.
Definition aliases.h:294
FunctorPtr< SuperIndicatorF3D< T > > _indicatorF
bool operator()(bool output[], const int input[]) override
SuperIndicatorBoundaryNeighbor3D(FunctorPtr< SuperIndicatorF3D< T > > &&indicatorF, int overlap)
Base indicator functor (discrete)
Definition aliases.h:194
FunctorPtr< IndicatorF3D< T > > _indicatorF
SuperIndicatorFfromIndicatorF3D(FunctorPtr< IndicatorF3D< T > > &&indicatorF, SuperGeometry< T, 3 > &geometry)
bool operator()(bool output[], const int input[]) override
SuperIndicatorF3D from SmoothIndicatorF3D.
FunctorPtr< SmoothIndicatorF3D< T, T, HLBM > > _indicatorF
bool operator()(bool output[], const int input[]) override
SuperIndicatorFfromSmoothIndicatorF3D(FunctorPtr< SmoothIndicatorF3D< T, T, HLBM > > &&indicatorF, SuperGeometry< T, 3 > &geometry)
threshold for external field
bool operator()(bool output[], const int input[]) override
SuperIndicatorFieldThreshold3D(SuperGeometry< T, 3 > &geometry, SuperLattice< T, DESCRIPTOR > &superLattice, std::vector< int > materials, T thresholdValue, std::string condition)
Indicator identity functor.
SuperIndicatorIdentity3D(FunctorPtr< SuperIndicatorF3D< T > > &&indicatorF)
bool operator()(bool output[], const int input[]) override
FunctorPtr< SuperIndicatorF3D< T > > _indicatorF
Indicator extended by a layer.
SuperIndicatorLayer3D(FunctorPtr< SuperIndicatorF3D< T > > &&indicatorF)
bool operator()(bool output[], const int input[]) override
Indicator functor from material numbers.
Definition aliases.h:284
bool operator()(bool output[], const int input[]) override
SuperIndicatorMaterial3D(SuperGeometry< T, 3 > &geometry, std::vector< int > materials)
Indicator intersection functor.
FunctorPtr< SuperIndicatorF3D< T > > _f
FunctorPtr< SuperIndicatorF3D< T > > _g
SuperIndicatorMultiplication3D(FunctorPtr< SuperIndicatorF3D< T > > &&f, FunctorPtr< SuperIndicatorF3D< T > > &&g)
bool operator()(bool output[], const int input[]) override
Indicator substraction functor.
FunctorPtr< SuperIndicatorF3D< T > > _g
bool operator()(bool output[], const int input[]) override
SuperIndicatorSubstraction3D(FunctorPtr< SuperIndicatorF3D< T > > &&f, FunctorPtr< SuperIndicatorF3D< T > > &&g)
FunctorPtr< SuperIndicatorF3D< T > > _f
Super class maintaining block lattices for a cuboid decomposition.
Top level namespace for all of OpenLB.
Representation of a parallel 2D geometry – header file.