summaryrefslogtreecommitdiff
path: root/src/include/Groups.h
blob: 8cd9ef5d61b07620aeb4d9f835dd7b2f4166ef60 (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
 /*@@
   @header    Groups.h
   @date      Mon Feb  8 14:47:10 1999
   @author    Tom Goodale
   @desc 
   Prototypes and constants for group functions.
   @enddesc 
   @version $Header$
 @@*/

#ifndef _GROUPS_H_
#define _GROUPS_H_

/* Prototypes */

#ifdef __cplusplus 
extern "C" {
#endif

int CCTK_CreateGroup(const char *gname, const char *thorn, const char *imp,
		     const char *gtype,
		     const char *vtype,
		     const char *gscope,
		     int dimension,
		     int ntimelevels,
		     int n_variables,
		     ...);

int CCTK_GroupIndex(const char *groupname);

int CCTK_VarIndex(const char *variablename);

char *CCTK_GroupNameFromVarI(int var);

int CCTK_GroupIndexFromVarI(int var);

char *CCTK_FullName(int var);

char *CCTK_ImpFromVarI(int var);

int CCTK_MaxDim(void);

int CCTK_NumVars(void);

int CCTK_NumGroups(void);

int CCTK_GroupTypeNumber(const char *type);

int CCTK_VarTypeNumber(const char *type);

int CCTK_GroupScopeNumber(const char *type);

int CCTK_GroupData(int group, 
		      int *gtype, 
		      int *vtype, 
		      int *dim, 
		      int *n_variables,
		      int *n_timelevels);

char *CCTK_VarName(int varnum);

int CCTK_DecomposeName(const char *fullname, char **implementation, char **name);

char *CCTK_GroupName(int varnum);

int CCTK_GroupTypeFromVar(int var);

int CCTK_VarType(int var);

int CCTK_NumTimeLevelsFromVar(const char *var);
int CCTK_NumTimeLevelsFromVarI(int var);

int CCTK_FirstVarIndex(const char *group);
int CCTK_FirstVarIndexI(int group);

int CCTK_NumVarsInGroup(const char *group);
int CCTK_NumVarsInGroupI(int group);

#ifdef __cplusplus 
}
#endif


/* Group Types */

#define GROUP_SCALAR 1
#define GROUP_GF     2
#define GROUP_ARRAY  3

#define GROUP_PRIVATE   1
#define GROUP_PROTECTED 2
#define GROUP_PUBLIC    3

#endif