xref: /libCEED/examples/petsc/include/bpsproblemdata.h (revision 2b730f8b5a9c809740a0b3b302db43a719c636b1)
1b7c563b6SJeremy L Thompson #ifndef libceed_petsc_examples_bps_problem_data_h
2b7c563b6SJeremy L Thompson #define libceed_petsc_examples_bps_problem_data_h
3e83e87a5Sjeremylt 
4e83e87a5Sjeremylt #include <ceed.h>
5e83e87a5Sjeremylt #include <petsc.h>
6*2b730f8bSJeremy L Thompson 
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 
189b072555Sjeremylt BPData bp_options[6] = {
19*2b730f8bSJeremy L Thompson     [CEED_BP1] = {.num_comp_u    = 1,
209b072555Sjeremylt                   .num_comp_x    = 3,
219b072555Sjeremylt                   .topo_dim      = 3,
229b072555Sjeremylt                   .q_data_size   = 1,
239b072555Sjeremylt                   .q_extra       = 1,
249b072555Sjeremylt                   .setup_geo     = SetupMassGeo,
259b072555Sjeremylt                   .setup_rhs     = SetupMassRhs,
26e83e87a5Sjeremylt                   .apply         = Mass,
27e83e87a5Sjeremylt                   .error         = Error,
289b072555Sjeremylt                   .setup_geo_loc = SetupMassGeo_loc,
299b072555Sjeremylt                   .setup_rhs_loc = SetupMassRhs_loc,
309b072555Sjeremylt                   .apply_loc     = Mass_loc,
319b072555Sjeremylt                   .error_loc     = Error_loc,
329b072555Sjeremylt                   .in_mode       = CEED_EVAL_INTERP,
339b072555Sjeremylt                   .out_mode      = CEED_EVAL_INTERP,
349b072555Sjeremylt                   .q_mode        = CEED_GAUSS,
35*2b730f8bSJeremy L Thompson                   .enforce_bc    = PETSC_FALSE},
36*2b730f8bSJeremy L Thompson     [CEED_BP2] = {.num_comp_u    = 3,
379b072555Sjeremylt                   .num_comp_x    = 3,
389b072555Sjeremylt                   .topo_dim      = 3,
399b072555Sjeremylt                   .q_data_size   = 1,
409b072555Sjeremylt                   .q_extra       = 1,
419b072555Sjeremylt                   .setup_geo     = SetupMassGeo,
429b072555Sjeremylt                   .setup_rhs     = SetupMassRhs3,
43e83e87a5Sjeremylt                   .apply         = Mass3,
44e83e87a5Sjeremylt                   .error         = Error3,
459b072555Sjeremylt                   .setup_geo_loc = SetupMassGeo_loc,
469b072555Sjeremylt                   .setup_rhs_loc = SetupMassRhs3_loc,
479b072555Sjeremylt                   .apply_loc     = Mass3_loc,
489b072555Sjeremylt                   .error_loc     = Error3_loc,
499b072555Sjeremylt                   .in_mode       = CEED_EVAL_INTERP,
509b072555Sjeremylt                   .out_mode      = CEED_EVAL_INTERP,
519b072555Sjeremylt                   .q_mode        = CEED_GAUSS,
52*2b730f8bSJeremy L Thompson                   .enforce_bc    = PETSC_FALSE},
53*2b730f8bSJeremy L Thompson     [CEED_BP3] = {.num_comp_u    = 1,
549b072555Sjeremylt                   .num_comp_x    = 3,
559b072555Sjeremylt                   .topo_dim      = 3,
569b072555Sjeremylt                   .q_data_size   = 7,
579b072555Sjeremylt                   .q_extra       = 1,
589b072555Sjeremylt                   .setup_geo     = SetupDiffGeo,
599b072555Sjeremylt                   .setup_rhs     = SetupDiffRhs,
60e83e87a5Sjeremylt                   .apply         = Diff,
61e83e87a5Sjeremylt                   .error         = Error,
629b072555Sjeremylt                   .setup_geo_loc = SetupDiffGeo_loc,
639b072555Sjeremylt                   .setup_rhs_loc = SetupDiffRhs_loc,
649b072555Sjeremylt                   .apply_loc     = Diff_loc,
659b072555Sjeremylt                   .error_loc     = Error_loc,
669b072555Sjeremylt                   .in_mode       = CEED_EVAL_GRAD,
679b072555Sjeremylt                   .out_mode      = CEED_EVAL_GRAD,
689b072555Sjeremylt                   .q_mode        = CEED_GAUSS,
69*2b730f8bSJeremy L Thompson                   .enforce_bc    = PETSC_TRUE },
70*2b730f8bSJeremy L Thompson     [CEED_BP4] = {.num_comp_u    = 3,
719b072555Sjeremylt                   .num_comp_x    = 3,
729b072555Sjeremylt                   .topo_dim      = 3,
739b072555Sjeremylt                   .q_data_size   = 7,
749b072555Sjeremylt                   .q_extra       = 1,
759b072555Sjeremylt                   .setup_geo     = SetupDiffGeo,
769b072555Sjeremylt                   .setup_rhs     = SetupDiffRhs3,
77e83e87a5Sjeremylt                   .apply         = Diff3,
78e83e87a5Sjeremylt                   .error         = Error3,
799b072555Sjeremylt                   .setup_geo_loc = SetupDiffGeo_loc,
809b072555Sjeremylt                   .setup_rhs_loc = SetupDiffRhs3_loc,
819b072555Sjeremylt                   .apply_loc     = Diff3_loc,
829b072555Sjeremylt                   .error_loc     = Error3_loc,
839b072555Sjeremylt                   .in_mode       = CEED_EVAL_GRAD,
849b072555Sjeremylt                   .out_mode      = CEED_EVAL_GRAD,
859b072555Sjeremylt                   .q_mode        = CEED_GAUSS,
86*2b730f8bSJeremy L Thompson                   .enforce_bc    = PETSC_TRUE },
87*2b730f8bSJeremy L Thompson     [CEED_BP5] = {.num_comp_u    = 1,
889b072555Sjeremylt                   .num_comp_x    = 3,
899b072555Sjeremylt                   .topo_dim      = 3,
909b072555Sjeremylt                   .q_data_size   = 7,
919b072555Sjeremylt                   .q_extra       = 0,
929b072555Sjeremylt                   .setup_geo     = SetupDiffGeo,
939b072555Sjeremylt                   .setup_rhs     = SetupDiffRhs,
94e83e87a5Sjeremylt                   .apply         = Diff,
95e83e87a5Sjeremylt                   .error         = Error,
969b072555Sjeremylt                   .setup_geo_loc = SetupDiffGeo_loc,
979b072555Sjeremylt                   .setup_rhs_loc = SetupDiffRhs_loc,
989b072555Sjeremylt                   .apply_loc     = Diff_loc,
999b072555Sjeremylt                   .error_loc     = Error_loc,
1009b072555Sjeremylt                   .in_mode       = CEED_EVAL_GRAD,
1019b072555Sjeremylt                   .out_mode      = CEED_EVAL_GRAD,
1029b072555Sjeremylt                   .q_mode        = CEED_GAUSS_LOBATTO,
103*2b730f8bSJeremy L Thompson                   .enforce_bc    = PETSC_TRUE },
104*2b730f8bSJeremy L Thompson     [CEED_BP6] = {.num_comp_u    = 3,
1059b072555Sjeremylt                   .num_comp_x    = 3,
1069b072555Sjeremylt                   .topo_dim      = 3,
1079b072555Sjeremylt                   .q_data_size   = 7,
1089b072555Sjeremylt                   .q_extra       = 0,
1099b072555Sjeremylt                   .setup_geo     = SetupDiffGeo,
1109b072555Sjeremylt                   .setup_rhs     = SetupDiffRhs3,
111e83e87a5Sjeremylt                   .apply         = Diff3,
112e83e87a5Sjeremylt                   .error         = Error3,
1139b072555Sjeremylt                   .setup_geo_loc = SetupDiffGeo_loc,
1149b072555Sjeremylt                   .setup_rhs_loc = SetupDiffRhs3_loc,
1159b072555Sjeremylt                   .apply_loc     = Diff3_loc,
1169b072555Sjeremylt                   .error_loc     = Error3_loc,
1179b072555Sjeremylt                   .in_mode       = CEED_EVAL_GRAD,
1189b072555Sjeremylt                   .out_mode      = CEED_EVAL_GRAD,
1199b072555Sjeremylt                   .q_mode        = CEED_GAUSS_LOBATTO,
120*2b730f8bSJeremy L Thompson                   .enforce_bc    = PETSC_TRUE }
121e83e87a5Sjeremylt };
122e83e87a5Sjeremylt 
123b7c563b6SJeremy L Thompson #endif  // libceed_petsc_examples_bps_problem_data_h
124