aboutsummaryrefslogtreecommitdiff
path: root/Carpet/Carpet/src/variables.cc
blob: 12891a8c483db79ec6c1fe7ae9f8e02f8309ccd9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#include "variables.hh"

extern "C" {
  static const char* rcsid = "$Header:$";
  CCTK_FILEVERSION(Carpet_Carpet_variables_cc);
}

namespace Carpet {
  
  using namespace std;
  
  
  
  // Handle from CCTK_RegisterGHExtension
  int GHExtension;
  
  // Maximum number of refinement levels
  int maxreflevels;
  
  // Refinement levels
  int reflevels;
  
  // Refinement factor
  int reffact;
  
  // Refinement factor on finest grid
  int maxreflevelfact;
  
  // Base multigrid level
  int basemglevel;
  
  // Multigrid levels
  int mglevels;
  
  // Multigrid factor
  int mgfact;
  
  // Multigrid factor on coarsest grid
  int maxmglevelfact;
  
  // Maps
  int maps;
  
  
  
  // Current position on the grid hierarchy
  int reflevel;
  int mglevel;
  int map;
  int component;
  
  // refinement factor of current level: ipow(refinement_factor, reflevel)
  int reflevelfact;
  
  // multigrid factor of current level: ipow(multigrid_factor, mglevel)
  int mglevelfact;
  
  
  
  // Carpet's GH
  CarpetGH carpetGH;
  
  
  
  // Times and spaces on the refinement levels
  CCTK_REAL global_time;
  vector<vector<CCTK_REAL> > leveltimes; // [mglevel][reflevel]
  CCTK_REAL delta_time;
  
  vector<vect<CCTK_REAL,dim> > origin_space; // [mglevel]
  vect<CCTK_REAL,dim> delta_space;
  
  
  
  // Is this the time for a global mode call?
  bool do_meta_mode;
  bool do_global_mode;
  
  // Is prolongation enabled?
  bool do_prolongate;
  
  
  
  // Data for grid functions
  
  // The grid hierarchy
  vector<gh<dim>*> vhh;         // [map]
  vector<dh<dim>*> vdd;         // [map]
  vector<th<dim>*> vtt;         // [map]

  // Data for the groups
  vector<groupdesc> groupdata;  // [group]
  
  // Data for everything
  vector<vector<arrdesc> > arrdata; // [group][map]
  
} // namespace Carpet