SpECTRE Documentation Coverage Report
Current view: top level - NumericalAlgorithms/SphericalHarmonics/IO - ReadSurfaceYlm.hpp Hit Total Coverage
Commit: 6c07040310c093b5fbed1dd2b7e9a5199069d22a Lines: 2 3 66.7 %
Date: 2025-11-12 14:32:51
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 <cstddef>
       7             : #include <string>
       8             : #include <vector>
       9             : 
      10             : #include "NumericalAlgorithms/SphericalHarmonics/Strahlkorper.hpp"
      11             : 
      12             : namespace ylm {
      13             : /// \ingroup SurfacesGroup
      14             : /// \brief Returns a list of `ylm::Strahlkorper`s constructed from reading in
      15             : /// spherical harmonic data for a surface at a requested list of times
      16             : ///
      17             : /// \details The `ylm::Strahlkorper`s are constructed by reading in data from
      18             : /// an H5 subfile that is expected to be in the format described by
      19             : /// `intrp::callbacks::ObserveSurfaceData`. It is assumed that
      20             : /// \f$l_{max} = m_{max}\f$.
      21             : ///
      22             : /// \param file_name name of the H5 file containing the surface's spherical
      23             : /// harmonic data
      24             : /// \param surface_subfile_name name of the subfile (with no leading slash nor
      25             : /// the `.dat` extension) within `file_name` that contains the surface's
      26             : /// spherical harmonic data to read in
      27             : /// \param requested_number_of_times_from_end the number of times to read in
      28             : /// starting backwards from the final time found in `surface_subfile_name`
      29             : template <typename Frame>
      30           1 : std::vector<ylm::Strahlkorper<Frame>> read_surface_ylm(
      31             :     const std::string& file_name, const std::string& surface_subfile_name,
      32             :     size_t requested_number_of_times_from_end);
      33             : 
      34             : /*!
      35             :  * \brief Similar to `ylm::read_surface_ylm`, this reads in spherical harmonic
      36             :  * data for a surface and constructs a `ylm::Strahlkorper`. However, this
      37             :  * function only does it at a specific time and returns a single
      38             :  * `ylm::Strahlkorper`.
      39             :  *
      40             :  * \note If two times are found within \p epsilon of the \p time, then an error
      41             :  * will occur. Similarly, if no \p time is found within the \p epsilon, then an
      42             :  * error will occur as well.
      43             :  *
      44             :  * \param file_name name of the H5 file containing the surface's spherical
      45             :  * harmonic data
      46             :  * \param surface_subfile_name name of the subfile (with no leading slash nor
      47             :  * the `.dat` extension) within `file_name` that contains the surface's
      48             :  * spherical harmonic data to read in
      49             :  * \param time Time to read the coefficients at.
      50             :  * \param relative_epsilon How much error is allowed when looking for a specific
      51             :  * time. This is useful so users don't have to know the specific time to machine
      52             :  * precision.
      53             :  * \param check_frame Whether to check the frame in the subfile or not.
      54             :  */
      55             : template <typename Frame>
      56           1 : ylm::Strahlkorper<Frame> read_surface_ylm_single_time(
      57             :     const std::string& file_name, const std::string& surface_subfile_name,
      58             :     double time, double relative_epsilon, bool check_frame = true);
      59             : }  // namespace ylm

Generated by: LCOV version 1.14