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
|
// $Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/functions.hh,v 1.4 2004/04/18 13:29:43 schnetter Exp $
#ifndef FUNCTIONS_HH
#define FUNCTIONS_HH
#include <vector>
#include "cctk.h"
#include "cctk_Schedule.h"
#include "bbox.hh"
#include "gh.hh"
#include "vect.hh"
#include "defines.hh"
namespace Carpet {
using namespace std;
int SyncGroup (const cGH* cgh, const char* groupname);
int EnableGroupStorage (const cGH* cgh, const char* groupname);
int DisableGroupStorage (const cGH* cgh, const char* groupname);
int EnableGroupComm (const cGH* cgh, const char* groupname);
int DisableGroupComm (const cGH* cgh, const char* groupname);
int Barrier (const cGH* cgh);
int Exit (cGH* cgh, int retval);
int Abort (cGH* cgh, int retval);
int MyProc (const cGH* cgh);
int nProcs (const cGH* cgh);
const int* ArrayGroupSizeB (const cGH* cgh, int dir, int group,
const char* groupname);
int QueryGroupStorageB (const cGH* cgh, int group, const char* groupname);
int GroupDynamicData (const cGH* cgh, int group, cGroupDynamicData* data);
// Helpers for recomposing the grid hierarchy
void CheckRegions (const gh<dim>::rexts & bbsss,
const gh<dim>::rbnds & obss,
const gh<dim>::rprocs& pss);
void OutputGrids (const cGH* cgh, const int m, const gh<dim>& hh);
void OutputGridStructure (const cGH *cgh,
const int m,
const gh<dim>::rexts & bbsss,
const gh<dim>::rbnds & obss,
const gh<dim>::rprocs& pss);
// Functions for recomposing the grid hierarchy
void SplitRegions (const cGH* cgh, vector<ibbox>& bbs,
vector<bbvect>& obs, vector<int>& ps);
void SplitRegions_AlongZ (const cGH* cgh, vector<ibbox>& bbs,
vector<bbvect>& obs, vector<int>& ps);
void SplitRegions_AlongDir (const cGH* cgh, vector<ibbox>& bbs,
vector<bbvect>& obs, vector<int>& ps,
const int dir);
void SplitRegions_Automatic (const cGH* cgh, vector<ibbox>& bbs,
vector<bbvect>& obs, vector<int>& ps);
void MakeMultigridBoxes (const cGH* cgh,
vector<ibbox> const & bbs,
vector<bbvect> const & obs,
vector<vector<ibbox> > & bbss);
} // namespace Carpet
#endif // !defined(FUNCTIONS_HH)
|