24#ifndef SUPER_PLANE_INTEGRAL_FLUX_MASS_2D_HH
25#define SUPER_PLANE_INTEGRAL_FLUX_MASS_2D_HH
45 T conversationFactorMass,
46 T conversationFactorTime,
52 (*densityF) * (*velocityF),
55 std::forward<decltype(integrationIndicator)>(integrationIndicator),
56 std::forward<decltype(subplaneIndicator)>(subplaneIndicator),
58 _velocityF(std::move(velocityF)),
59 _densityF(std::move(densityF)),
60 _conversationFactorMass(conversationFactorMass),
61 _conversationFactorTime(conversationFactorTime)
63 this->
getName() =
"SuperPlaneIntegralFluxMass2D";
71 T conversationFactorMass,
72 T conversationFactorTime,
78 (*densityF) * (*velocityF),
81 std::forward<decltype(integrationIndicator)>(integrationIndicator),
82 std::forward<decltype(subplaneIndicator)>(subplaneIndicator),
84 _velocityF(std::move(velocityF)),
85 _densityF(std::move(densityF)),
86 _conversationFactorMass(conversationFactorMass),
87 _conversationFactorTime(conversationFactorTime)
89 this->
getName() =
"SuperPlaneIntegralFluxMass2D";
97 T conversationFactorMass,
98 T conversationFactorTime,
103 (*densityF) * (*velocityF),
106 std::forward<decltype(integrationIndicator)>(integrationIndicator),
108 _velocityF(std::move(velocityF)),
109 _densityF(std::move(densityF)),
110 _conversationFactorMass(conversationFactorMass),
111 _conversationFactorTime(conversationFactorTime)
113 this->
getName() =
"SuperPlaneIntegralFluxMass2D";
121 T conversationFactorMass,
122 T conversationFactorTime,
124 std::vector<int> materials,
127 (*densityF) * (*velocityF),
130 std::move(materials),
132 _velocityF(std::move(velocityF)),
133 _densityF(std::move(densityF)),
134 _conversationFactorMass(conversationFactorMass),
135 _conversationFactorTime(conversationFactorTime)
137 this->
getName() =
"SuperPlaneIntegralFluxMass2D";
145 T conversationFactorMass,
146 T conversationFactorTime,
150 (*densityF) * (*velocityF),
154 _velocityF(std::move(velocityF)),
155 _densityF(std::move(densityF)),
156 _conversationFactorMass(conversationFactorMass),
157 _conversationFactorTime(conversationFactorTime)
159 this->
getName() =
"SuperPlaneIntegralFluxMass2D";
167 output[0] = output[0] * _conversationFactorMass / _conversationFactorTime;
174 std::string regionName, std::string massFluxSiScaleName)
178 T output[this->getTargetDim()];
179 operator()(output, input);
180 if (regionName !=
"") {
181 clout <<
"regionName=" << regionName <<
"; regionSize[m]=" << output[1]
185 clout <<
"regionSize[m]=" << output[1] << std::flush;
188 if (massFluxSiScaleName ==
"mcg/s") {
189 std::cout <<
"; massFlowRate[mcg/s]=" << output[0] * T(1.e6)
192 else if (massFluxSiScaleName ==
"mg/s") {
193 std::cout <<
"; massFlowRate[mg/s]=" << output[0] * T(1.e3)
197 std::cout <<
"; massFlowRate[kg/s]=" << output[0] << std::endl;
Smart pointer for managing the various ways of passing functors around.
std::string & getName()
read and write access to name
Parametrization of a hyperplane lattice (i.e. a line lattice).
IndicatorF2D is an application from .
class for marking output with some text
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.
bool operator()(T output[], const int input[]) override
Returns the line integral in the following structure:
void print(std::string regionName, std::string massFluxSiScaleName)
SuperPlaneIntegralFluxMass2D(FunctorPtr< SuperF2D< T > > &&velocityF, FunctorPtr< SuperF2D< T > > &&densityF, SuperGeometry< T, 2 > &geometry, T conversationFactorMass, T conversationFactorTime, const HyperplaneLattice2D< T > &hyperplaneLattice, FunctorPtr< SuperIndicatorF2D< T > > &&integrationIndicator, FunctorPtr< IndicatorF2D< T > > &&subplaneIndicator, BlockDataReductionMode mode)
Primary constructor.
bool operator()(T output[], const int input[]) override
Groups all include files for the directory genericFunctions.
Top level namespace for all of OpenLB.
BlockDataReductionMode
Mode of reducing block data from given, possibly higher dimensional data.
Definition of a analytical line embedded in 2D space.