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