OpenLB 1.7
Loading...
Searching...
No Matches
superPlaneIntegralFluxMass3D.h
Go to the documentation of this file.
1/* This file is part of the OpenLB library
2 *
3 * Copyright (C) 2017 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_PLANE_INTEGRAL_FLUX_MASS_3D_H
25#define SUPER_PLANE_INTEGRAL_FLUX_MASS_3D_H
26
28
29namespace olb {
30
31
33
42template<typename T>
44private:
46 FunctorPtr<SuperF3D<T>> _velocityF;
48 FunctorPtr<SuperF3D<T>> _densityF;
49
51 const T _conversationFactorMass;
53 const T _conversationFactorTime;
54
55public:
57
83 FunctorPtr<SuperF3D<T>>&& densityF,
84 SuperGeometry<T,3>& geometry,
85 T conversationFactorMass,
86 T conversationFactorTime,
87 const HyperplaneLattice3D<T>& hyperplaneLattice,
88 FunctorPtr<SuperIndicatorF3D<T>>&& integrationIndicator,
89 FunctorPtr<IndicatorF2D<T>>&& subplaneIndicator,
92
115 FunctorPtr<SuperF3D<T>>&& densityF,
116 SuperGeometry<T,3>& geometry,
117 T conversationFactorMass,
118 T conversationFactorTime,
119 const Hyperplane3D<T>& hyperplane,
120 FunctorPtr<SuperIndicatorF3D<T>>&& integrationIndicator,
121 FunctorPtr<IndicatorF2D<T>>&& subplaneIndicator,
124
146 FunctorPtr<SuperF3D<T>>&& densityF,
147 SuperGeometry<T,3>& geometry,
148 T conversationFactorMass,
149 T conversationFactorTime,
150 const Hyperplane3D<T>& hyperplane,
151 FunctorPtr<SuperIndicatorF3D<T>>&& integrationIndicator,
153
155
167 FunctorPtr<SuperF3D<T>>&& densityF,
168 SuperGeometry<T,3>& geometry,
169 T conversationFactorMass,
170 T conversationFactorTime,
171 const Vector<T,3>& origin,
172 const Vector<T,3>& u, const Vector<T,3>& v,
173 std::vector<int> materials,
176
187 FunctorPtr<SuperF3D<T>>&& densityF,
188 SuperGeometry<T,3>& geometry,
189 T conversationFactorMass,
190 T conversationFactorTime,
191 const Vector<T,3>& origin,
192 const Vector<T,3>& u, const Vector<T,3>& v,
194
196
206 FunctorPtr<SuperF3D<T>>&& densityF,
207 SuperGeometry<T,3>& geometry,
208 T conversationFactorMass,
209 T conversationFactorTime,
210 IndicatorCircle3D<T>& circle,
211 std::vector<int> materials,
214
224 FunctorPtr<SuperF3D<T>>&& densityF,
225 SuperGeometry<T,3>& geometry,
226 T conversationFactorMass,
227 T conversationFactorTime,
228 IndicatorCircle3D<T>& circle,
230
231 bool operator() (T output[], const int input[]) override;
232
233 void print(std::string regionName, std::string massFluxSiScaleName);
234
235};
236
237
238}
239
240#endif
Smart pointer for managing the various ways of passing functors around.
Definition functorPtr.h:60
Parametrization of a hyperplane lattice.
indicator function for a 3D circle
IndicatorF2D is an application from .
represents all functors that operate on a SuperStructure<T,3> in general
Representation of a statistic for a parallel 2D geometry.
Base indicator functor (discrete)
Surface integral of a subset of a interpolated hyperplane.
bool operator()(T output[], const int input[]) override
SuperPlaneIntegralFluxMass3D(FunctorPtr< SuperF3D< T > > &&velocityF, FunctorPtr< SuperF3D< T > > &&densityF, SuperGeometry< T, 3 > &geometry, T conversationFactorMass, T conversationFactorTime, const HyperplaneLattice3D< T > &hyperplaneLattice, FunctorPtr< SuperIndicatorF3D< T > > &&integrationIndicator, FunctorPtr< IndicatorF2D< T > > &&subplaneIndicator, BlockDataReductionMode mode=BlockDataReductionMode::Analytical)
Primary constructor.
void print(std::string regionName, std::string massFluxSiScaleName)
Plain old scalar vector.
Definition vector.h:47
Top level namespace for all of OpenLB.
BlockDataReductionMode
Mode of reducing block data from given, possibly higher dimensional data.
@ Analytical
Interpolate block data at exact physical locations.
Definition of a analytical 2D plane embedded in 3D space.