SpECTRE  v2026.09.05
Loading...
Searching...
No Matches
Spectral::limits Namespace Reference

Limits on the extents of a Mesh based on Basis and Quadrature. The minima are strict requirements except for spherical harmonics which are set by the package (SPHEREPACK) used to implement them. The maxima are set to limit the sizes of static caches, so can be changed if desired. More...

Functions

constexpr size_t max (const Basis basis, const Quadrature quadrature)
 The maximum allowed extent for a given Basis and Quadrature.
constexpr size_t min (const Basis basis, const Quadrature quadrature)
 The minimum extent for a given Basis and Quadrature.

Detailed Description

Limits on the extents of a Mesh based on Basis and Quadrature. The minima are strict requirements except for spherical harmonics which are set by the package (SPHEREPACK) used to implement them. The maxima are set to limit the sizes of static caches, so can be changed if desired.

Function Documentation

◆ max()

size_t Spectral::limits::max ( const Basis basis,
const Quadrature quadrature )
constexpr

The maximum allowed extent for a given Basis and Quadrature.

Details

The maxima are chosen to limit the size of static caches. Let \(N\) be the highest represented polynomial mode, \(L\) the highest represented spherical harmonic mode, and \(M\) the highest represented Fourier mode. Then the maxima are set as follows:

  • \(N+1\) for Basis::Legendre, Basis::Chebyshev and Basis::ZernikeB1
  • \(2N+2\) for Basis::FiniteDifference as for DG-subcell \(n_{FD} = 2 n_{DG}\) for Quadrature::FaceCentered
  • \((L+1, 2L+1)\) for Basis::SphericalHarmonic
  • \(2M+1\) for Basis::Fourier
  • \((M/2 + 1, 2M+1)\) for Basis::ZernikeB2
  • \((L/2 + 1, L+1, 2L+1)\) for Basis::ZernikeB3
  • 1 for Basis::Cartoon

◆ min()

size_t Spectral::limits::min ( const Basis basis,
const Quadrature quadrature )
constexpr

The minimum extent for a given Basis and Quadrature.

Details

The minimum is 1 except for the following:

  • 2 for Quadrature::GaussLobatto and Quadrature::FaceCentered as they have collocation points on the boundaries
  • \((3, 5)\) for the angular directions of Basis::SphericalHarmonic or \((2, 3, 5)\) for the directions of Basis::ZernikeB3 as this is a requirement of the package SPHEREPACK that implements spherical harmonics