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
|