24#ifndef CORE_SUPER_LATTICE_POINT_EXTRACTION_H
25#define CORE_SUPER_LATTICE_POINT_EXTRACTION_H
35template <
typename FUNCTOR>
41 template <
typename CELLS,
typename PARAMETERS>
44 auto point = cells.template get<names::Points>();
45 auto cell = cells.template get<names::Lattice>();
46 auto result = FUNCTOR().compute(cell,
parameters);
47 point.template setField<typename FUNCTOR::result_field>(result);
52template <
typename T,
typename DESCRIPTOR,
typename FUNCTOR>
57 std::vector<std::tuple<int,std::size_t,Vector<T,DESCRIPTOR::d>>> _rankLocalPoints;
58 std::map<int,int> _rankLocalPointsSize;
70 void updateExtractionResultD(
78 return _extractionPointD.
getSize();
82 return _extractionPointD.
getField(iExtracted);
86 return _extractionResultD.
getField(iExtracted);
89 template <
typename FIELD>
std::size_t getSize() const
SoA storage for instances of a single FIELD.
auto getField(std::size_t iCell) const
Return copy of FIELD data for cell iCell.
Coupling operator COUPLER on named COUPLEES.
Super class maintaining block lattices for a cuboid decomposition.
Top level namespace for all of OpenLB.
OperatorScope
Block-wide operator application scopes.
@ PerCellWithParameters
Per-cell application with parameters, i.e. OPERATOR::apply is passed a CELL concept implementation an...
Pair of base value and descriptor type.
efficient implementation of a vector class