SpECTRE Documentation Coverage Report
Current view: top level - IO/H5 - StellarCollapseEos.hpp Coverage Total Hit
Commit: 0d1d717af84a81fb1284a20c4013708fe85cc2f0 Lines: 66.7 % 9 6
Test Date: 2026-10-22 17:29:42
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 class h5::StellarCollapseEos
       6              : 
       7              : #pragma once
       8              : 
       9              : #include <hdf5.h>
      10              : #include <string>
      11              : #include <vector>
      12              : 
      13              : #include "DataStructures/BoostMultiArray.hpp"
      14              : #include "IO/H5/Object.hpp"
      15              : #include "IO/H5/OpenGroup.hpp"
      16              : 
      17              : namespace h5 {
      18              : /*!
      19              :  * \ingroup HDF5Group
      20              :  * \brief Reads in tabulated equation of state file from
      21              :  * [stellarcollapse.org](https://stellarcollapse.org)
      22              :  *
      23              :  * Reads in H5 file containing data for tabulated equation of state.
      24              :  * Contains functions to obtain thermodynamic quantities from the file,
      25              :  * stored as either rank-1 or rank-3 datasets.
      26              :  *
      27              :  * It is assumed that the file is in the format of the
      28              :  * [SRO (Schneider, Roberts, Ott 2017) Equation of State files](https://
      29              :  * stellarcollapse.org/SROEOS)
      30              :  *
      31              :  * The description of each dataset in the file can be found
      32              :  * [here](https://bitbucket.org/andschn/sroeos/src/master/
      33              :  * User_Guide/User_Guide.pdf?fileviewer=file-view-default)
      34              :  *
      35              :  */
      36            1 : class StellarCollapseEos : public h5::Object {
      37              :  public:
      38              :   /// \cond
      39              :   // The root-level HDF5 group in the SRO Equation of State files does not
      40              :   // have an extension in its group name
      41              :   static std::string extension() { return ""; }
      42              : 
      43              :   StellarCollapseEos(bool exists, detail::OpenGroup&& group, hid_t location,
      44              :                      const std::string& name);
      45              : 
      46              :   StellarCollapseEos(const StellarCollapseEos& /*rhs*/) = delete;
      47              :   StellarCollapseEos& operator=(const StellarCollapseEos& /*rhs*/) = delete;
      48              :   StellarCollapseEos(StellarCollapseEos&& /*rhs*/) = delete;
      49              :   StellarCollapseEos& operator=(StellarCollapseEos&& /*rhs*/) = delete;
      50              : 
      51              :   ~StellarCollapseEos() override = default;
      52              :   /// \endcond
      53              : 
      54              :   /*!
      55              :    * \ingroup HDF5Group
      56              :    * \brief reads a rank-0 dataset (contains only one element)
      57              :    */
      58              :   template <typename T>
      59            1 :   T get_scalar_dataset(const std::string& dataset_name) const;
      60              : 
      61              :   /*!
      62              :    * \ingroup HDF5Group
      63              :    * \brief reads a dataset with elements along 1 dimension
      64              :    */
      65            1 :   std::vector<double> get_rank1_dataset(const std::string& dataset_name) const;
      66              : 
      67              :   /*!
      68              :    * \ingroup HDF5Group
      69              :    * \brief reads a dataset with elements along 3 dimensions
      70              :    */
      71            1 :   boost::multi_array<double, 3> get_rank3_dataset(
      72              :       const std::string& dataset_name) const;
      73              : 
      74            1 :   const std::string& subfile_path() const override { return path_; }
      75              : 
      76              :  private:
      77            0 :   detail::OpenGroup root_group_;
      78            0 :   detail::OpenGroup group_;
      79            0 :   std::string path_;
      80              : };
      81              : }  // namespace h5
        

Generated by: LCOV version 2.0-1