aboutsummaryrefslogtreecommitdiff
path: root/Carpet/Carpet/src/carpet_public.hh
diff options
context:
space:
mode:
authorschnetter <>2002-01-09 16:45:00 +0000
committerschnetter <>2002-01-09 16:45:00 +0000
commitbf64f8c277ebf0d4227ca977b4ea0269f6b214b3 (patch)
tree22be9f12c3ee56095b239d68fee8b43ca6808eff /Carpet/Carpet/src/carpet_public.hh
parentce7a2ac4d79e4955ff4b8e56130a48f5f9a6dd39 (diff)
Further changes to make Carpet work with multiple multigrid levels.
Further changes to make Carpet work with multiple multigrid levels. Fixed one other nasty bug in a prolongation operator. Optimised last remaining non-optimised prolongation operator. darcs-hash:20020109164539-07bb3-6ebee1b591a732eb826557128a2a0bce38151ed1.gz
Diffstat (limited to 'Carpet/Carpet/src/carpet_public.hh')
-rw-r--r--Carpet/Carpet/src/carpet_public.hh40
1 files changed, 32 insertions, 8 deletions
diff --git a/Carpet/Carpet/src/carpet_public.hh b/Carpet/Carpet/src/carpet_public.hh
index 5f097ae33..c16fd743a 100644
--- a/Carpet/Carpet/src/carpet_public.hh
+++ b/Carpet/Carpet/src/carpet_public.hh
@@ -1,4 +1,4 @@
-// $Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/carpet_public.hh,v 1.13 2002/01/09 13:56:25 schnetter Exp $
+// $Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/carpet_public.hh,v 1.14 2002/01/09 17:45:40 schnetter Exp $
// It is assumed that the number of components of all arrays is equal
// to the number of components of the grid functions, and that their
@@ -32,29 +32,35 @@ namespace Carpet {
// Handle from CCTK_RegisterGHExtension
extern int GHExtension;
+ // Multigrid levels
+ extern int mglevels;
+
+ // Multigrid factor
+ extern int mgfact;
+
// Maximum number of refinement levels
extern int maxreflevels;
+ // Multigrid factor on coarsest grid
+ extern int maxmglevelfact;
+
// Refinement factor
extern int reffact;
// Refinement factor on finest grid
extern int maxreflevelfact;
- // Multigrid levels
- extern int mglevels;
-
- // Multigrid factor
- extern int mgfact;
-
// Current iteration per refinement level
extern vector<int> iteration;
// Current position on the grid hierarchy
- extern int reflevel;
extern int mglevel;
+ extern int reflevel;
extern int component;
+ // Current multigrid factor
+ extern int mglevelfact;
+
// Current refinement factor
extern int reflevelfact;
@@ -148,6 +154,24 @@ namespace Carpet {
+ // Multigrid level iterator
+
+#define BEGIN_MGLEVEL_LOOP(cgh) \
+ do { \
+ int _mgl; \
+ assert (mglevel==0); \
+ for (int _ml=mglevels-1; _ml>=0; --_ml) { \
+ set_mglevel ((cGH*)(cgh), _ml); \
+ {
+#define END_MGLEVEL_LOOP(cgh) \
+ } \
+ } \
+ assert (mglevel==0); \
+ _mgl = 0; \
+ } while (0)
+
+
+
// Refinement level iterator
#define BEGIN_REFLEVEL_LOOP(cgh) \