SpECTRE Documentation Coverage Report
Current view: top level - Domain/CoordinateMaps - PolarToCartesian.hpp Coverage Total Hit
Commit: 0d1d717af84a81fb1284a20c4013708fe85cc2f0 Lines: 5.6 % 18 1
Test Date: 2026-10-22 17:29:42
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 <array>
       7              : #include <cstddef>
       8              : #include <optional>
       9              : 
      10              : #include "DataStructures/Tensor/TypeAliases.hpp"
      11              : 
      12              : /// \cond
      13              : namespace PUP {
      14              : class er;
      15              : }  // namespace PUP
      16              : /// \endcond
      17              : 
      18              : namespace domain::CoordinateMaps {
      19              : 
      20              : /*!
      21              :  * \ingroup CoordinateMapsGroup
      22              :  *
      23              :  * \brief Transformation from polar to Cartesian coordinates.
      24              :  *
      25              :  * \details This is a mapping from \f$(r,\phi) \rightarrow (x,y) \f$.
      26              :  *
      27              :  * The formula for the mapping is...
      28              :  * \f{eqnarray*}
      29              :  *     x &=& r \cos\phi \\
      30              :  *     y &=& r \sin\phi
      31              :  * \f}
      32              :  */
      33            1 : class PolarToCartesian {
      34              :  public:
      35            0 :   static constexpr size_t dim = 2;
      36            0 :   PolarToCartesian();
      37            0 :   ~PolarToCartesian() = default;
      38            0 :   PolarToCartesian(PolarToCartesian&&);
      39            0 :   PolarToCartesian(const PolarToCartesian&);
      40            0 :   PolarToCartesian& operator=(const PolarToCartesian&);
      41            0 :   PolarToCartesian& operator=(PolarToCartesian&&);
      42              : 
      43              :   template <typename T>
      44            0 :   std::array<T, 2> operator()(const std::array<T, 2>& source_coords) const;
      45              : 
      46              :   // NOLINTNEXTLINE(readability-convert-member-functions-to-static)
      47            0 :   std::optional<std::array<double, 2>> inverse(
      48              :       const std::array<double, 2>& target_coords) const;
      49              : 
      50              :   template <typename T>
      51            0 :   tnsr::Ij<T, 2, Frame::NoFrame> jacobian(
      52              :       const std::array<T, 2>& source_coords) const;
      53              : 
      54              :   template <typename T>
      55            0 :   tnsr::Ij<T, 2, Frame::NoFrame> inv_jacobian(
      56              :       const std::array<T, 2>& source_coords) const;
      57              : 
      58              :   // NOLINTNEXTLINE(google-runtime-references)
      59            0 :   void pup(PUP::er& p);
      60              : 
      61            0 :   static constexpr bool is_identity() { return false; }
      62              : 
      63            0 :   static constexpr bool supports_hessian{false};
      64              : };
      65              : 
      66            0 : bool operator==(const PolarToCartesian& lhs, const PolarToCartesian& rhs);
      67              : 
      68            0 : bool operator!=(const PolarToCartesian& lhs, const PolarToCartesian& rhs);
      69              : }  // namespace domain::CoordinateMaps
        

Generated by: LCOV version 2.0-1