1e83e87a5Sjeremylt #ifndef sphereproblemdata_h 2e83e87a5Sjeremylt #define sphereproblemdata_h 3e83e87a5Sjeremylt 4e83e87a5Sjeremylt #include <ceed.h> 5e83e87a5Sjeremylt #include <petsc.h> 6e83e87a5Sjeremylt #include "../include/structs.h" 7e83e87a5Sjeremylt #include "../qfunctions/bps/bp1sphere.h" 8e83e87a5Sjeremylt #include "../qfunctions/bps/bp2sphere.h" 9e83e87a5Sjeremylt #include "../qfunctions/bps/bp3sphere.h" 10e83e87a5Sjeremylt #include "../qfunctions/bps/bp4sphere.h" 11e83e87a5Sjeremylt #include "../qfunctions/bps/common.h" 12e83e87a5Sjeremylt 13e83e87a5Sjeremylt // ----------------------------------------------------------------------------- 14e83e87a5Sjeremylt // BP Option Data 15e83e87a5Sjeremylt // ----------------------------------------------------------------------------- 16e83e87a5Sjeremylt 17e83e87a5Sjeremylt // BP options 18e83e87a5Sjeremylt typedef enum { 19e83e87a5Sjeremylt CEED_BP1 = 0, CEED_BP2 = 1, CEED_BP3 = 2, 20e83e87a5Sjeremylt CEED_BP4 = 3, CEED_BP5 = 4, CEED_BP6 = 5 21*9b072555Sjeremylt } BPType; 22e83e87a5Sjeremylt 23*9b072555Sjeremylt static BPData bp_options[6] = { 24e83e87a5Sjeremylt [CEED_BP1] = { 25*9b072555Sjeremylt .num_comp_u = 1, 26*9b072555Sjeremylt .num_comp_x = 3, 27*9b072555Sjeremylt .topo_dim = 3, 28*9b072555Sjeremylt .q_data_size = 1, 29*9b072555Sjeremylt .q_extra = 1, 30*9b072555Sjeremylt .setup_geo = SetupMassGeo, 31*9b072555Sjeremylt .setup_rhs = SetupMassRhs, 32e83e87a5Sjeremylt .apply = Mass, 33e83e87a5Sjeremylt .error = Error, 34*9b072555Sjeremylt .setup_geo_loc = SetupMassGeo_loc, 35*9b072555Sjeremylt .setup_rhs_loc = SetupMassRhs_loc, 36*9b072555Sjeremylt .apply_loc = Mass_loc, 37*9b072555Sjeremylt .error_loc = Error_loc, 38*9b072555Sjeremylt .in_mode = CEED_EVAL_INTERP, 39*9b072555Sjeremylt .out_mode = CEED_EVAL_INTERP, 40*9b072555Sjeremylt .q_mode = CEED_GAUSS 41e83e87a5Sjeremylt }, 42e83e87a5Sjeremylt [CEED_BP2] = { 43*9b072555Sjeremylt .num_comp_u = 3, 44*9b072555Sjeremylt .num_comp_x = 3, 45*9b072555Sjeremylt .topo_dim = 3, 46*9b072555Sjeremylt .q_data_size = 1, 47*9b072555Sjeremylt .q_extra = 1, 48*9b072555Sjeremylt .setup_geo = SetupMassGeo, 49*9b072555Sjeremylt .setup_rhs = SetupMassRhs3, 50e83e87a5Sjeremylt .apply = Mass3, 51e83e87a5Sjeremylt .error = Error3, 52*9b072555Sjeremylt .setup_geo_loc = SetupMassGeo_loc, 53*9b072555Sjeremylt .setup_rhs_loc = SetupMassRhs3_loc, 54*9b072555Sjeremylt .apply_loc = Mass3_loc, 55*9b072555Sjeremylt .error_loc = Error3_loc, 56*9b072555Sjeremylt .in_mode = CEED_EVAL_INTERP, 57*9b072555Sjeremylt .out_mode = CEED_EVAL_INTERP, 58*9b072555Sjeremylt .q_mode = CEED_GAUSS 59e83e87a5Sjeremylt }, 60e83e87a5Sjeremylt [CEED_BP3] = { 61*9b072555Sjeremylt .num_comp_u = 1, 62*9b072555Sjeremylt .num_comp_x = 3, 63*9b072555Sjeremylt .topo_dim = 3, 64*9b072555Sjeremylt .q_data_size = 4, 65*9b072555Sjeremylt .q_extra = 1, 66*9b072555Sjeremylt .setup_geo = SetupDiffGeo, 67*9b072555Sjeremylt .setup_rhs = SetupDiffRhs, 68e83e87a5Sjeremylt .apply = Diff, 69e83e87a5Sjeremylt .error = Error, 70*9b072555Sjeremylt .setup_geo_loc = SetupDiffGeo_loc, 71*9b072555Sjeremylt .setup_rhs_loc = SetupDiffRhs_loc, 72*9b072555Sjeremylt .apply_loc = Diff_loc, 73*9b072555Sjeremylt .error_loc = Error_loc, 74*9b072555Sjeremylt .in_mode = CEED_EVAL_GRAD, 75*9b072555Sjeremylt .out_mode = CEED_EVAL_GRAD, 76*9b072555Sjeremylt .q_mode = CEED_GAUSS 77e83e87a5Sjeremylt }, 78e83e87a5Sjeremylt [CEED_BP4] = { 79*9b072555Sjeremylt .num_comp_u = 3, 80*9b072555Sjeremylt .num_comp_x = 3, 81*9b072555Sjeremylt .topo_dim = 3, 82*9b072555Sjeremylt .q_data_size = 4, 83*9b072555Sjeremylt .q_extra = 1, 84*9b072555Sjeremylt .setup_geo = SetupDiffGeo, 85*9b072555Sjeremylt .setup_rhs = SetupDiffRhs3, 86e83e87a5Sjeremylt .apply = Diff3, 87e83e87a5Sjeremylt .error = Error3, 88*9b072555Sjeremylt .setup_geo_loc = SetupDiffGeo_loc, 89*9b072555Sjeremylt .setup_rhs_loc = SetupDiffRhs3_loc, 90*9b072555Sjeremylt .apply_loc = Diff_loc, 91*9b072555Sjeremylt .error_loc = Error3_loc, 92*9b072555Sjeremylt .in_mode = CEED_EVAL_GRAD, 93*9b072555Sjeremylt .out_mode = CEED_EVAL_GRAD, 94*9b072555Sjeremylt .q_mode = CEED_GAUSS 95e83e87a5Sjeremylt }, 96e83e87a5Sjeremylt [CEED_BP5] = { 97*9b072555Sjeremylt .num_comp_u = 1, 98*9b072555Sjeremylt .num_comp_x = 3, 99*9b072555Sjeremylt .topo_dim = 3, 100*9b072555Sjeremylt .q_data_size = 4, 101*9b072555Sjeremylt .q_extra = 0, 102*9b072555Sjeremylt .setup_geo = SetupDiffGeo, 103*9b072555Sjeremylt .setup_rhs = SetupDiffRhs, 104e83e87a5Sjeremylt .apply = Diff, 105e83e87a5Sjeremylt .error = Error, 106*9b072555Sjeremylt .setup_geo_loc = SetupDiffGeo_loc, 107*9b072555Sjeremylt .setup_rhs_loc = SetupDiffRhs_loc, 108*9b072555Sjeremylt .apply_loc = Diff_loc, 109*9b072555Sjeremylt .error_loc = Error_loc, 110*9b072555Sjeremylt .in_mode = CEED_EVAL_GRAD, 111*9b072555Sjeremylt .out_mode = CEED_EVAL_GRAD, 112*9b072555Sjeremylt .q_mode = CEED_GAUSS_LOBATTO 113e83e87a5Sjeremylt }, 114e83e87a5Sjeremylt [CEED_BP6] = { 115*9b072555Sjeremylt .num_comp_u = 3, 116*9b072555Sjeremylt .num_comp_x = 3, 117*9b072555Sjeremylt .topo_dim = 3, 118*9b072555Sjeremylt .q_data_size = 4, 119*9b072555Sjeremylt .q_extra = 0, 120*9b072555Sjeremylt .setup_geo = SetupDiffGeo, 121*9b072555Sjeremylt .setup_rhs = SetupDiffRhs3, 122e83e87a5Sjeremylt .apply = Diff3, 123e83e87a5Sjeremylt .error = Error3, 124*9b072555Sjeremylt .setup_geo_loc = SetupDiffGeo_loc, 125*9b072555Sjeremylt .setup_rhs_loc = SetupDiffRhs3_loc, 126*9b072555Sjeremylt .apply_loc = Diff_loc, 127*9b072555Sjeremylt .error_loc = Error3_loc, 128*9b072555Sjeremylt .in_mode = CEED_EVAL_GRAD, 129*9b072555Sjeremylt .out_mode = CEED_EVAL_GRAD, 130*9b072555Sjeremylt .q_mode = CEED_GAUSS_LOBATTO 131e83e87a5Sjeremylt } 132e83e87a5Sjeremylt }; 133e83e87a5Sjeremylt 134e83e87a5Sjeremylt #endif // sphereproblemdata_h 135