Line data Source code
1 0 : // Distributed under the MIT License.
2 : // See LICENSE.txt for details.
3 :
4 : #pragma once
5 :
6 : #include <cstddef>
7 : #include <utility>
8 :
9 : /// \cond
10 : class DataVector;
11 : template <size_t>
12 : class Mesh;
13 : namespace Spectral {
14 : enum class Basis : uint8_t;
15 : enum class Quadrature : uint8_t;
16 : } // namespace Spectral
17 : /// \endcond
18 :
19 : namespace Spectral {
20 : /// @{
21 : /*!
22 : * \brief Terms used during the lifting portion of a discontinuous Galerkin
23 : * scheme when using Gauss points.
24 : *
25 : * Assumes that the logical coordinates are \f$[-1, 1]\f$. The first element of
26 : * the pair is the Lagrange polyonmials evaluated at \f$\xi=-1\f$ divided by the
27 : * weights and the second at \f$\xi=1\f$. Specifically,
28 : *
29 : * \f{align*}{
30 : * \frac{\ell_j(\xi=\pm1)}{w_j}
31 : * \f}
32 : *
33 : * \warning This can only be called with Gauss points.
34 : */
35 1 : const std::pair<DataVector, DataVector>& boundary_lifting_term(
36 : const Mesh<1>& mesh);
37 :
38 : template <Basis BasisType, Quadrature QuadratureType>
39 1 : const std::pair<DataVector, DataVector>& boundary_lifting_term(
40 : size_t num_points);
41 : /// @}
42 : } // namespace Spectral
|