SpECTRE Documentation Coverage Report
Current view: top level - NumericalAlgorithms/LinearOperators - Linearize.hpp Hit Total Coverage
Commit: 058fd9f3a53606b32c6beec17aafdb5fcf4268be Lines: 5 5 100.0 %
Date: 2024-04-27 02:05:51
Legend: Lines: hit not hit

          Line data    Source code
       1           1 : // Distributed under the MIT License.
       2             : // See LICENSE.txt for details.
       3             : 
       4             : /// \file
       5             : /// Defines function linearize.
       6             : 
       7             : #pragma once
       8             : 
       9             : #include <cstddef>
      10             : 
      11             : /// \cond
      12             : class DataVector;
      13             : template <size_t>
      14             : class Mesh;
      15             : namespace gsl {
      16             : template <class>
      17             : class not_null;
      18             : }  // namespace gsl
      19             : /// \endcond
      20             : 
      21             : /// @{
      22             : /*!
      23             :  * \ingroup NumericalAlgorithmsGroup
      24             :  * \brief Truncate u to a linear function in each dimension.
      25             :  *
      26             :  * Ex in 2D: \f$u^{Lin} = U_0 + U_x x + U_y y + U_{xy} xy\f$
      27             :  *
      28             :  * \warning the `gsl::not_null` variant assumes `*result` is of the correct
      29             :  * size.
      30             :  */
      31             : template <size_t Dim>
      32           1 : void linearize(gsl::not_null<DataVector*> result, const DataVector& u,
      33             :                const Mesh<Dim>& mesh);
      34             : template <size_t Dim>
      35           1 : DataVector linearize(const DataVector& u, const Mesh<Dim>& mesh);
      36             : /// @}
      37             : 
      38             : /// @{
      39             : /*!
      40             :  * \ingroup NumericalAlgorithmsGroup
      41             :  * \brief Truncate u to a linear function in the given dimension.
      42             :  *
      43             :  * **Parameters**
      44             :  * - `u` the function to linearize.
      45             :  * - `mesh` the Mesh of the grid on the manifold on which `u` is
      46             :  * located.
      47             :  * - `d` the dimension that is to be linearized.
      48             :  *
      49             :  * \warning the `gsl::not_null` variant assumes `*result` is of the correct
      50             :  * size.
      51             :  */
      52             : template <size_t Dim>
      53           1 : void linearize(gsl::not_null<DataVector*> result, const DataVector& u,
      54             :                const Mesh<Dim>& mesh, size_t d);
      55             : template <size_t Dim>
      56           1 : DataVector linearize(const DataVector& u, const Mesh<Dim>& mesh, size_t d);
      57             : /// @}

Generated by: LCOV version 1.14