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