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