1 #ifndef sphereproblemdata_h 2 #define sphereproblemdata_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 bpOptions[6] = { 24 [CEED_BP1] = { 25 .ncompu = 1, 26 .ncompx = 3, 27 .topodim = 3, 28 .qdatasize = 1, 29 .qextra = 1, 30 .setupgeo = SetupMassGeo, 31 .setuprhs = SetupMassRhs, 32 .apply = Mass, 33 .error = Error, 34 .setupgeofname = SetupMassGeo_loc, 35 .setuprhsfname = SetupMassRhs_loc, 36 .applyfname = Mass_loc, 37 .errorfname = Error_loc, 38 .inmode = CEED_EVAL_INTERP, 39 .outmode = CEED_EVAL_INTERP, 40 .qmode = CEED_GAUSS 41 }, 42 [CEED_BP2] = { 43 .ncompu = 3, 44 .ncompx = 3, 45 .topodim = 3, 46 .qdatasize = 1, 47 .qextra = 1, 48 .setupgeo = SetupMassGeo, 49 .setuprhs = SetupMassRhs3, 50 .apply = Mass3, 51 .error = Error3, 52 .setupgeofname = SetupMassGeo_loc, 53 .setuprhsfname = SetupMassRhs3_loc, 54 .applyfname = Mass3_loc, 55 .errorfname = Error3_loc, 56 .inmode = CEED_EVAL_INTERP, 57 .outmode = CEED_EVAL_INTERP, 58 .qmode = CEED_GAUSS 59 }, 60 [CEED_BP3] = { 61 .ncompu = 1, 62 .ncompx = 3, 63 .topodim = 3, 64 .qdatasize = 4, 65 .qextra = 1, 66 .setupgeo = SetupDiffGeo, 67 .setuprhs = SetupDiffRhs, 68 .apply = Diff, 69 .error = Error, 70 .setupgeofname = SetupDiffGeo_loc, 71 .setuprhsfname = SetupDiffRhs_loc, 72 .applyfname = Diff_loc, 73 .errorfname = Error_loc, 74 .inmode = CEED_EVAL_GRAD, 75 .outmode = CEED_EVAL_GRAD, 76 .qmode = CEED_GAUSS 77 }, 78 [CEED_BP4] = { 79 .ncompu = 3, 80 .ncompx = 3, 81 .topodim = 3, 82 .qdatasize = 4, 83 .qextra = 1, 84 .setupgeo = SetupDiffGeo, 85 .setuprhs = SetupDiffRhs3, 86 .apply = Diff3, 87 .error = Error3, 88 .setupgeofname = SetupDiffGeo_loc, 89 .setuprhsfname = SetupDiffRhs3_loc, 90 .applyfname = Diff_loc, 91 .errorfname = Error3_loc, 92 .inmode = CEED_EVAL_GRAD, 93 .outmode = CEED_EVAL_GRAD, 94 .qmode = CEED_GAUSS 95 }, 96 [CEED_BP5] = { 97 .ncompu = 1, 98 .ncompx = 3, 99 .topodim = 3, 100 .qdatasize = 4, 101 .qextra = 0, 102 .setupgeo = SetupDiffGeo, 103 .setuprhs = SetupDiffRhs, 104 .apply = Diff, 105 .error = Error, 106 .setupgeofname = SetupDiffGeo_loc, 107 .setuprhsfname = SetupDiffRhs_loc, 108 .applyfname = Diff_loc, 109 .errorfname = Error_loc, 110 .inmode = CEED_EVAL_GRAD, 111 .outmode = CEED_EVAL_GRAD, 112 .qmode = CEED_GAUSS_LOBATTO 113 }, 114 [CEED_BP6] = { 115 .ncompu = 3, 116 .ncompx = 3, 117 .topodim = 3, 118 .qdatasize = 4, 119 .qextra = 0, 120 .setupgeo = SetupDiffGeo, 121 .setuprhs = SetupDiffRhs3, 122 .apply = Diff3, 123 .error = Error3, 124 .setupgeofname = SetupDiffGeo_loc, 125 .setuprhsfname = SetupDiffRhs3_loc, 126 .applyfname = Diff_loc, 127 .errorfname = Error3_loc, 128 .inmode = CEED_EVAL_GRAD, 129 .outmode = CEED_EVAL_GRAD, 130 .qmode = CEED_GAUSS_LOBATTO 131 } 132 }; 133 134 #endif // sphereproblemdata_h 135