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 :
8 : /// \cond
9 : template <size_t Dim>
10 : class Mesh;
11 : /// \endcond
12 :
13 : namespace Spectral {
14 : /// \brief Returns true if mesh is valid for DG
15 : ///
16 : /// \details A mesh is valid if it:
17 : /// - does not have a Basis::FiniteDifference
18 : /// - has a consistent Basis and Quadrature (based on topology),
19 : /// - has valid extents for the Basis and Quadrature.
20 : /// In addition:
21 : /// - for Quadrature::Equiangular (as part of periodic angular topologoy such
22 : /// as S1, S2, B2, or B3), we require that the extent is odd in that
23 : /// dimension
24 : /// - For multidimensional topologies, we enforce that their extents
25 : /// in the coupled dimensions are kept in sync in order to resolve the
26 : /// highest angular mode
27 : template <size_t Dim>
28 1 : bool is_valid_dg_mesh(const Mesh<Dim>& mesh);
29 : } // namespace Spectral
|