25#ifndef BLOCK_LATTICE_INTEGRAL_F_2D_HH
26#define BLOCK_LATTICE_INTEGRAL_F_2D_HH
39template <
typename T,
typename DESCRIPTOR>
45 _indicatorF(indicatorF),
46 _facesF(indicatorF, converter.getConversionFactorLength()),
47 _pBoundForceF(blockLattice, indicatorF, converter),
48 _sumF(_pBoundForceF, indicatorF),
49 _factor(2./( converter.getPhysDensity()*converter.getCharPhysVelocity()*converter.getCharPhysVelocity() ))
54template <
typename T,
typename DESCRIPTOR>
60 _facesF(faces, input);
62 output[0] = _factor * sum[0] / faces[0];
63 output[1] = _factor * sum[1] / faces[1];
68template <
typename T,
typename DESCRIPTOR>
74 _indicatorF(indicatorF),
75 _facesF(indicatorF, converter.getConversionFactorLength()),
76 _pBoundForceF(blockLattice, indicatorF, converter),
77 _sumF(_pBoundForceF, indicatorF),
78 _factor(2./( converter.getPhysDensity()*converter.getCharPhysVelocity()*converter.getCharPhysVelocity() ))
80 this->
getName() =
"physCorrDrag";
83template <
typename T,
typename DESCRIPTOR>
88 _facesF(faces, input);
91 output[0] = _factor * sum[0] / faces[0];
92 output[1] = _factor * sum[1] / faces[1];
Base block indicator functor (discrete)
BlockLatticePhysCorrDrag2D(BlockLattice< T, DESCRIPTOR > &blockLattice, BlockIndicatorF2D< T > &indicatorF, const UnitConverter< T, DESCRIPTOR > &converter)
bool operator()(T output[], const int input[]) override
has to be implemented for 'every' derived class
BlockLatticePhysDrag2D(BlockLattice< T, DESCRIPTOR > &blockLattice, BlockIndicatorF2D< T > &indicatorF, const UnitConverter< T, DESCRIPTOR > &converter)
bool operator()(T output[], const int input[]) override
has to be implemented for 'every' derived class
represents all functors that operate on a DESCRIPTOR with output in Phys, e.g. physVelocity(),...
Conversion between physical and lattice units, as well as discretization.
Top level namespace for all of OpenLB.