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