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 static 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 }, 36 [CEED_BP2] = { 37 .num_comp_u = 3, 38 .num_comp_x = 3, 39 .topo_dim = 3, 40 .q_data_size = 1, 41 .q_extra = 1, 42 .setup_geo = SetupMassGeo, 43 .setup_rhs = SetupMassRhs3, 44 .apply = Mass3, 45 .error = Error3, 46 .setup_geo_loc = SetupMassGeo_loc, 47 .setup_rhs_loc = SetupMassRhs3_loc, 48 .apply_loc = Mass3_loc, 49 .error_loc = Error3_loc, 50 .in_mode = CEED_EVAL_INTERP, 51 .out_mode = CEED_EVAL_INTERP, 52 .q_mode = CEED_GAUSS 53 }, 54 [CEED_BP3] = { 55 .num_comp_u = 1, 56 .num_comp_x = 3, 57 .topo_dim = 3, 58 .q_data_size = 4, 59 .q_extra = 1, 60 .setup_geo = SetupDiffGeo, 61 .setup_rhs = SetupDiffRhs, 62 .apply = Diff, 63 .error = Error, 64 .setup_geo_loc = SetupDiffGeo_loc, 65 .setup_rhs_loc = SetupDiffRhs_loc, 66 .apply_loc = Diff_loc, 67 .error_loc = Error_loc, 68 .in_mode = CEED_EVAL_GRAD, 69 .out_mode = CEED_EVAL_GRAD, 70 .q_mode = CEED_GAUSS 71 }, 72 [CEED_BP4] = { 73 .num_comp_u = 3, 74 .num_comp_x = 3, 75 .topo_dim = 3, 76 .q_data_size = 4, 77 .q_extra = 1, 78 .setup_geo = SetupDiffGeo, 79 .setup_rhs = SetupDiffRhs3, 80 .apply = Diff3, 81 .error = Error3, 82 .setup_geo_loc = SetupDiffGeo_loc, 83 .setup_rhs_loc = SetupDiffRhs3_loc, 84 .apply_loc = Diff_loc, 85 .error_loc = Error3_loc, 86 .in_mode = CEED_EVAL_GRAD, 87 .out_mode = CEED_EVAL_GRAD, 88 .q_mode = CEED_GAUSS 89 }, 90 [CEED_BP5] = { 91 .num_comp_u = 1, 92 .num_comp_x = 3, 93 .topo_dim = 3, 94 .q_data_size = 4, 95 .q_extra = 0, 96 .setup_geo = SetupDiffGeo, 97 .setup_rhs = SetupDiffRhs, 98 .apply = Diff, 99 .error = Error, 100 .setup_geo_loc = SetupDiffGeo_loc, 101 .setup_rhs_loc = SetupDiffRhs_loc, 102 .apply_loc = Diff_loc, 103 .error_loc = Error_loc, 104 .in_mode = CEED_EVAL_GRAD, 105 .out_mode = CEED_EVAL_GRAD, 106 .q_mode = CEED_GAUSS_LOBATTO 107 }, 108 [CEED_BP6] = { 109 .num_comp_u = 3, 110 .num_comp_x = 3, 111 .topo_dim = 3, 112 .q_data_size = 4, 113 .q_extra = 0, 114 .setup_geo = SetupDiffGeo, 115 .setup_rhs = SetupDiffRhs3, 116 .apply = Diff3, 117 .error = Error3, 118 .setup_geo_loc = SetupDiffGeo_loc, 119 .setup_rhs_loc = SetupDiffRhs3_loc, 120 .apply_loc = Diff_loc, 121 .error_loc = Error3_loc, 122 .in_mode = CEED_EVAL_GRAD, 123 .out_mode = CEED_EVAL_GRAD, 124 .q_mode = CEED_GAUSS_LOBATTO 125 } 126 }; 127 128 #endif // libceed_petsc_examples_sphere_problem_data_h 129