diff --git a/spline__quadrature_8hpp_source.html b/spline__quadrature_8hpp_source.html index 24f982df2..ca1aaaa49 100644 --- a/spline__quadrature_8hpp_source.html +++ b/spline__quadrature_8hpp_source.html @@ -130,40 +130,50 @@
42  ddc::DiscreteDomain<IDim> const& domain,
43  SplineBuilder const& builder)
44 {
-
45  return builder.quadrature_coefficients(domain);
-
46 }
-
47 
-
48 
-
49 
-
62 template <class... DDims, class... SplineBuilders>
-
63 ddc::Chunk<double, ddc::DiscreteDomain<DDims...>> spline_quadrature_coefficients(
-
64  ddc::DiscreteDomain<DDims...> const& domain,
-
65  SplineBuilders const&... builders)
-
66 {
-
67  assert((std::is_same_v<
-
68  typename DDims::continuous_dimension_type,
-
69  typename SplineBuilders::bsplines_type::tag_type> and ...));
-
70 
-
71  // Get coefficients for each dimension
-
72  std::tuple<CoefficientChunk1D<DDims>...> current_dim_coeffs(
-
73  spline_quadrature_coefficients_1d(ddc::select<DDims>(domain), builders)...);
-
74 
-
75  // Allocate ND coefficients
-
76  ddc::Chunk<double, ddc::DiscreteDomain<DDims...>> coefficients(domain);
-
77 
-
78  ddc::for_each(domain, [&](ddc::DiscreteElement<DDims...> const idim) {
-
79  // multiply the 1D coefficients by one another
-
80  coefficients(idim)
-
81  = (std::get<CoefficientChunk1D<DDims>>(current_dim_coeffs)(ddc::select<DDims>(idim))
-
82  * ... * 1);
-
83  });
-
84 
-
85  return coefficients;
-
86 }
+
45  static_assert(
+
46  SplineBuilder::s_nbe_xmin == 0,
+
47  "The spline quadrature requires a builder which can construct the coefficients using "
+
48  "only the values at the interpolation points.");
+
49  static_assert(
+
50  SplineBuilder::s_nbe_xmax == 0,
+
51  "The spline quadrature requires a builder which can construct the coefficients using "
+
52  "only the values at the interpolation points.");
+
53  return builder.quadrature_coefficients(domain);
+
54 }
+
55 
+
56 
+
57 
+
70 template <class... DDims, class... SplineBuilders>
+
71 ddc::Chunk<double, ddc::DiscreteDomain<DDims...>> spline_quadrature_coefficients(
+
72  ddc::DiscreteDomain<DDims...> const& domain,
+
73  SplineBuilders const&... builders)
+
74 {
+
75  assert((std::is_same_v<
+
76  typename DDims::continuous_dimension_type,
+
77  typename SplineBuilders::bsplines_type::tag_type> and ...));
+
78 
+
79  // Get coefficients for each dimension
+
80  std::tuple<CoefficientChunk1D<DDims>...> current_dim_coeffs(
+
81  spline_quadrature_coefficients_1d(ddc::select<DDims>(domain), builders)...);
+
82 
+
83  // Allocate ND coefficients
+
84  ddc::Chunk<double, ddc::DiscreteDomain<DDims...>> coefficients(domain);
+
85 
+
86  ddc::for_each(domain, [&](ddc::DiscreteElement<DDims...> const idim) {
+
87  // multiply the 1D coefficients by one another
+
88  coefficients(idim)
+
89  = (std::get<CoefficientChunk1D<DDims>>(current_dim_coeffs)(ddc::select<DDims>(idim))
+
90  * ... * 1);
+
91  });
+
92 
+
93  return coefficients;
+
94 }
SplineBuilder
A class for creating a spline approximation of a function.
Definition: spline_builder.hpp:42
+
SplineBuilder::s_nbe_xmin
static constexpr int s_nbe_xmin
The number of equations which define the boundary conditions at the lower bound.
Definition: spline_builder.hpp:78
+
SplineBuilder::s_nbe_xmax
static constexpr int s_nbe_xmax
The number of equations which define the boundary conditions at the upper bound.
Definition: spline_builder.hpp:83
SplineBuilder::quadrature_coefficients
ddc::Chunk< double, ddc::DiscreteDomain< IDim > > quadrature_coefficients(ddc::DiscreteDomain< IDim > const &domain) const noexcept
Get the spline quadrature coefficients.
Definition: spline_builder.hpp:237
spline_quadrature_coefficients_1d
ddc::Chunk< double, ddc::DiscreteDomain< IDim > > spline_quadrature_coefficients_1d(ddc::DiscreteDomain< IDim > const &domain, SplineBuilder const &builder)
Get the spline quadrature coefficients in 1D.
Definition: spline_quadrature.hpp:41
-
spline_quadrature_coefficients
ddc::Chunk< double, ddc::DiscreteDomain< DDims... > > spline_quadrature_coefficients(ddc::DiscreteDomain< DDims... > const &domain, SplineBuilders const &... builders)
Get the spline quadrature coefficients in ND from N 1D quadrature coefficient.
Definition: spline_quadrature.hpp:63
+
spline_quadrature_coefficients
ddc::Chunk< double, ddc::DiscreteDomain< DDims... > > spline_quadrature_coefficients(ddc::DiscreteDomain< DDims... > const &domain, SplineBuilders const &... builders)
Get the spline quadrature coefficients in ND from N 1D quadrature coefficient.
Definition: spline_quadrature.hpp:71