xref: /libCEED/examples/petsc/include/bpsproblemdata.h (revision b0d170e7bc2e5c930ee481a47eb73044935a48a4)
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 
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] = {.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     [CEED_BP2] = {.num_comp_u    = 3,
37                   .num_comp_x    = 3,
38                   .topo_dim      = 3,
39                   .q_data_size   = 1,
40                   .q_extra       = 1,
41                   .setup_geo     = SetupMassGeo,
42                   .setup_rhs     = SetupMassRhs3,
43                   .apply         = Mass3,
44                   .error         = Error3,
45                   .setup_geo_loc = SetupMassGeo_loc,
46                   .setup_rhs_loc = SetupMassRhs3_loc,
47                   .apply_loc     = Mass3_loc,
48                   .error_loc     = Error3_loc,
49                   .in_mode       = CEED_EVAL_INTERP,
50                   .out_mode      = CEED_EVAL_INTERP,
51                   .q_mode        = CEED_GAUSS,
52                   .enforce_bc    = PETSC_FALSE},
53     [CEED_BP3] = {.num_comp_u    = 1,
54                   .num_comp_x    = 3,
55                   .topo_dim      = 3,
56                   .q_data_size   = 7,
57                   .q_extra       = 1,
58                   .setup_geo     = SetupDiffGeo,
59                   .setup_rhs     = SetupDiffRhs,
60                   .apply         = Diff,
61                   .error         = Error,
62                   .setup_geo_loc = SetupDiffGeo_loc,
63                   .setup_rhs_loc = SetupDiffRhs_loc,
64                   .apply_loc     = Diff_loc,
65                   .error_loc     = Error_loc,
66                   .in_mode       = CEED_EVAL_GRAD,
67                   .out_mode      = CEED_EVAL_GRAD,
68                   .q_mode        = CEED_GAUSS,
69                   .enforce_bc    = PETSC_TRUE },
70     [CEED_BP4] = {.num_comp_u    = 3,
71                   .num_comp_x    = 3,
72                   .topo_dim      = 3,
73                   .q_data_size   = 7,
74                   .q_extra       = 1,
75                   .setup_geo     = SetupDiffGeo,
76                   .setup_rhs     = SetupDiffRhs3,
77                   .apply         = Diff3,
78                   .error         = Error3,
79                   .setup_geo_loc = SetupDiffGeo_loc,
80                   .setup_rhs_loc = SetupDiffRhs3_loc,
81                   .apply_loc     = Diff3_loc,
82                   .error_loc     = Error3_loc,
83                   .in_mode       = CEED_EVAL_GRAD,
84                   .out_mode      = CEED_EVAL_GRAD,
85                   .q_mode        = CEED_GAUSS,
86                   .enforce_bc    = PETSC_TRUE },
87     [CEED_BP5] = {.num_comp_u    = 1,
88                   .num_comp_x    = 3,
89                   .topo_dim      = 3,
90                   .q_data_size   = 7,
91                   .q_extra       = 0,
92                   .setup_geo     = SetupDiffGeo,
93                   .setup_rhs     = SetupDiffRhs,
94                   .apply         = Diff,
95                   .error         = Error,
96                   .setup_geo_loc = SetupDiffGeo_loc,
97                   .setup_rhs_loc = SetupDiffRhs_loc,
98                   .apply_loc     = Diff_loc,
99                   .error_loc     = Error_loc,
100                   .in_mode       = CEED_EVAL_GRAD,
101                   .out_mode      = CEED_EVAL_GRAD,
102                   .q_mode        = CEED_GAUSS_LOBATTO,
103                   .enforce_bc    = PETSC_TRUE },
104     [CEED_BP6] = {.num_comp_u    = 3,
105                   .num_comp_x    = 3,
106                   .topo_dim      = 3,
107                   .q_data_size   = 7,
108                   .q_extra       = 0,
109                   .setup_geo     = SetupDiffGeo,
110                   .setup_rhs     = SetupDiffRhs3,
111                   .apply         = Diff3,
112                   .error         = Error3,
113                   .setup_geo_loc = SetupDiffGeo_loc,
114                   .setup_rhs_loc = SetupDiffRhs3_loc,
115                   .apply_loc     = Diff3_loc,
116                   .error_loc     = Error3_loc,
117                   .in_mode       = CEED_EVAL_GRAD,
118                   .out_mode      = CEED_EVAL_GRAD,
119                   .q_mode        = CEED_GAUSS_LOBATTO,
120                   .enforce_bc    = PETSC_TRUE }
121 };
122 
123 #endif  // libceed_petsc_examples_bps_problem_data_h
124