xref: /libCEED/examples/petsc/include/bpsproblemdata.h (revision e83e87a50f1b2e8810b376a735430565127e4d25)
1 #ifndef bpsproblemdata_h
2 #define bpsproblemdata_h
3 
4 #include <ceed.h>
5 #include <petsc.h>
6 #include "../include/bcfunctions.h"
7 #include "../include/structs.h"
8 #include "../qfunctions/bps/bp1.h"
9 #include "../qfunctions/bps/bp2.h"
10 #include "../qfunctions/bps/bp3.h"
11 #include "../qfunctions/bps/bp4.h"
12 #include "../qfunctions/bps/common.h"
13 
14 // -----------------------------------------------------------------------------
15 // BP Option Data
16 // -----------------------------------------------------------------------------
17 
18 // BP options
19 typedef enum {
20   CEED_BP1 = 0, CEED_BP2 = 1, CEED_BP3 = 2,
21   CEED_BP4 = 3, CEED_BP5 = 4, CEED_BP6 = 5
22 } bpType;
23 
24 bpData bpOptions[6] = {
25   [CEED_BP1] = {
26     .ncompu = 1,
27     .ncompx = 3,
28     .topodim = 3,
29     .qdatasize = 1,
30     .qextra = 1,
31     .setupgeo = SetupMassGeo,
32     .setuprhs = SetupMassRhs,
33     .apply = Mass,
34     .error = Error,
35     .setupgeofname = SetupMassGeo_loc,
36     .setuprhsfname = SetupMassRhs_loc,
37     .applyfname = Mass_loc,
38     .errorfname = Error_loc,
39     .inmode = CEED_EVAL_INTERP,
40     .outmode = CEED_EVAL_INTERP,
41     .qmode = CEED_GAUSS,
42     .enforcebc = PETSC_FALSE,
43     .bcsfunc = BCsMass
44   },
45   [CEED_BP2] = {
46     .ncompu = 3,
47     .ncompx = 3,
48     .topodim = 3,
49     .qdatasize = 1,
50     .qextra = 1,
51     .setupgeo = SetupMassGeo,
52     .setuprhs = SetupMassRhs3,
53     .apply = Mass3,
54     .error = Error3,
55     .setupgeofname = SetupMassGeo_loc,
56     .setuprhsfname = SetupMassRhs3_loc,
57     .applyfname = Mass3_loc,
58     .errorfname = Error3_loc,
59     .inmode = CEED_EVAL_INTERP,
60     .outmode = CEED_EVAL_INTERP,
61     .qmode = CEED_GAUSS,
62     .enforcebc = PETSC_FALSE,
63     .bcsfunc = BCsMass
64   },
65   [CEED_BP3] = {
66     .ncompu = 1,
67     .ncompx = 3,
68     .topodim = 3,
69     .qdatasize = 7,
70     .qextra = 1,
71     .setupgeo = SetupDiffGeo,
72     .setuprhs = SetupDiffRhs,
73     .apply = Diff,
74     .error = Error,
75     .setupgeofname = SetupDiffGeo_loc,
76     .setuprhsfname = SetupDiffRhs_loc,
77     .applyfname = Diff_loc,
78     .errorfname = Error_loc,
79     .inmode = CEED_EVAL_GRAD,
80     .outmode = CEED_EVAL_GRAD,
81     .qmode = CEED_GAUSS,
82     .enforcebc = PETSC_TRUE,
83     .bcsfunc = BCsDiff
84   },
85   [CEED_BP4] = {
86     .ncompu = 3,
87     .ncompx = 3,
88     .topodim = 3,
89     .qdatasize = 7,
90     .qextra = 1,
91     .setupgeo = SetupDiffGeo,
92     .setuprhs = SetupDiffRhs3,
93     .apply = Diff3,
94     .error = Error3,
95     .setupgeofname = SetupDiffGeo_loc,
96     .setuprhsfname = SetupDiffRhs3_loc,
97     .applyfname = Diff3_loc,
98     .errorfname = Error3_loc,
99     .inmode = CEED_EVAL_GRAD,
100     .outmode = CEED_EVAL_GRAD,
101     .qmode = CEED_GAUSS,
102     .enforcebc = PETSC_TRUE,
103     .bcsfunc = BCsDiff
104   },
105   [CEED_BP5] = {
106     .ncompu = 1,
107     .ncompx = 3,
108     .topodim = 3,
109     .qdatasize = 7,
110     .qextra = 0,
111     .setupgeo = SetupDiffGeo,
112     .setuprhs = SetupDiffRhs,
113     .apply = Diff,
114     .error = Error,
115     .setupgeofname = SetupDiffGeo_loc,
116     .setuprhsfname = SetupDiffRhs_loc,
117     .applyfname = Diff_loc,
118     .errorfname = Error_loc,
119     .inmode = CEED_EVAL_GRAD,
120     .outmode = CEED_EVAL_GRAD,
121     .qmode = CEED_GAUSS_LOBATTO,
122     .enforcebc = PETSC_TRUE,
123     .bcsfunc = BCsDiff
124   },
125   [CEED_BP6] = {
126     .ncompu = 3,
127     .ncompx = 3,
128     .topodim = 3,
129     .qdatasize = 7,
130     .qextra = 0,
131     .setupgeo = SetupDiffGeo,
132     .setuprhs = SetupDiffRhs3,
133     .apply = Diff3,
134     .error = Error3,
135     .setupgeofname = SetupDiffGeo_loc,
136     .setuprhsfname = SetupDiffRhs3_loc,
137     .applyfname = Diff3_loc,
138     .errorfname = Error3_loc,
139     .inmode = CEED_EVAL_GRAD,
140     .outmode = CEED_EVAL_GRAD,
141     .qmode = CEED_GAUSS_LOBATTO,
142     .enforcebc = PETSC_TRUE,
143     .bcsfunc = BCsDiff
144   }
145 };
146 
147 #endif // bpsproblemdata_h
148