ABLATE Source Documentation  0.12.33
modifier.hpp
1 #ifndef ABLATELIBRARY_MODIFIER_HPP
2 #define ABLATELIBRARY_MODIFIER_HPP
3 
4 #include <petsc.h>
5 #include <iostream>
6 
7 namespace ablate::domain::modifiers {
8 class Modifier {
9  public:
10  virtual ~Modifier() = default;
11 
12  virtual void Modify(DM&) = 0;
13 
14  virtual std::string ToString() const = 0;
15 
16  protected:
17  static void ReplaceDm(DM& originalDm, DM& replaceDm);
18 };
19 
20 std::ostream& operator<<(std::ostream& os, const Modifier& modifier);
21 
22 } // namespace ablate::domain::modifiers
23 
24 #endif // ABLATELIBRARY_MODIFIER_HPP
Definition: modifier.hpp:8