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