xref: /libCEED/examples/petsc/include/areaproblemdata.h (revision caa531a793f3d84584e9b27c52e9992c3cc5ab43)
1 #ifndef areaproblemdata_h
2 #define areaproblemdata_h
3 
4 #include <ceed.h>
5 #include <petsc.h>
6 #include "../include/structs.h"
7 #include "../qfunctions/area/areacube.h"
8 #include "../qfunctions/area/areasphere.h"
9 
10 // -----------------------------------------------------------------------------
11 // Problem Option Data
12 // -----------------------------------------------------------------------------
13 
14 // Problem options
15 typedef enum {
16   CUBE = 0, SPHERE = 1
17 } ProblemType;
18 
19 static BPData problem_options[6] = {
20   [CUBE] = {
21     .num_comp_x = 3,
22     .num_comp_u = 1,
23     .topo_dim = 2,
24     .q_data_size = 1,
25     .q_extra = 1,
26     .setup_geo = SetupMassGeoCube,
27     .apply = Mass,
28     .setup_geo_loc = SetupMassGeoCube_loc,
29     .apply_loc = Mass_loc,
30     .in_mode = CEED_EVAL_INTERP,
31     .out_mode = CEED_EVAL_INTERP,
32     .q_mode = CEED_GAUSS,
33     .enforce_bc = PETSC_FALSE,
34   },
35   [SPHERE] = {
36     .num_comp_x = 3,
37     .num_comp_u = 1,
38     .topo_dim = 2,
39     .q_data_size = 1,
40     .q_extra = 1,
41     .setup_geo = SetupMassGeoSphere,
42     .apply = Mass,
43     .setup_geo_loc = SetupMassGeoSphere_loc,
44     .apply_loc = Mass_loc,
45     .in_mode = CEED_EVAL_INTERP,
46     .out_mode = CEED_EVAL_INTERP,
47     .q_mode = CEED_GAUSS,
48     .enforce_bc = PETSC_FALSE,
49   }
50 };
51 
52 #endif // areaproblemdata_h
53