summaryrefslogtreecommitdiff
path: root/src/include/Groups.h
blob: a76e55e4f46705272ecfd3f5f276822db876b2dc (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_GetGroupIndex(const char *groupname);

int CCTK_GetVarIndex(const char *variablename);

char *CCTK_GetGroupNameFromVar_ByIndex(int var);

int CCTK_GetGroupIndexFromVar_ByIndex(int var);

char *CCTK_GetFullName(int var);

char *CCTK_GetImplementationFromVar(int var);

int CCTK_GetMaxDim(void);

int CCTK_GetNumVars(void);

int CCTK_GetNumGroups(void);

int CCTK_GTypeNumber(const char *type);

int CCTK_VTypeNumber(const char *type);

int CCTK_GScopeNumber(const char *type);

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

char *CCTK_GetVarName(int varnum);

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

char *CCTK_GetGroupName(int varnum);

int CCTK_GetVarGType(int var);

int CCTK_GetVarVType(int var);

int CCTK_GetNumTimeLevels(const char *var);
int CCTK_GetNumTimeLevels_ByIndex(int var);

int CCTK_GetFirstVarIndex(const char *group);
int CCTK_GetFirstVarIndex_ByIndex(int group);

int CCTK_GetNumVarsInGroup(const char *group);
int CCTK_GetNumVarsInGroup_ByIndex(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