xref: /libCEED/examples/petsc/include/bpsproblemdata.h (revision 0a8fc04aa76b8d5898a4cfd37f025c6b01429032)
1 #ifndef libceed_petsc_examples_bps_problem_data_h
2 #define libceed_petsc_examples_bps_problem_data_h
3 
4 #include <ceed.h>
5 #include <petsc.h>
6 #include "../include/structs.h"
7 #include "../qfunctions/bps/bp1.h"
8 #include "../qfunctions/bps/bp2.h"
9 #include "../qfunctions/bps/bp3.h"
10 #include "../qfunctions/bps/bp4.h"
11 #include "../qfunctions/bps/common.h"
12 
13 // -----------------------------------------------------------------------------
14 // BP Option Data
15 // -----------------------------------------------------------------------------
16 
17 BPData bp_options[6] = {
18   [CEED_BP1] = {
19     .num_comp_u = 1,
20     .num_comp_x = 3,
21     .topo_dim = 3,
22     .q_data_size = 1,
23     .q_extra = 1,
24     .setup_geo = SetupMassGeo,
25     .setup_rhs = SetupMassRhs,
26     .apply = Mass,
27     .error = Error,
28     .setup_geo_loc = SetupMassGeo_loc,
29     .setup_rhs_loc = SetupMassRhs_loc,
30     .apply_loc = Mass_loc,
31     .error_loc = Error_loc,
32     .in_mode = CEED_EVAL_INTERP,
33     .out_mode = CEED_EVAL_INTERP,
34     .q_mode = CEED_GAUSS,
35     .enforce_bc = PETSC_FALSE
36   },
37   [CEED_BP2] = {
38     .num_comp_u = 3,
39     .num_comp_x = 3,
40     .topo_dim = 3,
41     .q_data_size = 1,
42     .q_extra = 1,
43     .setup_geo = SetupMassGeo,
44     .setup_rhs = SetupMassRhs3,
45     .apply = Mass3,
46     .error = Error3,
47     .setup_geo_loc = SetupMassGeo_loc,
48     .setup_rhs_loc = SetupMassRhs3_loc,
49     .apply_loc = Mass3_loc,
50     .error_loc = Error3_loc,
51     .in_mode = CEED_EVAL_INTERP,
52     .out_mode = CEED_EVAL_INTERP,
53     .q_mode = CEED_GAUSS,
54     .enforce_bc = PETSC_FALSE
55   },
56   [CEED_BP3] = {
57     .num_comp_u = 1,
58     .num_comp_x = 3,
59     .topo_dim = 3,
60     .q_data_size = 7,
61     .q_extra = 1,
62     .setup_geo = SetupDiffGeo,
63     .setup_rhs = SetupDiffRhs,
64     .apply = Diff,
65     .error = Error,
66     .setup_geo_loc = SetupDiffGeo_loc,
67     .setup_rhs_loc = SetupDiffRhs_loc,
68     .apply_loc = Diff_loc,
69     .error_loc = Error_loc,
70     .in_mode = CEED_EVAL_GRAD,
71     .out_mode = CEED_EVAL_GRAD,
72     .q_mode = CEED_GAUSS,
73     .enforce_bc = PETSC_TRUE
74   },
75   [CEED_BP4] = {
76     .num_comp_u = 3,
77     .num_comp_x = 3,
78     .topo_dim = 3,
79     .q_data_size = 7,
80     .q_extra = 1,
81     .setup_geo = SetupDiffGeo,
82     .setup_rhs = SetupDiffRhs3,
83     .apply = Diff3,
84     .error = Error3,
85     .setup_geo_loc = SetupDiffGeo_loc,
86     .setup_rhs_loc = SetupDiffRhs3_loc,
87     .apply_loc = Diff3_loc,
88     .error_loc = Error3_loc,
89     .in_mode = CEED_EVAL_GRAD,
90     .out_mode = CEED_EVAL_GRAD,
91     .q_mode = CEED_GAUSS,
92     .enforce_bc = PETSC_TRUE
93   },
94   [CEED_BP5] = {
95     .num_comp_u = 1,
96     .num_comp_x = 3,
97     .topo_dim = 3,
98     .q_data_size = 7,
99     .q_extra = 0,
100     .setup_geo = SetupDiffGeo,
101     .setup_rhs = SetupDiffRhs,
102     .apply = Diff,
103     .error = Error,
104     .setup_geo_loc = SetupDiffGeo_loc,
105     .setup_rhs_loc = SetupDiffRhs_loc,
106     .apply_loc = Diff_loc,
107     .error_loc = Error_loc,
108     .in_mode = CEED_EVAL_GRAD,
109     .out_mode = CEED_EVAL_GRAD,
110     .q_mode = CEED_GAUSS_LOBATTO,
111     .enforce_bc = PETSC_TRUE
112   },
113   [CEED_BP6] = {
114     .num_comp_u = 3,
115     .num_comp_x = 3,
116     .topo_dim = 3,
117     .q_data_size = 7,
118     .q_extra = 0,
119     .setup_geo = SetupDiffGeo,
120     .setup_rhs = SetupDiffRhs3,
121     .apply = Diff3,
122     .error = Error3,
123     .setup_geo_loc = SetupDiffGeo_loc,
124     .setup_rhs_loc = SetupDiffRhs3_loc,
125     .apply_loc = Diff3_loc,
126     .error_loc = Error3_loc,
127     .in_mode = CEED_EVAL_GRAD,
128     .out_mode = CEED_EVAL_GRAD,
129     .q_mode = CEED_GAUSS_LOBATTO,
130     .enforce_bc = PETSC_TRUE
131   }
132 };
133 
134 #endif // libceed_petsc_examples_bps_problem_data_h
135