SpECTRE Documentation Coverage Report
Current view: top level - Evolution/Systems/NewtonianEuler/FiniteDifference - Reconstructor.hpp Hit Total Coverage
Commit: aabde07399ba7837e5db64eedfd0a21f31f96922 Lines: 1 12 8.3 %
Date: 2024-04-26 02:38:13
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 1.14