OpenLB 1.7
Loading...
Searching...
No Matches
superPlaneIntegralFluxF3D.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_F_3D_H
25#define SUPER_PLANE_INTEGRAL_FLUX_F_3D_H
26
30
31namespace olb {
32
33
35
47template<typename T, template<typename, typename> class F>
49public:
50 template<typename DESCRIPTOR>
52 const UnitConverter<T,DESCRIPTOR>& converter,
53 SuperGeometry<T,3>& geometry,
54 const HyperplaneLattice3D<T>& hyperplaneLattice,
55 FunctorPtr<SuperIndicatorF3D<T>>&& integrationIndicator,
56 FunctorPtr<IndicatorF2D<T>>&& subplaneIndicator,
58
59 template<typename DESCRIPTOR>
61 const UnitConverter<T,DESCRIPTOR>& converter,
62 SuperGeometry<T,3>& geometry,
63 const Hyperplane3D<T>& hyperplane,
64 FunctorPtr<SuperIndicatorF3D<T>>&& integrationIndicator,
65 FunctorPtr<IndicatorF2D<T>>&& subplaneIndicator,
67 template<typename DESCRIPTOR>
69 const UnitConverter<T,DESCRIPTOR>& converter,
70 SuperGeometry<T,3>& geometry,
71 const Hyperplane3D<T>& hyperplane,
72 FunctorPtr<SuperIndicatorF3D<T>>&& integrationIndicator,
74
75 template<typename DESCRIPTOR>
77 const UnitConverter<T,DESCRIPTOR>& converter,
78 SuperGeometry<T,3>& geometry,
79 const Vector<T,3>& origin,
80 const Vector<T,3>& u, const Vector<T,3>& v,
81 std::vector<int> materials,
83 template<typename DESCRIPTOR>
85 const UnitConverter<T,DESCRIPTOR>& converter,
86 SuperGeometry<T,3>& geometry,
87 const Vector<T,3>& origin,
88 const Vector<T,3>& u, const Vector<T,3>& v,
90
91 template<typename DESCRIPTOR>
93 const UnitConverter<T,DESCRIPTOR>& converter,
94 SuperGeometry<T,3>& geometry,
95 const Vector<T,3>& origin,
96 const Vector<T,3>& normal,
97 std::vector<int> materials,
99 template<typename DESCRIPTOR>
101 const UnitConverter<T,DESCRIPTOR>& converter,
102 SuperGeometry<T,3>& geometry,
103 const Vector<T,3>& origin,
104 const Vector<T,3>& normal,
106
107 template<typename DESCRIPTOR>
109 const UnitConverter<T,DESCRIPTOR>& converter,
110 SuperGeometry<T,3>& geometry,
111 const Vector<T,3>& normal,
112 std::vector<int> materials,
114 template<typename DESCRIPTOR>
116 const UnitConverter<T,DESCRIPTOR>& converter,
117 SuperGeometry<T,3>& geometry,
118 const Vector<T,3>& normal,
120
121 template<typename DESCRIPTOR>
123 const UnitConverter<T,DESCRIPTOR>& converter,
124 SuperGeometry<T,3>& geometry,
125 IndicatorCircle3D<T>& circle,
126 std::vector<int> materials,
128 template<typename DESCRIPTOR>
130 const UnitConverter<T,DESCRIPTOR>& converter,
131 SuperGeometry<T,3>& geometry,
132 IndicatorCircle3D<T>& circle,
134
135};
136
138
143template<typename T>
145 : public SuperPlaneIntegralFluxF3D<T, SuperLatticePhysPressure3D> {
146public:
148
149 void print(std::string regionName = "",
150 std::string fluxSiScaleName = "N",
151 std::string meanSiScaleName = "Pa");
152};
153
155
160template<typename T>
162 : public SuperPlaneIntegralFluxF3D<T, SuperLatticePhysVelocity3D> {
163public:
165
166 void print(std::string regionName = "",
167 std::string fluxSiScaleName = "m^3/s",
168 std::string meanSiScaleName = "m/s");
169};
170
171
172}
173
174#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 .
Representation of a statistic for a parallel 2D geometry.
Base indicator functor (discrete)
functor to get pointwise phys pressure from rho on local lattices
functor to get pointwise phys velocity on local lattice
Super class maintaining block lattices for a cuboid decomposition.
Surface integral of a subset of a interpolated hyperplane.
Template class for building flux integrals based on SuperLatticePhysF3D functors.
SuperPlaneIntegralFluxF3D(SuperLattice< T, DESCRIPTOR > &sLattice, const UnitConverter< T, DESCRIPTOR > &converter, SuperGeometry< T, 3 > &geometry, const HyperplaneLattice3D< T > &hyperplaneLattice, FunctorPtr< SuperIndicatorF3D< T > > &&integrationIndicator, FunctorPtr< IndicatorF2D< T > > &&subplaneIndicator, BlockDataReductionMode mode=BlockDataReductionMode::Analytical)
void print(std::string regionName="", std::string fluxSiScaleName="N", std::string meanSiScaleName="Pa")
void print(std::string regionName="", std::string fluxSiScaleName="m^3/s", std::string meanSiScaleName="m/s")
Conversion between physical and lattice units, as well as discretization.
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.