xref: /libCEED/examples/petsc/include/bpsproblemdata.h (revision b7c563b6b45e71aa3f6ac850cef50b83565081a6)
1*b7c563b6SJeremy L Thompson #ifndef libceed_petsc_examples_bps_problem_data_h
2*b7c563b6SJeremy L Thompson #define libceed_petsc_examples_bps_problem_data_h
3e83e87a5Sjeremylt 
4e83e87a5Sjeremylt #include <ceed.h>
5e83e87a5Sjeremylt #include <petsc.h>
6e83e87a5Sjeremylt #include "../include/bcfunctions.h"
7e83e87a5Sjeremylt #include "../include/structs.h"
8e83e87a5Sjeremylt #include "../qfunctions/bps/bp1.h"
9e83e87a5Sjeremylt #include "../qfunctions/bps/bp2.h"
10e83e87a5Sjeremylt #include "../qfunctions/bps/bp3.h"
11e83e87a5Sjeremylt #include "../qfunctions/bps/bp4.h"
12e83e87a5Sjeremylt #include "../qfunctions/bps/common.h"
13e83e87a5Sjeremylt 
14e83e87a5Sjeremylt // -----------------------------------------------------------------------------
15e83e87a5Sjeremylt // BP Option Data
16e83e87a5Sjeremylt // -----------------------------------------------------------------------------
17e83e87a5Sjeremylt 
18e83e87a5Sjeremylt // BP options
19e83e87a5Sjeremylt typedef enum {
20e83e87a5Sjeremylt   CEED_BP1 = 0, CEED_BP2 = 1, CEED_BP3 = 2,
21e83e87a5Sjeremylt   CEED_BP4 = 3, CEED_BP5 = 4, CEED_BP6 = 5
229b072555Sjeremylt } BPType;
23e83e87a5Sjeremylt 
249b072555Sjeremylt BPData bp_options[6] = {
25e83e87a5Sjeremylt   [CEED_BP1] = {
269b072555Sjeremylt     .num_comp_u = 1,
279b072555Sjeremylt     .num_comp_x = 3,
289b072555Sjeremylt     .topo_dim = 3,
299b072555Sjeremylt     .q_data_size = 1,
309b072555Sjeremylt     .q_extra = 1,
319b072555Sjeremylt     .setup_geo = SetupMassGeo,
329b072555Sjeremylt     .setup_rhs = SetupMassRhs,
33e83e87a5Sjeremylt     .apply = Mass,
34e83e87a5Sjeremylt     .error = Error,
359b072555Sjeremylt     .setup_geo_loc = SetupMassGeo_loc,
369b072555Sjeremylt     .setup_rhs_loc = SetupMassRhs_loc,
379b072555Sjeremylt     .apply_loc = Mass_loc,
389b072555Sjeremylt     .error_loc = Error_loc,
399b072555Sjeremylt     .in_mode = CEED_EVAL_INTERP,
409b072555Sjeremylt     .out_mode = CEED_EVAL_INTERP,
419b072555Sjeremylt     .q_mode = CEED_GAUSS,
429b072555Sjeremylt     .enforce_bc = PETSC_FALSE,
439b072555Sjeremylt     .bc_func = BCsMass
44e83e87a5Sjeremylt   },
45e83e87a5Sjeremylt   [CEED_BP2] = {
469b072555Sjeremylt     .num_comp_u = 3,
479b072555Sjeremylt     .num_comp_x = 3,
489b072555Sjeremylt     .topo_dim = 3,
499b072555Sjeremylt     .q_data_size = 1,
509b072555Sjeremylt     .q_extra = 1,
519b072555Sjeremylt     .setup_geo = SetupMassGeo,
529b072555Sjeremylt     .setup_rhs = SetupMassRhs3,
53e83e87a5Sjeremylt     .apply = Mass3,
54e83e87a5Sjeremylt     .error = Error3,
559b072555Sjeremylt     .setup_geo_loc = SetupMassGeo_loc,
569b072555Sjeremylt     .setup_rhs_loc = SetupMassRhs3_loc,
579b072555Sjeremylt     .apply_loc = Mass3_loc,
589b072555Sjeremylt     .error_loc = Error3_loc,
599b072555Sjeremylt     .in_mode = CEED_EVAL_INTERP,
609b072555Sjeremylt     .out_mode = CEED_EVAL_INTERP,
619b072555Sjeremylt     .q_mode = CEED_GAUSS,
629b072555Sjeremylt     .enforce_bc = PETSC_FALSE,
639b072555Sjeremylt     .bc_func = BCsMass
64e83e87a5Sjeremylt   },
65e83e87a5Sjeremylt   [CEED_BP3] = {
669b072555Sjeremylt     .num_comp_u = 1,
679b072555Sjeremylt     .num_comp_x = 3,
689b072555Sjeremylt     .topo_dim = 3,
699b072555Sjeremylt     .q_data_size = 7,
709b072555Sjeremylt     .q_extra = 1,
719b072555Sjeremylt     .setup_geo = SetupDiffGeo,
729b072555Sjeremylt     .setup_rhs = SetupDiffRhs,
73e83e87a5Sjeremylt     .apply = Diff,
74e83e87a5Sjeremylt     .error = Error,
759b072555Sjeremylt     .setup_geo_loc = SetupDiffGeo_loc,
769b072555Sjeremylt     .setup_rhs_loc = SetupDiffRhs_loc,
779b072555Sjeremylt     .apply_loc = Diff_loc,
789b072555Sjeremylt     .error_loc = Error_loc,
799b072555Sjeremylt     .in_mode = CEED_EVAL_GRAD,
809b072555Sjeremylt     .out_mode = CEED_EVAL_GRAD,
819b072555Sjeremylt     .q_mode = CEED_GAUSS,
829b072555Sjeremylt     .enforce_bc = PETSC_TRUE,
839b072555Sjeremylt     .bc_func = BCsDiff
84e83e87a5Sjeremylt   },
85e83e87a5Sjeremylt   [CEED_BP4] = {
869b072555Sjeremylt     .num_comp_u = 3,
879b072555Sjeremylt     .num_comp_x = 3,
889b072555Sjeremylt     .topo_dim = 3,
899b072555Sjeremylt     .q_data_size = 7,
909b072555Sjeremylt     .q_extra = 1,
919b072555Sjeremylt     .setup_geo = SetupDiffGeo,
929b072555Sjeremylt     .setup_rhs = SetupDiffRhs3,
93e83e87a5Sjeremylt     .apply = Diff3,
94e83e87a5Sjeremylt     .error = Error3,
959b072555Sjeremylt     .setup_geo_loc = SetupDiffGeo_loc,
969b072555Sjeremylt     .setup_rhs_loc = SetupDiffRhs3_loc,
979b072555Sjeremylt     .apply_loc = Diff3_loc,
989b072555Sjeremylt     .error_loc = Error3_loc,
999b072555Sjeremylt     .in_mode = CEED_EVAL_GRAD,
1009b072555Sjeremylt     .out_mode = CEED_EVAL_GRAD,
1019b072555Sjeremylt     .q_mode = CEED_GAUSS,
1029b072555Sjeremylt     .enforce_bc = PETSC_TRUE,
1039b072555Sjeremylt     .bc_func = BCsDiff
104e83e87a5Sjeremylt   },
105e83e87a5Sjeremylt   [CEED_BP5] = {
1069b072555Sjeremylt     .num_comp_u = 1,
1079b072555Sjeremylt     .num_comp_x = 3,
1089b072555Sjeremylt     .topo_dim = 3,
1099b072555Sjeremylt     .q_data_size = 7,
1109b072555Sjeremylt     .q_extra = 0,
1119b072555Sjeremylt     .setup_geo = SetupDiffGeo,
1129b072555Sjeremylt     .setup_rhs = SetupDiffRhs,
113e83e87a5Sjeremylt     .apply = Diff,
114e83e87a5Sjeremylt     .error = Error,
1159b072555Sjeremylt     .setup_geo_loc = SetupDiffGeo_loc,
1169b072555Sjeremylt     .setup_rhs_loc = SetupDiffRhs_loc,
1179b072555Sjeremylt     .apply_loc = Diff_loc,
1189b072555Sjeremylt     .error_loc = Error_loc,
1199b072555Sjeremylt     .in_mode = CEED_EVAL_GRAD,
1209b072555Sjeremylt     .out_mode = CEED_EVAL_GRAD,
1219b072555Sjeremylt     .q_mode = CEED_GAUSS_LOBATTO,
1229b072555Sjeremylt     .enforce_bc = PETSC_TRUE,
1239b072555Sjeremylt     .bc_func = BCsDiff
124e83e87a5Sjeremylt   },
125e83e87a5Sjeremylt   [CEED_BP6] = {
1269b072555Sjeremylt     .num_comp_u = 3,
1279b072555Sjeremylt     .num_comp_x = 3,
1289b072555Sjeremylt     .topo_dim = 3,
1299b072555Sjeremylt     .q_data_size = 7,
1309b072555Sjeremylt     .q_extra = 0,
1319b072555Sjeremylt     .setup_geo = SetupDiffGeo,
1329b072555Sjeremylt     .setup_rhs = SetupDiffRhs3,
133e83e87a5Sjeremylt     .apply = Diff3,
134e83e87a5Sjeremylt     .error = Error3,
1359b072555Sjeremylt     .setup_geo_loc = SetupDiffGeo_loc,
1369b072555Sjeremylt     .setup_rhs_loc = SetupDiffRhs3_loc,
1379b072555Sjeremylt     .apply_loc = Diff3_loc,
1389b072555Sjeremylt     .error_loc = Error3_loc,
1399b072555Sjeremylt     .in_mode = CEED_EVAL_GRAD,
1409b072555Sjeremylt     .out_mode = CEED_EVAL_GRAD,
1419b072555Sjeremylt     .q_mode = CEED_GAUSS_LOBATTO,
1429b072555Sjeremylt     .enforce_bc = PETSC_TRUE,
1439b072555Sjeremylt     .bc_func = BCsDiff
144e83e87a5Sjeremylt   }
145e83e87a5Sjeremylt };
146e83e87a5Sjeremylt 
147*b7c563b6SJeremy L Thompson #endif // libceed_petsc_examples_bps_problem_data_h
148