xref: /libCEED/examples/petsc/include/sphereproblemdata.h (revision 4f19f491a454b5597e5146ab3a5609861c5b4955)
1 #ifndef libceed_petsc_examples_sphere_problem_data_h
2 #define libceed_petsc_examples_sphere_problem_data_h
3 
4 #include <ceed.h>
5 #include <petsc.h>
6 #include "../include/structs.h"
7 #include "../qfunctions/bps/bp1sphere.h"
8 #include "../qfunctions/bps/bp2sphere.h"
9 #include "../qfunctions/bps/bp3sphere.h"
10 #include "../qfunctions/bps/bp4sphere.h"
11 #include "../qfunctions/bps/common.h"
12 
13 // -----------------------------------------------------------------------------
14 // BP Option Data
15 // -----------------------------------------------------------------------------
16 
17 static 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   },
36   [CEED_BP2] = {
37     .num_comp_u = 3,
38     .num_comp_x = 3,
39     .topo_dim = 3,
40     .q_data_size = 1,
41     .q_extra = 1,
42     .setup_geo = SetupMassGeo,
43     .setup_rhs = SetupMassRhs3,
44     .apply = Mass3,
45     .error = Error3,
46     .setup_geo_loc = SetupMassGeo_loc,
47     .setup_rhs_loc = SetupMassRhs3_loc,
48     .apply_loc = Mass3_loc,
49     .error_loc = Error3_loc,
50     .in_mode = CEED_EVAL_INTERP,
51     .out_mode = CEED_EVAL_INTERP,
52     .q_mode = CEED_GAUSS
53   },
54   [CEED_BP3] = {
55     .num_comp_u = 1,
56     .num_comp_x = 3,
57     .topo_dim = 3,
58     .q_data_size = 4,
59     .q_extra = 1,
60     .setup_geo = SetupDiffGeo,
61     .setup_rhs = SetupDiffRhs,
62     .apply = Diff,
63     .error = Error,
64     .setup_geo_loc = SetupDiffGeo_loc,
65     .setup_rhs_loc = SetupDiffRhs_loc,
66     .apply_loc = Diff_loc,
67     .error_loc = Error_loc,
68     .in_mode = CEED_EVAL_GRAD,
69     .out_mode = CEED_EVAL_GRAD,
70     .q_mode = CEED_GAUSS
71   },
72   [CEED_BP4] = {
73     .num_comp_u = 3,
74     .num_comp_x = 3,
75     .topo_dim = 3,
76     .q_data_size = 4,
77     .q_extra = 1,
78     .setup_geo = SetupDiffGeo,
79     .setup_rhs = SetupDiffRhs3,
80     .apply = Diff3,
81     .error = Error3,
82     .setup_geo_loc = SetupDiffGeo_loc,
83     .setup_rhs_loc = SetupDiffRhs3_loc,
84     .apply_loc = Diff_loc,
85     .error_loc = Error3_loc,
86     .in_mode = CEED_EVAL_GRAD,
87     .out_mode = CEED_EVAL_GRAD,
88     .q_mode = CEED_GAUSS
89   },
90   [CEED_BP5] = {
91     .num_comp_u = 1,
92     .num_comp_x = 3,
93     .topo_dim = 3,
94     .q_data_size = 4,
95     .q_extra = 0,
96     .setup_geo = SetupDiffGeo,
97     .setup_rhs = SetupDiffRhs,
98     .apply = Diff,
99     .error = Error,
100     .setup_geo_loc = SetupDiffGeo_loc,
101     .setup_rhs_loc = SetupDiffRhs_loc,
102     .apply_loc = Diff_loc,
103     .error_loc = Error_loc,
104     .in_mode = CEED_EVAL_GRAD,
105     .out_mode = CEED_EVAL_GRAD,
106     .q_mode = CEED_GAUSS_LOBATTO
107   },
108   [CEED_BP6] = {
109     .num_comp_u = 3,
110     .num_comp_x = 3,
111     .topo_dim = 3,
112     .q_data_size = 4,
113     .q_extra = 0,
114     .setup_geo = SetupDiffGeo,
115     .setup_rhs = SetupDiffRhs3,
116     .apply = Diff3,
117     .error = Error3,
118     .setup_geo_loc = SetupDiffGeo_loc,
119     .setup_rhs_loc = SetupDiffRhs3_loc,
120     .apply_loc = Diff_loc,
121     .error_loc = Error3_loc,
122     .in_mode = CEED_EVAL_GRAD,
123     .out_mode = CEED_EVAL_GRAD,
124     .q_mode = CEED_GAUSS_LOBATTO
125   }
126 };
127 
128 #endif // libceed_petsc_examples_sphere_problem_data_h
129