25#ifndef SUPER_LATTICE_INTEGRAL_F_3D_HH
26#define SUPER_LATTICE_INTEGRAL_F_3D_HH
41template<
typename T,
typename DESCRIPTOR>
47 _indicatorF(std::move(indicatorF)),
48 _facesF(*_indicatorF, converter),
49 _pBoundForceF(sLattice, *_indicatorF, converter),
50 _sumF(_pBoundForceF, *_indicatorF),
51 _factor(2./( converter.getPhysDensity()*converter.getCharPhysVelocity()*converter.getCharPhysVelocity() ))
59 indicatorF->getBlockIndicatorF(iC),
65template<
typename T,
typename DESCRIPTOR>
71 superGeometry.getMaterialIndicator(material),
75template<
typename T,
typename DESCRIPTOR>
81 _facesF(faces, input);
83 output[0] = _factor * sum[0] / faces[0];
84 output[1] = _factor * sum[1] / faces[1];
85 output[2] = _factor * sum[2] / faces[2];
90template<
typename T,
typename DESCRIPTOR>
96 _indicatorF(std::move(indicatorF)),
97 _facesF(*_indicatorF, converter),
98 _pBoundForceF(sLattice, *_indicatorF, converter),
99 _sumF(_pBoundForceF, *_indicatorF),
100 _factor(2./( converter.getPhysDensity()*converter.getCharPhysVelocity()*converter.getCharPhysVelocity() ))
102 this->
getName() =
"physCorrDrag";
108 indicatorF->getBlockIndicatorF(iC),
114template<
typename T,
typename DESCRIPTOR>
120 superGeometry.getMaterialIndicator(material),
124template<
typename T,
typename DESCRIPTOR>
130 _facesF(faces, input);
132 output[0] = _factor * sum[0] / faces[0];
133 output[1] = _factor * sum[1] / faces[1];
134 output[2] = _factor * sum[2] / faces[2];
functor to get pointwise phys force acting on a indicated boundary on local lattice
functor to get pointwise phys force acting on a indicated boundary on local lattice
Smart pointer for managing the various ways of passing functors around.
std::string & getName()
read and write access to name
SuperStructure< T, 3 > & getSuperStructure()
std::vector< std::unique_ptr< BlockF3D< T > > > _blockF
Super functors may consist of several BlockF3D<W> derived functors.
Representation of a statistic for a parallel 2D geometry.
Base indicator functor (discrete)
functor to get pointwise phys force acting on a indicated boundary on local lattice
bool operator()(T output[], const int input[]) override
SuperLatticePhysCorrDrag3D(SuperLattice< T, DESCRIPTOR > &sLattice, FunctorPtr< SuperIndicatorF3D< T > > &&indicatorF, const UnitConverter< T, DESCRIPTOR > &converter)
functor to get pointwise phys force acting on a indicated boundary on local lattice
bool operator()(T output[], const int input[]) override
SuperLatticePhysDrag3D(SuperLattice< T, DESCRIPTOR > &sLattice, FunctorPtr< SuperIndicatorF3D< T > > &&indicatorF, const UnitConverter< T, DESCRIPTOR > &converter)
represents all functors that operate on a DESCRIPTOR with output in Phys, e.g. physVelocity(),...
Super class maintaining block lattices for a cuboid decomposition.
BlockLattice< T, DESCRIPTOR > & getBlock(int locC)
Return BlockLattice with local index locC.
LoadBalancer< T > & getLoadBalancer()
Read and write access to the load balancer.
Conversion between physical and lattice units, as well as discretization.
Top level namespace for all of OpenLB.