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