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