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