Reconstructor.hpp
1 // Distributed under the MIT License.
2 // See LICENSE.txt for details.
3 
4 #pragma once
5 
6 #include <memory>
7 #include <pup.h>
8 
10 #include "Utilities/TMPL.hpp"
11 
13 /*!
14  * \brief The base class from which all reconstruction schemes must inherit
15  */
16 class Reconstructor : public PUP::able {
17  public:
18  Reconstructor() = default;
19  Reconstructor(const Reconstructor&) = default;
20  Reconstructor& operator=(const Reconstructor&) = default;
21  Reconstructor(Reconstructor&&) = default;
22  Reconstructor& operator=(Reconstructor&&) = default;
23  ~Reconstructor() override = default;
24 
25  /// \cond
26  explicit Reconstructor(CkMigrateMessage* msg) noexcept;
28  /// \endcond
29 
30  using creatable_classes = tmpl::list<>;
31 
32  virtual std::unique_ptr<Reconstructor> get_clone() const noexcept = 0;
33 
34  virtual size_t ghost_zone_size() const noexcept = 0;
35 
36  void pup(PUP::er& p) override;
37 };
38 } // namespace grmhd::ValenciaDivClean::fd
CharmPupable.hpp
grmhd::ValenciaDivClean::fd
Finite difference functionality for the ValenciaDivClean form of the GRMHD equations.
Definition: FiniteDifference.hpp:9
WRAPPED_PUPable_abstract
#define WRAPPED_PUPable_abstract(className)
Wraps the Charm++ macro, see the Charm++ documentation.
Definition: CharmPupable.hpp:41
grmhd::ValenciaDivClean::fd::Reconstructor
The base class from which all reconstruction schemes must inherit.
Definition: Reconstructor.hpp:16
memory
std::unique_ptr
TMPL.hpp