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 : #include <string>
9 :
10 : #include "Utilities/Serialization/CharmPupable.hpp"
11 :
12 : /// \ingroup ComputationalDomainGroup
13 : /// \brief %Domain support for applying boundary conditions
14 1 : namespace domain::BoundaryConditions {
15 : /*!
16 : * \brief Base class from which all system-specific base classes must inherit.
17 : */
18 1 : class BoundaryCondition : public PUP::able {
19 : public:
20 0 : BoundaryCondition() = default;
21 0 : BoundaryCondition(BoundaryCondition&&) = default;
22 0 : BoundaryCondition& operator=(BoundaryCondition&&) = default;
23 0 : BoundaryCondition(const BoundaryCondition&) = default;
24 0 : BoundaryCondition& operator=(const BoundaryCondition&) = default;
25 0 : ~BoundaryCondition() override = default;
26 0 : explicit BoundaryCondition(CkMigrateMessage* const msg) : PUP::able(msg) {}
27 0 : WRAPPED_PUPable_abstract(BoundaryCondition); // NOLINT
28 :
29 0 : virtual auto get_clone() const -> std::unique_ptr<BoundaryCondition> = 0;
30 : };
31 : } // namespace domain::BoundaryConditions
|