49 DFieldMem<IdxRangeCoeffs, typename ExecSpace::memory_space>&& coefficients_alloc)
51 static_assert(is_curvilinear_2d_mapping_v<Mapping>);
53 using R =
typename Mapping::curvilinear_tag_r;
54 using Theta =
typename Mapping::curvilinear_tag_theta;
56 static_assert(has_2d_jacobian_v<Mapping, Coord<R, Theta>>);
58 using IdxCoeffs =
typename IdxRangeCoeffs::discrete_element_type;
59 IdxRangeCoeffs grid = get_idx_range(coefficients_alloc);
60 DField<IdxRangeCoeffs, typename ExecSpace::memory_space> coefficients(coefficients_alloc);
61 ddc::parallel_for_each(
64 KOKKOS_LAMBDA(IdxCoeffs
const idx) {
65 Coord<R, Theta> coord(ddc::coordinate(idx));
66 coefficients(idx) *= fabs(mapping.jacobian(coord));
68 return std::move(coefficients_alloc);
DFieldMem< IdxRangeCoeffs, typename ExecSpace::memory_space > compute_coeffs_on_mapping(ExecSpace exec_space, Mapping &mapping, DFieldMem< IdxRangeCoeffs, typename ExecSpace::memory_space > &&coefficients_alloc)
Add the Jacobian determinant to the coefficients.
Definition volume_quadrature_nd.hpp:46