BoundaryCondition.hpp
1 // Distributed under the MIT License.
2 // See LICENSE.txt for details.
3 
4 #pragma once
5 
6 #include <pup.h>
7 
8 #include "Domain/BoundaryConditions/BoundaryCondition.hpp"
9 #include "Domain/BoundaryConditions/Periodic.hpp"
10 #include "Utilities/TMPL.hpp"
11 
12 /// \cond
14 class Dirichlet;
15 class DirichletAnalytic;
16 class Outflow;
17 } // namespace Burgers::BoundaryConditions
18 /// \endcond
19 
20 /// \brief Boundary conditions for the Burgers system
22 /// \brief The base class off of which all boundary conditions must inherit
24  public:
25  using creatable_classes =
26  tmpl::list<Dirichlet, DirichletAnalytic, Outflow,
28 
29  BoundaryCondition() = default;
30  BoundaryCondition(BoundaryCondition&&) noexcept = default;
31  BoundaryCondition& operator=(BoundaryCondition&&) noexcept = default;
32  BoundaryCondition(const BoundaryCondition&) = default;
33  BoundaryCondition& operator=(const BoundaryCondition&) = default;
34  ~BoundaryCondition() override = default;
35 
36  explicit BoundaryCondition(CkMigrateMessage* msg) noexcept;
37 
38  void pup(PUP::er& p) override;
39 };
40 } // namespace Burgers::BoundaryConditions
Burgers::BoundaryConditions::Dirichlet
Definition: Dirichlet.hpp:35
domain::BoundaryConditions::BoundaryCondition
Base class from which all system-specific base classes must inherit.
Definition: BoundaryCondition.hpp:18
Burgers::BoundaryConditions
Boundary conditions for the Burgers system.
Definition: BoundaryCondition.hpp:21
elliptic::BoundaryConditionType::Dirichlet
@ Dirichlet
Dirichlet boundary conditions like .
domain::BoundaryConditions::Periodic
Periodic boundary conditions.
Definition: Periodic.hpp:47
Burgers::BoundaryConditions::DirichletAnalytic
Definition: DirichletAnalytic.hpp:35
Burgers::BoundaryConditions::BoundaryCondition
The base class off of which all boundary conditions must inherit.
Definition: BoundaryCondition.hpp:23
Burgers::BoundaryConditions::Outflow
Definition: Outflow.hpp:24
TMPL.hpp