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 : #include "NumericalAlgorithms/Spectral/CollocationPointsAndWeights.hpp" 9 : 10 : /// \cond 11 : class DataVector; 12 : class Matrix; 13 : namespace Spectral { 14 : enum class Quadrature : uint8_t; 15 : } // namespace Spectral 16 : /// \endcond 17 : 18 : namespace Spectral { 19 : 20 : /*! 21 : * \ingroup SpectralGroup 22 : * 23 : * \brief A collection of helper functions for the radial functions used in 24 : * Zernike polyomials 25 : * 26 : */ 27 : template <size_t Dim> 28 1 : class Zernike { 29 : public: 30 : /*! 31 : * \brief Value of the basis function \f$\Phi^m_n(\xi) = R^m_n(r)\f$, 32 : * where \f$r \equiv \frac{1}{2} (\xi + 1)\f$, implemented from 33 : * \cite Matsushima1995 34 : */ 35 : template <typename T> 36 1 : static T basis_function_value(size_t n, size_t m, const T& xi); 37 : }; 38 : } // namespace Spectral