| 54 | /// @return RHS reference vector. |
| 55 | template <typename T> |
| 56 | std::array<T, 3> b_ref(mdspand_t<const T, 4> phi, std::span<const T> w) |
| 57 | { |
| 58 | std::array<T, 3> b{}; |
| 59 | for (std::size_t k = 0; k < phi.extent(1); ++k) // quadrature point |
| 60 | for (std::size_t i = 0; i < b.size(); ++i) // row i |
| 61 | b[i] += w[k] * phi(0, k, i, 0); |
| 62 | return b; |
| 63 | } |
| 64 | |
| 65 | /// @brief Assemble a matrix operator using a `std::function` kernel |
| 66 | /// function. |