SpECTRE Documentation Coverage Report
Current view: top level - Evolution/Systems/NewtonianEuler/FiniteDifference - Reconstructor.hpp Coverage Total Hit
Commit: 0d1d717af84a81fb1284a20c4013708fe85cc2f0 Lines: 8.3 % 12 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 <memory>
       7              : #include <pup.h>
       8              : 
       9              : #include "Utilities/Serialization/CharmPupable.hpp"
      10              : #include "Utilities/TMPL.hpp"
      11              : 
      12              : namespace NewtonianEuler::fd {
      13              : /// \cond
      14              : template <size_t Dim>
      15              : class AoWeno53Prim;
      16              : template <size_t Dim>
      17              : class MonotonisedCentralPrim;
      18              : /// \endcond
      19              : 
      20              : /*!
      21              :  * \brief The base class from which all reconstruction schemes must inherit
      22              :  *
      23              :  * Currently we have hard-coded reconstructing \f$\rho, p, v^i\f$. However, the
      24              :  * DG-subcell solver is coded generally enough that an efficient implementation
      25              :  * of reconstructing the conserved or characteristic variables is also possible.
      26              :  * It is not yet clear how much info about what is being reconstructed is needed
      27              :  * at compile time and so we currently append `Prim` to the end of the
      28              :  * reconstruction schemes to clarify that they are reconstructing the primitive
      29              :  * variables. Ideally the choice of what variables to reconstruct can be made by
      30              :  * a runtime argument to the individual reconstruction schemes.
      31              :  */
      32              : template <size_t Dim>
      33            1 : class Reconstructor : public PUP::able {
      34              :  public:
      35            0 :   Reconstructor() = default;
      36            0 :   Reconstructor(const Reconstructor&) = default;
      37            0 :   Reconstructor& operator=(const Reconstructor&) = default;
      38            0 :   Reconstructor(Reconstructor&&) = default;
      39            0 :   Reconstructor& operator=(Reconstructor&&) = default;
      40            0 :   ~Reconstructor() override = default;
      41              : 
      42              :   /// \cond
      43              :   explicit Reconstructor(CkMigrateMessage* msg);
      44              :   WRAPPED_PUPable_abstract(Reconstructor<Dim>);  // NOLINT
      45              :   /// \endcond
      46              : 
      47            0 :   using creatable_classes =
      48              :       tmpl::list<AoWeno53Prim<Dim>, MonotonisedCentralPrim<Dim>>;
      49              : 
      50            0 :   virtual std::unique_ptr<Reconstructor<Dim>> get_clone() const = 0;
      51              : 
      52            0 :   virtual size_t ghost_zone_size() const = 0;
      53              : 
      54            0 :   void pup(PUP::er& p) override;
      55              : };
      56              : }  // namespace NewtonianEuler::fd
        

Generated by: LCOV version 2.0-1