OpenLB 1.7
Loading...
Searching...
No Matches
superPlaneIntegralF2D.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_F_2D_H
25#define SUPER_PLANE_INTEGRAL_F_2D_H
26
27#include "core/vector.h"
28#include "io/ostreamManager.h"
38
39namespace olb {
40
41
43template<typename T>
45protected:
47
56
59
69
72 std::vector<int> _rankLocalSubplane;
73
75
79 bool isToBeIntegrated(const Vector<T,2>& physR, int iC);
80
81public:
83
105 SuperGeometry<T,2>& geometry,
106 const HyperplaneLattice2D<T>& hyperplaneLattice,
107 FunctorPtr<SuperIndicatorF2D<T>>&& integrationIndicator,
108 FunctorPtr<IndicatorF1D<T>>&& subplaneIndicator,
111
128 SuperGeometry<T,2>& geometry,
129 const Hyperplane2D<T>& hyperplane,
130 FunctorPtr<SuperIndicatorF2D<T>>&& integrationIndicator,
131 FunctorPtr<IndicatorF1D<T>>&& subplaneIndicator,
133
135
151 SuperGeometry<T,2>& geometry,
152 const Hyperplane2D<T>& hyperplane,
153 FunctorPtr<SuperIndicatorF2D<T>>&& integrationIndicator,
155
157
165 SuperGeometry<T,2>& geometry,
166 const Vector<T,2>& origin,
167 const Vector<T,2>& u,
168 std::vector<int> materials,
171
178 SuperGeometry<T,2>& geometry,
179 const Vector<T,2>& origin,
180 const Vector<T,2>& u,
182
196 bool operator() (T output[], const int input[]) override;
197
198};
199
200
201}
202
203#endif
BlockReduction2D1D reduces the data of a SuperF2D functor to the intersection between a given 2D hype...
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).
IndicatorF1D is an application from .
represents all functors that operate on a SuperStructure<T,2> in general
Representation of a statistic for a parallel 2D geometry.
Surface integral of a subset of a interpolated hyperplane.
FunctorPtr< IndicatorF1D< T > > _subplaneIndicatorF
Indicator describing the relevant subset of the interpolated hyperplane.
BlockReduction2D1D< T > _reductionF
Functor describing line to be interpolated and integrated.
Vector< T, 2 > _normal
Orthogonal vector to _u.
SuperPlaneIntegralF2D(FunctorPtr< SuperF2D< T > > &&f, SuperGeometry< T, 2 > &geometry, const HyperplaneLattice2D< T > &hyperplaneLattice, FunctorPtr< SuperIndicatorF2D< T > > &&integrationIndicator, FunctorPtr< IndicatorF1D< T > > &&subplaneIndicator, BlockDataReductionMode mode=BlockDataReductionMode::Analytical)
Primary constructor.
std::vector< int > _rankLocalSubplane
Subset of the discrete line points given by _reductionF as indicated by _integrationIndicatorF.
bool isToBeIntegrated(const Vector< T, 2 > &physR, int iC)
This is determined using the _integrationIndicatorF indicated subset of the 2d hyperplane reduced by ...
FunctorPtr< SuperIndicatorF2D< T > > _integrationIndicatorF
Indicator describing relevant discrete integration points.
SuperGeometry< T, 2 > & _geometry
Vector< T, 2 > _u
Direction vector u as given by hyperplane definition, normalized to h.
bool operator()(T output[], const int input[]) override
Returns the line integral in the following structure:
FunctorPtr< SuperF2D< T > > _f
Functor to be integrated on the line.
Vector< T, 2 > _origin
Origin vector as given by hyperplane definition, (0,0) in respect to the subplane indicator _subplane...
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.
Representation of a parallel 2D geometry – header file.
efficient implementation of a vector class