SpECTRE Documentation Coverage Report
Current view: top level - NumericalAlgorithms/Spectral - FilteringB2.hpp Hit Total Coverage
Commit: 2068747df712b64688243d3254666212942d85f2 Lines: 2 3 66.7 %
Date: 2026-05-22 23:35:16
Legend: Lines: hit not hit

          Line data    Source code
       1           0 : // Distributed under the MIT License.
       2             : // See LICENSE.txt for details.
       3             : 
       4             : #pragma once
       5             : 
       6             : #include "Utilities/Gsl.hpp"
       7             : 
       8             : /// \cond
       9             : class Matrix;
      10             : template <size_t>
      11             : class Mesh;
      12             : template <typename TagsList>
      13             : class Variables;
      14             : /// \endcond
      15             : 
      16             : namespace Spectral::filtering {
      17             : /*!
      18             :  * \brief Filters the tensors stored within a `Variables` being represented by
      19             :  * ZernikeB2 basis functions.
      20             :  *
      21             :  * \details Representing functions on a filled disk requires special basis
      22             :  * functions, namely ZernikeB2. These are inherently two-dimensional, meaning
      23             :  * the radial and angular spectral spaces are intertwined. This function goes
      24             :  * to that combined modal space, applies the exponential filter, and
      25             :  * transforms back.
      26             :  *
      27             :  * \see exponential_filter()
      28             :  */
      29             : template <typename TagsList>
      30           1 : void ZernikeB2_disk_exponential_filter(gsl::not_null<Variables<TagsList>*> u,
      31             :                                        const Mesh<2>& mesh, double alpha,
      32             :                                        unsigned half_power);
      33             : 
      34             : /*!
      35             :  * \brief Filters the tensors stored within a `Variables` being represented by
      36             :  * ZernikeB2 \f$\times\f$ Legendre basis functions.
      37             :  *
      38             :  * \details Representing functions on a filled cylinder requires special basis
      39             :  * functions, namely a filled disk with ZernikeB2 cross Legendre. This
      40             :  * requires inherently two-dimensional basis functions, meaning the radial and
      41             :  * angular spectral spaces are intertwined. This function goes to that combined
      42             :  * modal space, applies the exponential filter, transforms back, and then
      43             :  * filters the third I1 dimension.
      44             :  *
      45             :  * \see exponential_filter()
      46             :  */
      47             : template <typename TagsList>
      48           1 : void ZernikeB2_cylinder_exponential_filter(
      49             :     gsl::not_null<Variables<TagsList>*> u, const Mesh<3>& mesh, double alpha,
      50             :     unsigned half_power);
      51             : }  // namespace Spectral::filtering

Generated by: LCOV version 1.14