aboutsummaryrefslogtreecommitdiff
path: root/Carpet/Carpet/src/carpet.hh
diff options
context:
space:
mode:
authorschnetter <>2001-07-09 07:00:00 +0000
committerschnetter <>2001-07-09 07:00:00 +0000
commit4f9bcd9dfec80121a7d5d2eb32636aadbd5851bd (patch)
treed0e03dbe5c495cc705b0e961c43fb08f935992f8 /Carpet/Carpet/src/carpet.hh
parent7d15598e09630796312a5cdac178eb9658a44dd0 (diff)
Changed handling of scalars. Scalars are now zero-dimensional arrays.
Changed handling of scalars. Scalars are now zero-dimensional arrays. Now handling CCTK_GroupDynamicData correctly. Now using "include header". Added results of test case. darcs-hash:20010709070002-07bb3-ba0f4339acb8652e35a884fbdf7e8482b7236f8e.gz
Diffstat (limited to 'Carpet/Carpet/src/carpet.hh')
-rw-r--r--Carpet/Carpet/src/carpet.hh193
1 files changed, 2 insertions, 191 deletions
diff --git a/Carpet/Carpet/src/carpet.hh b/Carpet/Carpet/src/carpet.hh
index f3005fb49..c8a55c201 100644
--- a/Carpet/Carpet/src/carpet.hh
+++ b/Carpet/Carpet/src/carpet.hh
@@ -1,198 +1,9 @@
-// $Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/carpet.hh,v 1.11 2001/07/04 12:29:48 schnetter Exp $
+// $Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/carpet.hh,v 1.12 2001/07/09 09:00:13 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
-// distribution onto the processors is the same, and that all
-// processors own the same number of components.
-
-// TODO: treat scalars as arrays with a dimension of zero
-
-#include <vector>
-
-#include "cctk.h"
-#include "cctk_Schedule.h"
-
-#include "Carpet/CarpetLib/src/dh.hh"
-#include "Carpet/CarpetLib/src/ggf.hh"
-#include "Carpet/CarpetLib/src/gh.hh"
-#include "Carpet/CarpetLib/src/th.hh"
+#include "carpet_public.hh"
namespace Carpet {
-
-
- const int dim = 3;
-
-
-
- // Handle from CCTK_RegisterGHExtension
- extern int GHExtension;
-
- // Maximum number of refinement levels
- extern int maxreflevels;
-
- // Refinement factor on finest grid
- extern int maxreflevelfact;
-
- // Current iteration per refinement level
- extern vector<int> iteration;
-
- // Current position on the grid hierarchy
- extern int reflevel;
- extern int mglevel;
- extern int component;
-
- // Current refinement factor
- extern int reflevelfact;
-
- // Time step on base grid
- extern CCTK_REAL base_delta_time;
-
-
-
- // Data for scalars
- struct scdesc {
- vector<vector<vector<void*> > > data; // [var][rl][tl]
- };
- extern vector<scdesc> scdata; // group
-
- // Data for arrays
- struct arrdesc {
- gh<dim>* hh;
- th* tt;
- dh<dim>* dd;
- vector<generic_gf<dim>* > data; // [var]
- int size[dim];
- };
- extern vector<arrdesc> arrdata; // [group]
-
- // Data for grid functions
-
- // The grid hierarchy
- extern gh<dim>* hh;
- extern th* tt;
- extern dh<dim>* dd;
- extern int gfsize[dim];
-
- struct gfdesc {
- vector<generic_gf<dim>*> data; // [var]
- };
- extern vector<gfdesc> gfdata; // [group]
-
- // Checksums
- struct ckdesc {
- bool valid;
- int sum;
- };
- extern vector<vector<vector<vector<ckdesc> > > > checksums; // [n][rl][tl][c]
-
-
-
- // Scheduled functions
- extern "C" {
- int CarpetStartup();
- }
-
- // Registered functions
- void* SetupGH (tFleshConfig* fc, int convLevel, cGH* cgh);
-
- int Initialise (tFleshConfig* config);
- int Evolve (tFleshConfig* config);
- int Shutdown (tFleshConfig* config);
- int CallFunction (void* function, cFunctionData* attribute, void* data);
-
- int SyncGroup (cGH* cgh, const char* groupname);
- int EnableGroupStorage (cGH* cgh, const char* groupname);
- int DisableGroupStorage (cGH* cgh, const char* groupname);
- int EnableGroupComm (cGH* cgh, const char* groupname);
- int DisableGroupComm (cGH* cgh, const char* groupname);
- int Barrier (cGH* cgh);
- int Exit (cGH* cgh, int retval);
- int Abort (cGH* cgh, int retval);
- int MyProc (cGH* cgh);
- int nProcs (cGH* cgh);
- const int* ArrayGroupSizeB (cGH* cgh, int dir, int group,
- const char* groupname);
- int QueryGroupStorageB (cGH* cgh, int group, const char* groupname);
-
-
-
- // Helper functions
- void set_reflevel (cGH* cgh, int rl);
- void set_mglevel (cGH* cgh, int ml);
- void set_component (cGH* cgh, int c);
-
-
-
- // Refinement level iterator
-
-#define BEGIN_REFLEVEL_LOOP(cgh) \
- do { \
- int _rl; \
- assert (reflevel==0); \
- for (;;) { \
- {
-#define END_REFLEVEL_LOOP(cgh) \
- } \
- if (reflevel==maxreflevels-1) break; \
- set_reflevel ((cgh), reflevel+1); \
- } \
- set_reflevel ((cgh), 0); \
- assert (reflevel==0); \
- _rl = 0; \
- } while (0)
-
-
-
- // Reverse refinement level iterator
-
-#define BEGIN_REVERSE_REFLEVEL_LOOP(cgh) \
- do { \
- int _rrl; \
- assert (reflevel==0); \
- set_reflevel ((cgh), maxreflevels-1); \
- for (;;) { \
- {
-#define END_REVERSE_REFLEVEL_LOOP(cgh) \
- } \
- if (reflevel==0) break; \
- set_reflevel ((cgh), reflevel-1); \
- } \
- assert (reflevel==0); \
- _rrl = 0; \
- } while (0)
-
-
-
- // Component iterator
-
-#define BEGIN_COMPONENT_LOOP(cgh) \
- do { \
- int _cl; \
- assert (component==-1); \
- set_component ((cgh), 0); \
- for (;;) { \
- {
-#define END_COMPONENT_LOOP(cgh) \
- } \
- if (component==hh->components(reflevel)-1) break; \
- set_component ((cgh), component+1); \
- } \
- set_component ((cgh), -1); \
- assert (component==-1); \
- _cl = 0; \
- } while (0)
-
-
-
- extern "C" {
- MPI_Comm CarpetMPICommunicator();
- }
-
-
-
- // These are private; don't use these from the outside
-
void Recompose (cGH* cgh);
void CycleTimeLevels (cGH* cgh);
void Restrict (cGH* cgh);