diff options
author | schnetter <> | 2002-01-09 16:45:00 +0000 |
---|---|---|
committer | schnetter <> | 2002-01-09 16:45:00 +0000 |
commit | bf64f8c277ebf0d4227ca977b4ea0269f6b214b3 (patch) | |
tree | 22be9f12c3ee56095b239d68fee8b43ca6808eff /Carpet/Carpet/src/carpet_public.hh | |
parent | ce7a2ac4d79e4955ff4b8e56130a48f5f9a6dd39 (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.hh | 40 |
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) \ |