Template Function ImmersX::detail::apply_tensor_product_lift(const std::vector<PointType>&, const std::vector<IndexType>&, const std::vector<std::vector<IndexType>>&, const VectorType&, VectorType&, const bool, const bool)¶
Defined in File tensor_product_lift.h
Function Documentation¶
-
template<typename PointType, typename VectorType, typename IndexType>
void ImmersX::detail::apply_tensor_product_lift(const std::vector<PointType> &points, const std::vector<IndexType> &target_indices, const std::vector<std::vector<IndexType>> &source_indices, const VectorType &source, VectorType &destination, const bool transpose, const bool add)¶ Apply the algebraic tensor-product lift or its transpose.
The source index lists identify the representative value(s) associated with each lifted point. A physical lift has one entry per point; a modal lift has one entry per selected mode. Physical quadrature weights are deliberately absent: they belong to the eventual integration pairing, not to this value-space operator.
This overload is for writable, non-ghosted vectors. Use the distributed overload below when the destination is a relevant (ghosted) view.