OpenLB 1.7
Loading...
Searching...
No Matches
superPlaneIntegralFluxF2D.h
Go to the documentation of this file.
1/* This file is part of the OpenLB library
2 *
3 * Copyright (C) 2018 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_2D_H
25#define SUPER_PLANE_INTEGRAL_FLUX_F_2D_H
26
30
31namespace olb {
32
33
35
45template<typename T, template<typename, typename> class F>
47public:
48 template<typename DESCRIPTOR>
50 const UnitConverter<T,DESCRIPTOR>& converter,
51 SuperGeometry<T,2>& geometry,
52 const HyperplaneLattice2D<T>& hyperplaneLattice,
53 FunctorPtr<SuperIndicatorF2D<T>>&& integrationIndicator,
54 FunctorPtr<IndicatorF2D<T>>&& subplaneIndicator,
56
57 template<typename DESCRIPTOR>
59 const UnitConverter<T,DESCRIPTOR>& converter,
60 SuperGeometry<T,2>& geometry,
61 const Hyperplane2D<T>& hyperplane,
62 FunctorPtr<SuperIndicatorF2D<T>>&& integrationIndicator,
63 FunctorPtr<IndicatorF2D<T>>&& subplaneIndicator,
65 template<typename DESCRIPTOR>
67 const UnitConverter<T,DESCRIPTOR>& converter,
68 SuperGeometry<T,2>& geometry,
69 const Hyperplane2D<T>& hyperplane,
70 FunctorPtr<SuperIndicatorF2D<T>>&& integrationIndicator,
72
73 template<typename DESCRIPTOR>
75 const UnitConverter<T,DESCRIPTOR>& converter,
76 SuperGeometry<T,2>& geometry,
77 const Vector<T,2>& origin,
78 const Vector<T,2>& u,
79 std::vector<int> materials,
81 template<typename DESCRIPTOR>
83 const UnitConverter<T,DESCRIPTOR>& converter,
84 SuperGeometry<T,2>& geometry,
85 const Vector<T,2>& origin,
86 const Vector<T,2>& u,
88
89};
90
92
97template<typename T>
99 : public SuperPlaneIntegralFluxF2D<T, SuperLatticePhysPressure2D> {
100public:
102
103 void print(std::string regionName = "",
104 std::string fluxSiScaleName = "N",
105 std::string meanSiScaleName = "Pa");
106};
107
109
114template<typename T>
116 : public SuperPlaneIntegralFluxF2D<T, SuperLatticePhysVelocity2D> {
117public:
119
120 void print(std::string regionName = "",
121 std::string fluxSiScaleName = "m^2/s",
122 std::string meanSiScaleName = "m/s");
123};
124
125
126}
127
128#endif
Smart pointer for managing the various ways of passing functors around.
Definition functorPtr.h:60
Parametrization of a hyperplane lattice (i.e. a line lattice).
IndicatorF2D is an application from .
Representation of a statistic for a parallel 2D geometry.
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 SuperLatticePhysF2D functors.
SuperPlaneIntegralFluxF2D(SuperLattice< T, DESCRIPTOR > &sLattice, const UnitConverter< T, DESCRIPTOR > &converter, SuperGeometry< T, 2 > &geometry, const HyperplaneLattice2D< T > &hyperplaneLattice, FunctorPtr< SuperIndicatorF2D< 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^2/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 line embedded in 2D space.