diff options
author | Erik Schnetter <schnetter@cct.lsu.edu> | 2006-04-13 19:29:00 +0000 |
---|---|---|
committer | Erik Schnetter <schnetter@cct.lsu.edu> | 2006-04-13 19:29:00 +0000 |
commit | fa262cfe1008823367a8869a5fdfb5ace7bc008d (patch) | |
tree | a785a3215c14cffc583775ede837f370adddebe3 /Carpet/Carpet/src/modes.hh | |
parent | 8aae9df385eb364b603c1e4845d9eb0ce66a7410 (diff) |
Carpet: Store number of active time levels per level instead of globally
Store the number of active time levels explicitly for each refinement
level and convergence level.
darcs-hash:20060413192937-dae7b-579ddb7ae741d73bb8bf6e0c87a4bff1c18f7c46.gz
Diffstat (limited to 'Carpet/Carpet/src/modes.hh')
-rw-r--r-- | Carpet/Carpet/src/modes.hh | 74 |
1 files changed, 72 insertions, 2 deletions
diff --git a/Carpet/Carpet/src/modes.hh b/Carpet/Carpet/src/modes.hh index 001e1cc7e..3b1cd873e 100644 --- a/Carpet/Carpet/src/modes.hh +++ b/Carpet/Carpet/src/modes.hh @@ -136,8 +136,8 @@ namespace Carpet { bool done () const; void step (); }; - - + + // Compatibility defines for the mode iterators @@ -315,6 +315,76 @@ namespace Carpet { meta_mode_ = false; \ } while (false) + + + // Mode setters + + class mglevel_setter { + cGH * cgh; + public: + mglevel_setter (cGH const * const cgh, int const ml); + ~mglevel_setter (); + }; + + class reflevel_setter { + cGH * cgh; + public: + reflevel_setter (cGH const * const cgh, int const rl); + ~reflevel_setter (); + }; + + class map_setter { + cGH * cgh; + public: + map_setter (cGH const * const cgh, int const m); + ~map_setter (); + }; + + class component_setter { + cGH * cgh; + public: + component_setter (cGH const * const cgh, int const c); + ~component_setter (); + }; + + + + // Compatibility defines for the mode setters + +#define ENTER_GLOBAL_MODE(cgh, ml) \ + do { \ + mglevel_setter mg_setter_(cgh, ml); \ + { +#define LEAVE_GLOBAL_MODE \ + } \ + } while (false) + +#define ENTER_LEVEL_MODE(cgh, rl) \ + do { \ + reflevel_setter ref_setter_(cgh, rl); \ + { +#define LEAVE_LEVEL_MODE \ + } \ + } while (false) + +#define ENTER_SINGLEMAP_MODE(cgh, m) \ + do { \ + map_setter m_setter_(cgh, m); \ + { +#define LEAVE_SINGLEMAP_MODE \ + } \ + } while (false) + +#define ENTER_LOCAL_MODE(cgh, c) \ + do { \ + component_setter c_setter_(cgh, c); \ + { +#define LEAVE_LOCAL_MODE \ + } \ + } while (false) + + + } // namespace Carpet #endif // !defined(MODES_HH) |