xref: /libCEED/examples/petsc/include/areaproblemdata.h (revision e83e87a50f1b2e8810b376a735430565127e4d25)
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 problemOptions[6] = {
20   [CUBE] = {
21     .ncompx = 3,
22     .ncompu = 1,
23     .topodim = 2,
24     .qdatasize = 1,
25     .qextra = 1,
26     .setupgeo = SetupMassGeoCube,
27     .apply = Mass,
28     .setupgeofname = SetupMassGeoCube_loc,
29     .applyfname = Mass_loc,
30     .inmode = CEED_EVAL_INTERP,
31     .outmode = CEED_EVAL_INTERP,
32     .qmode = CEED_GAUSS,
33     .enforcebc = PETSC_FALSE,
34   },
35   [SPHERE] = {
36     .ncompx = 3,
37     .ncompu = 1,
38     .topodim = 2,
39     .qdatasize = 1,
40     .qextra = 1,
41     .setupgeo = SetupMassGeoSphere,
42     .apply = Mass,
43     .setupgeofname = SetupMassGeoSphere_loc,
44     .applyfname = Mass_loc,
45     .inmode = CEED_EVAL_INTERP,
46     .outmode = CEED_EVAL_INTERP,
47     .qmode = CEED_GAUSS,
48     .enforcebc = PETSC_FALSE,
49   }
50 };
51 
52 #endif // areaproblemdata_h
53