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 : 11 : namespace evolution { 12 : /*! 13 : * \brief The base class used to create boundary corrections from input files 14 : * and store them in the global cache. 15 : */ 16 1 : class BoundaryCorrection : public PUP::able { 17 : public: 18 0 : BoundaryCorrection() = default; 19 0 : BoundaryCorrection(const BoundaryCorrection&) = default; 20 0 : BoundaryCorrection& operator=(const BoundaryCorrection&) = default; 21 0 : BoundaryCorrection(BoundaryCorrection&&) = default; 22 0 : BoundaryCorrection& operator=(BoundaryCorrection&&) = default; 23 0 : ~BoundaryCorrection() override = default; 24 : 25 0 : explicit BoundaryCorrection(CkMigrateMessage* msg) : PUP::able(msg) {} 26 : 27 : /// \cond 28 : WRAPPED_PUPable_abstract(BoundaryCorrection); // NOLINT 29 : /// \endcond 30 : 31 0 : virtual std::unique_ptr<BoundaryCorrection> get_clone() const = 0; 32 : }; 33 : } // namespace evolution