1e83e87a5Sjeremylt #ifndef bpsproblemdata_h 2e83e87a5Sjeremylt #define bpsproblemdata_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 22*9b072555Sjeremylt } BPType; 23e83e87a5Sjeremylt 24*9b072555Sjeremylt BPData bp_options[6] = { 25e83e87a5Sjeremylt [CEED_BP1] = { 26*9b072555Sjeremylt .num_comp_u = 1, 27*9b072555Sjeremylt .num_comp_x = 3, 28*9b072555Sjeremylt .topo_dim = 3, 29*9b072555Sjeremylt .q_data_size = 1, 30*9b072555Sjeremylt .q_extra = 1, 31*9b072555Sjeremylt .setup_geo = SetupMassGeo, 32*9b072555Sjeremylt .setup_rhs = SetupMassRhs, 33e83e87a5Sjeremylt .apply = Mass, 34e83e87a5Sjeremylt .error = Error, 35*9b072555Sjeremylt .setup_geo_loc = SetupMassGeo_loc, 36*9b072555Sjeremylt .setup_rhs_loc = SetupMassRhs_loc, 37*9b072555Sjeremylt .apply_loc = Mass_loc, 38*9b072555Sjeremylt .error_loc = Error_loc, 39*9b072555Sjeremylt .in_mode = CEED_EVAL_INTERP, 40*9b072555Sjeremylt .out_mode = CEED_EVAL_INTERP, 41*9b072555Sjeremylt .q_mode = CEED_GAUSS, 42*9b072555Sjeremylt .enforce_bc = PETSC_FALSE, 43*9b072555Sjeremylt .bc_func = BCsMass 44e83e87a5Sjeremylt }, 45e83e87a5Sjeremylt [CEED_BP2] = { 46*9b072555Sjeremylt .num_comp_u = 3, 47*9b072555Sjeremylt .num_comp_x = 3, 48*9b072555Sjeremylt .topo_dim = 3, 49*9b072555Sjeremylt .q_data_size = 1, 50*9b072555Sjeremylt .q_extra = 1, 51*9b072555Sjeremylt .setup_geo = SetupMassGeo, 52*9b072555Sjeremylt .setup_rhs = SetupMassRhs3, 53e83e87a5Sjeremylt .apply = Mass3, 54e83e87a5Sjeremylt .error = Error3, 55*9b072555Sjeremylt .setup_geo_loc = SetupMassGeo_loc, 56*9b072555Sjeremylt .setup_rhs_loc = SetupMassRhs3_loc, 57*9b072555Sjeremylt .apply_loc = Mass3_loc, 58*9b072555Sjeremylt .error_loc = Error3_loc, 59*9b072555Sjeremylt .in_mode = CEED_EVAL_INTERP, 60*9b072555Sjeremylt .out_mode = CEED_EVAL_INTERP, 61*9b072555Sjeremylt .q_mode = CEED_GAUSS, 62*9b072555Sjeremylt .enforce_bc = PETSC_FALSE, 63*9b072555Sjeremylt .bc_func = BCsMass 64e83e87a5Sjeremylt }, 65e83e87a5Sjeremylt [CEED_BP3] = { 66*9b072555Sjeremylt .num_comp_u = 1, 67*9b072555Sjeremylt .num_comp_x = 3, 68*9b072555Sjeremylt .topo_dim = 3, 69*9b072555Sjeremylt .q_data_size = 7, 70*9b072555Sjeremylt .q_extra = 1, 71*9b072555Sjeremylt .setup_geo = SetupDiffGeo, 72*9b072555Sjeremylt .setup_rhs = SetupDiffRhs, 73e83e87a5Sjeremylt .apply = Diff, 74e83e87a5Sjeremylt .error = Error, 75*9b072555Sjeremylt .setup_geo_loc = SetupDiffGeo_loc, 76*9b072555Sjeremylt .setup_rhs_loc = SetupDiffRhs_loc, 77*9b072555Sjeremylt .apply_loc = Diff_loc, 78*9b072555Sjeremylt .error_loc = Error_loc, 79*9b072555Sjeremylt .in_mode = CEED_EVAL_GRAD, 80*9b072555Sjeremylt .out_mode = CEED_EVAL_GRAD, 81*9b072555Sjeremylt .q_mode = CEED_GAUSS, 82*9b072555Sjeremylt .enforce_bc = PETSC_TRUE, 83*9b072555Sjeremylt .bc_func = BCsDiff 84e83e87a5Sjeremylt }, 85e83e87a5Sjeremylt [CEED_BP4] = { 86*9b072555Sjeremylt .num_comp_u = 3, 87*9b072555Sjeremylt .num_comp_x = 3, 88*9b072555Sjeremylt .topo_dim = 3, 89*9b072555Sjeremylt .q_data_size = 7, 90*9b072555Sjeremylt .q_extra = 1, 91*9b072555Sjeremylt .setup_geo = SetupDiffGeo, 92*9b072555Sjeremylt .setup_rhs = SetupDiffRhs3, 93e83e87a5Sjeremylt .apply = Diff3, 94e83e87a5Sjeremylt .error = Error3, 95*9b072555Sjeremylt .setup_geo_loc = SetupDiffGeo_loc, 96*9b072555Sjeremylt .setup_rhs_loc = SetupDiffRhs3_loc, 97*9b072555Sjeremylt .apply_loc = Diff3_loc, 98*9b072555Sjeremylt .error_loc = Error3_loc, 99*9b072555Sjeremylt .in_mode = CEED_EVAL_GRAD, 100*9b072555Sjeremylt .out_mode = CEED_EVAL_GRAD, 101*9b072555Sjeremylt .q_mode = CEED_GAUSS, 102*9b072555Sjeremylt .enforce_bc = PETSC_TRUE, 103*9b072555Sjeremylt .bc_func = BCsDiff 104e83e87a5Sjeremylt }, 105e83e87a5Sjeremylt [CEED_BP5] = { 106*9b072555Sjeremylt .num_comp_u = 1, 107*9b072555Sjeremylt .num_comp_x = 3, 108*9b072555Sjeremylt .topo_dim = 3, 109*9b072555Sjeremylt .q_data_size = 7, 110*9b072555Sjeremylt .q_extra = 0, 111*9b072555Sjeremylt .setup_geo = SetupDiffGeo, 112*9b072555Sjeremylt .setup_rhs = SetupDiffRhs, 113e83e87a5Sjeremylt .apply = Diff, 114e83e87a5Sjeremylt .error = Error, 115*9b072555Sjeremylt .setup_geo_loc = SetupDiffGeo_loc, 116*9b072555Sjeremylt .setup_rhs_loc = SetupDiffRhs_loc, 117*9b072555Sjeremylt .apply_loc = Diff_loc, 118*9b072555Sjeremylt .error_loc = Error_loc, 119*9b072555Sjeremylt .in_mode = CEED_EVAL_GRAD, 120*9b072555Sjeremylt .out_mode = CEED_EVAL_GRAD, 121*9b072555Sjeremylt .q_mode = CEED_GAUSS_LOBATTO, 122*9b072555Sjeremylt .enforce_bc = PETSC_TRUE, 123*9b072555Sjeremylt .bc_func = BCsDiff 124e83e87a5Sjeremylt }, 125e83e87a5Sjeremylt [CEED_BP6] = { 126*9b072555Sjeremylt .num_comp_u = 3, 127*9b072555Sjeremylt .num_comp_x = 3, 128*9b072555Sjeremylt .topo_dim = 3, 129*9b072555Sjeremylt .q_data_size = 7, 130*9b072555Sjeremylt .q_extra = 0, 131*9b072555Sjeremylt .setup_geo = SetupDiffGeo, 132*9b072555Sjeremylt .setup_rhs = SetupDiffRhs3, 133e83e87a5Sjeremylt .apply = Diff3, 134e83e87a5Sjeremylt .error = Error3, 135*9b072555Sjeremylt .setup_geo_loc = SetupDiffGeo_loc, 136*9b072555Sjeremylt .setup_rhs_loc = SetupDiffRhs3_loc, 137*9b072555Sjeremylt .apply_loc = Diff3_loc, 138*9b072555Sjeremylt .error_loc = Error3_loc, 139*9b072555Sjeremylt .in_mode = CEED_EVAL_GRAD, 140*9b072555Sjeremylt .out_mode = CEED_EVAL_GRAD, 141*9b072555Sjeremylt .q_mode = CEED_GAUSS_LOBATTO, 142*9b072555Sjeremylt .enforce_bc = PETSC_TRUE, 143*9b072555Sjeremylt .bc_func = BCsDiff 144e83e87a5Sjeremylt } 145e83e87a5Sjeremylt }; 146e83e87a5Sjeremylt 147e83e87a5Sjeremylt #endif // bpsproblemdata_h 148