📄 poisson2d_5.h
字号:
const double basisvalue0 = 0.707106781186548*psitilde_a_0*scalings_y_0*psitilde_bs_0_0; const double basisvalue1 = 1.73205080756888*psitilde_a_1*scalings_y_1*psitilde_bs_1_0; const double basisvalue2 = psitilde_a_0*scalings_y_0*psitilde_bs_0_1; const double basisvalue3 = 2.73861278752583*psitilde_a_2*scalings_y_2*psitilde_bs_2_0; const double basisvalue4 = 2.12132034355964*psitilde_a_1*scalings_y_1*psitilde_bs_1_1; const double basisvalue5 = 1.22474487139159*psitilde_a_0*scalings_y_0*psitilde_bs_0_2; const double basisvalue6 = 3.74165738677394*psitilde_a_3*scalings_y_3*psitilde_bs_3_0; const double basisvalue7 = 3.16227766016838*psitilde_a_2*scalings_y_2*psitilde_bs_2_1; const double basisvalue8 = 2.44948974278318*psitilde_a_1*scalings_y_1*psitilde_bs_1_2; const double basisvalue9 = 1.4142135623731*psitilde_a_0*scalings_y_0*psitilde_bs_0_3; const double basisvalue10 = 4.74341649025257*psitilde_a_4*scalings_y_4*psitilde_bs_4_0; const double basisvalue11 = 4.18330013267038*psitilde_a_3*scalings_y_3*psitilde_bs_3_1; const double basisvalue12 = 3.53553390593274*psitilde_a_2*scalings_y_2*psitilde_bs_2_2; const double basisvalue13 = 2.73861278752583*psitilde_a_1*scalings_y_1*psitilde_bs_1_3; const double basisvalue14 = 1.58113883008419*psitilde_a_0*scalings_y_0*psitilde_bs_0_4; const double basisvalue15 = 5.74456264653803*psitilde_a_5*scalings_y_5*psitilde_bs_5_0; const double basisvalue16 = 5.19615242270663*psitilde_a_4*scalings_y_4*psitilde_bs_4_1; const double basisvalue17 = 4.58257569495584*psitilde_a_3*scalings_y_3*psitilde_bs_3_2; const double basisvalue18 = 3.87298334620742*psitilde_a_2*scalings_y_2*psitilde_bs_2_3; const double basisvalue19 = 3*psitilde_a_1*scalings_y_1*psitilde_bs_1_4; const double basisvalue20 = 1.73205080756888*psitilde_a_0*scalings_y_0*psitilde_bs_0_5; // Table(s) of coefficients const static double coefficients0[21][21] = \ {{0.0154328860973254, -0.0094506740492349, -0.00545634920634922, 0.0301875307266956, 0.0233831607535234, 0.013500274155551, -0.0231997605826757, -0.0196073763651313, -0.0151878084249949, -0.00876868528257126, 0.0213898651255978, 0.0188640878998484, 0.0159430641501296, 0.0123494443881937, 0.00712995504186595, -0.0179891757560038, -0.0162718217101153, -0.0143503978743156, -0.0121282998205249, -0.00939454064454066, -0.00542394057003845}, {0.0154328860973254, 0.00945067404923493, -0.00545634920634918, 0.0301875307266957, -0.0233831607535234, 0.013500274155551, 0.0231997605826757, -0.0196073763651313, 0.0151878084249949, -0.00876868528257127, 0.0213898651255978, -0.0188640878998484, 0.0159430641501296, -0.0123494443881937, 0.00712995504186594, 0.0179891757560038, -0.0162718217101153, 0.0143503978743156, -0.0121282998205249, 0.00939454064454066, -0.00542394057003844}, {0.0154328860973255, 0, 0.0109126984126984, 0, 0, 0.040500822466653, 0, 0, 0, 0.0350747411302851, 0, 0, 0, 0, 0.0356497752093297, 0, 0, 0, 0, 0, 0.0325436434202306}, {0.035074741130285, 0.126008987323133, -0.0843253968253968, 0.101882916202598, -0.0286443719230662, 0.00202504112333272, 0.0773325352755857, -0.0261431684868417, 0, 0.00584579018838086, 0.0356497752093296, 0.012576058599899, -0.0385290716961465, 0.0442521757243607, -0.0297081460077748, 0, 0.0325436434202305, -0.051661432347536, 0.0582158391385193, -0.0526094276094276, 0.0325436434202305}, {0.0350747411302853, -0.0329341671412732, 0.121527777777778, -0.011320324022511, 0.075410693430113, -0.0222754523566592, 0, 0.104572673947367, -0.101252056166633, 0.0584579018838084, 0, 0.0565922636995451, -0.00930012075424223, -0.0401356942616295, 0.0415914044108846, 0, 0, 0.0516614323475361, -0.101877718492409, 0.118371212121212, -0.0813591085505763}, {0.035074741130285, 0.0887790592503891, -0.0892857142857142, 0.0301875307266957, 0.0432588473940183, -0.0594012062844244, 0, 0.0261431684868417, 0.101252056166633, -0.116915803767617, 0, 0, 0.074400966033938, -0.0308736109704842, -0.0118832584031099, 0, 0, 0, 0.0679184789949393, -0.131523569023569, 0.108478811400768}, {0.0350747411302852, -0.010023442173431, 0.151289682539683, 0, 0.0502737956200754, 0.093151891673302, 0, 0, 0.0506260280833164, 0.0643036920721893, 0, 0, 0, 0.0720384255977965, -0.0237665168062198, 0, 0, 0, 0, 0.0657617845117845, -0.0813591085505763}, {0.0350747411302851, -0.126008987323133, -0.0843253968253968, 0.101882916202598, 0.0286443719230662, 0.00202504112333263, -0.0773325352755857, -0.0261431684868418, 0, 0.00584579018838086, 0.0356497752093297, -0.0125760585998989, -0.0385290716961465, -0.0442521757243607, -0.0297081460077747, 0, 0.0325436434202305, 0.0516614323475361, 0.0582158391385194, 0.0526094276094276, 0.0325436434202305}, {0.0350747411302856, 0.0329341671412733, 0.121527777777778, -0.0113203240225111, -0.075410693430113, -0.0222754523566593, 0, 0.104572673947367, 0.101252056166633, 0.0584579018838084, 0, -0.0565922636995451, -0.00930012075424224, 0.0401356942616295, 0.0415914044108846, 0, 0, -0.0516614323475361, -0.101877718492409, -0.118371212121212, -0.0813591085505763}, {0.0350747411302851, -0.0887790592503889, -0.0892857142857142, 0.0301875307266957, -0.0432588473940183, -0.0594012062844244, 0, 0.0261431684868417, -0.101252056166633, -0.116915803767617, 0, 0, 0.0744009660339381, 0.0308736109704842, -0.0118832584031099, 0, 0, 0, 0.0679184789949393, 0.131523569023569, 0.108478811400768}, {0.0350747411302852, 0.010023442173431, 0.151289682539682, 0, -0.0502737956200753, 0.093151891673302, 0, 0, -0.0506260280833163, 0.0643036920721893, 0, 0, 0, -0.0720384255977965, -0.0237665168062198, 0, 0, 0, 0, -0.0657617845117845, -0.0813591085505763}, {0.0350747411302853, -0.136032429496564, -0.0669642857142857, 0.0369797251402021, 0.0789181675431415, 0.060076219992202, -0.00773325352755853, -0.0457505448519731, -0.0556886308916479, -0.0379976362244755, -0.0641695953767934, -0.0125760585998989, 0.0172716528293071, 0.0277862498734357, 0.0202015392852869, 0.0899458787800191, 0.0488154651303458, 0.0200905570240418, 0.002425659964105, -0.00563672438672438, -0.00542394057003844}, {0.0350747411302855, 0.121713226391662, -0.0322420634920636, -0.0671672558668979, -0.0321518460360948, 0.0276755620188797, 0.139198563496054, 0.0653579212171044, -0.0101252056166633, -0.0292289509419042, 0.0427797302511956, -0.0565922636995451, -0.0332147169794367, 0.00926208329114533, 0.0202015392852868, -0.179891757560038, -0.0325436434202306, 0.0114803182994525, 0.00970263985641986, -0.00187890812890816, -0.00542394057003842}, {0.035074741130285, -0.121713226391662, -0.0322420634920635, -0.0671672558668978, 0.0321518460360948, 0.0276755620188796, -0.139198563496054, 0.0653579212171043, 0.0101252056166633, -0.0292289509419043, 0.0427797302511956, 0.0565922636995451, -0.0332147169794366, -0.00926208329114533, 0.0202015392852868, 0.179891757560038, -0.0325436434202305, -0.0114803182994525, 0.00970263985641991, 0.00187890812890816, -0.00542394057003841}, {0.0350747411302851, 0.136032429496564, -0.0669642857142857, 0.0369797251402022, -0.0789181675431415, 0.0600762199922021, 0.00773325352755859, -0.0457505448519731, 0.0556886308916479, -0.0379976362244755, -0.0641695953767934, 0.0125760585998989, 0.017271652829307, -0.0277862498734357, 0.0202015392852868, -0.0899458787800191, 0.0488154651303458, -0.0200905570240418, 0.00242565996410496, 0.00563672438672438, -0.00542394057003843}, {0.280597929042281, -0.214788046573522, -0.124007936507936, 0.0905625921800871, 0.116915803767617, 0, 0.154665070551171, 0.0784295054605254, 0.101252056166633, 0.0818410626373319, -0.142599100837319, 0.0251521171997979, -0.0318861283002592, -0.107028518031012, -0.0950660672248791, 0, -0.130174573680922, -0.103322864695072, -0.0291079195692597, 0.0263047138047138, 0.0325436434202305}, {0.0350747411302854, 0, -0.124007936507936, -0.38489101676537, 0, 0.101252056166633, 0, -0.104572673947367, 0, 0.0467663215070468, 0.213898651255978, 0, 0.140830399992811, 0, -0.095066067224879, 0, 0.195261860521383, 0, -0.0582158391385193, 0, 0.0325436434202305}, {0.280597929042281, 0.214788046573522, -0.124007936507937, 0.0905625921800869, -0.116915803767617, 0, -0.154665070551172, 0.0784295054605253, -0.101252056166633, 0.0818410626373319, -0.142599100837319, -0.0251521171997979, -0.0318861283002592, 0.107028518031012, -0.0950660672248792, 0, -0.130174573680922, 0.103322864695072, -0.0291079195692597, -0.0263047138047138, 0.0325436434202305}, {0.0350747411302847, -0.107394023286761, 0.062003968253968, 0.0113203240225108, -0.306903984889994, -0.253130140416582, 0, -0.104572673947367, 0, 0.0467663215070468, 0, 0.169776791098635, 0.00930012075424235, 0.126581804978985, 0.172307246845094, 0, 0, 0.154984297042608, 0.101877718492409, -0.0394570707070707, -0.0813591085505764}, {0.0350747411302848, 0.10739402328676, 0.0620039682539679, 0.0113203240225109, 0.306903984889994, -0.253130140416582, 0, -0.104572673947367, 0, 0.0467663215070467, 0, -0.169776791098635, 0.00930012075424227, -0.126581804978985, 0.172307246845093, 0, 0, -0.154984297042608, 0.101877718492409, 0.0394570707070708, -0.0813591085505762}, {0.280597929042281, 0, 0.248015873015873, -0.0603750614533914, 0, 0.13500274155551, 0, -0.0522863369736834, 0, -0.21044844678171, 0, 0, -0.148801932067876, 0, -0.142599100837319, 0, 0, 0, -0.135836957989879, 0, 0.108478811400768}}; // Interesting (new) part // Tables of derivatives of the polynomial base (transpose) const static double dmats0[21][21] = \ {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {4.89897948556636, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 9.48683298050513, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {4.00000000000002, 0, 7.07106781186548, 0, -1.10551035918209e-14, 0, 0, 0, 0, 0, 0, 0, 0, -1.14340877000959e-14, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {5.29150262212919, 1.02605402631383e-14, -2.99332590941915, 13.6626010212795, 1.1504167100759e-14, 0.611010092660778, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 4.38178046004133, 1.61771637752217e-14, 0, 12.5219806739988, 0, 0, 1.27793570143145e-14, 1.66949787328008e-14, 1.2791850911853e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {3.46410161513776, 0, 7.83836717690617, 0, -1.04471399757798e-14, 8.4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {1.02520192313792e-14, 10.9544511501033, 0, 0, -3.83325938999965, 0, 17.7482393492989, -1.16060866546916e-14, 0.553283335172473, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {4.7328638264797, 0, 3.34664010613633, 4.36435780471985, 3.56219756282952e-14, -5.07468037933238, 1.00749635925787e-14, 17.0084012854152, 0, 1.52127765851134, 0, 0, 0, 0, 0, 0, 2.03610855691125e-14, 1.186490054987e-14, 0, 0, 0}, {0, 2.4494897427832, 2.41889841490206e-14, 0, 9.14285714285713, 1.33790548084711e-14, 0, 0, 14.8461497791618, 2.60052396283683e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.4511829238284e-14, 0}, {3.09838667696592, 0, 7.66811580507234, 0, 0, 10.733126291999, 0, 0, 0, 9.29516003089782, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {5.41602560309063, 0, -4.37680963545758, 15.7321327225523, 0, 2.01017818278148, 1.36816610020133e-14, -4.03686713879669, 0, -0.515811962199129, 21.799082549502, 0, 0.451335466924228, 0, 0.0576695305542369, 0, -1.37607489057334e-14, 0, 0, 0, 0}, {1.28482023197679e-14, 6.85714285714286, -3.24931054285216e-14, 0, 9.97292252418866, -1.50396188558499e-14, 4.32049379893857, -1.55436899295716e-14, -7.27309832077593, -3.07124117804314e-14, 0, 21.2540192277445, 0, 1.49078803979367, 0, 0, 0, 0, -1.25058267704215e-14, 0, -1.14027710884645e-14}, {4.32049379893858, 0, 5.93552661441898, 1.79284291400158, 2.62821189254035e-14, -0.320713490294919, 2.09470073218877e-14, 9.20087412456474, 0, -5.96639619853425, 0, 0, 19.8022632451351, 1.26220691940285e-14, 2.53024038425529, 0, 1.16408851492875e-14, 1.51408740793919e-14, 0, 0, -1.45790497729781e-14}, {0, 1.53330375599988, 0, 0, 6.3379324511312, 0, 0, 0, 13.5526185435788, 1.46393314137683e-14, 0, 0, 0, 16.6675169851115, 0, 0, 0, 0, 0, 1.99601619954581e-14, 0}, {2.82842712474619, 1.17669257138813e-14, 7.31428571428573, 0, 0, 11.337638238025, 0, 0, 1.71468241220541e-14, 12.9299525702683, 0, 0, 0, 0, 9.93858693195778, 0, 0, 0, 0, 1.03123957535489e-14, 1.39573140371663e-14}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; const static double dmats1[21][21] = \ {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {2.44948974278318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {4.24264068711929, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {2.58198889747161, 4.74341649025256, -0.912870929175275, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {2, 6.12372435695794, 3.53553390593275, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {-2.30940107675849, 0, 8.16496580927726, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {2.64575131106459, 5.18459255872629, -1.49666295470957, 6.83130051063973, -1.05830052442583, 0.305505046330388, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {2.2360679774998, 2.19089023002067, 2.52982212813472, 8.08290376865476, 6.26099033699941, -1.80739222823013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {1.73205080756888, -5.09116882454313, 3.9191835884531, 0, 9.6994845223857, 4.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {4.99999999999999, 0, -2.8284271247462, 0, 0, 12.1243556529821, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {2.68328157299976, 5.47722557505167, -1.89736659610103, 7.4230748895809, -1.91662969499982, 0.663940002206988, 8.87411967464944, -1.07142857142858, 0.276641667586238, -0.0958314847499957, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {2.36643191323985, 2.8982753492379, 1.67332005306816, 2.18217890235992, 5.74704893215392, -2.53734018966619, 10.0623058987491, 8.50420064270762, -2.1957751641342, 0.760638829255668, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {2, 1.22474487139159, 3.53553390593275, -7.37711113563318, 4.57142857142858, 1.64957219768464, 0, 11.4997781699989, 7.42307488958091, -2.57142857142857, 0, 0, 0, 0, 0, 0, 1.76125559899136e-14, 0, 0, 0, 0}, {1.54919333848297, 6.64078308635361, 3.83405790253618, 0, -6.19677335393187, 5.36656314599951, 0, 0, 13.4164078649987, 4.64758001544893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.00542404263271e-14}, {-3.57770876399967, 0, 8.85437744847148, 0, 1.50811850770267e-14, -3.09838667696592, 0, 0, 0, 16.0996894379985, 0, 0, 0, 0, 1.4668306716828e-14, 0, 0, 0, 0, 0, 1.56661115286935e-14}, {2.70801280154532, 5.68564249775212, -2.18840481772879, 7.86606636127614, -2.61129805863299, 1.00508909139074, 9.55297122675765, -2.01843356939835, 0.670059394260488, -0.257905981099564, 10.899541274751, -1.06805465250648, 0.225667733462114, -0.0749149177264407, 0.0288347652771167, 0, -1.20794036964429e-14, 0, 0, 0, 0}, {2.44948974278318, 3.42857142857143, 0.989743318610773, 3.04933917230523, 4.98646126209435, -2.72741187029098, 2.1602468994693, 8.34624849531681, -3.63654916038797, 1.51635079315148, 12.0498962651137, 10.6270096138723, -2.24536559755125, 0.745394019896831, -0.286902292026514, 0, 1.09033997529937e-14, 0, -1.16585230664951e-14, 0, 0}, {2.1602468994693, 1.8142294704443, 2.96776330720949, 0.8964214570008, 5.41604758366944, -0.16035674514746, -9.5257934441568, 4.60043706228237, 5.34522483824849, -2.98319809926712, 0, 13.3887736279041, 9.90113162256757, -3.28687867566958, 1.26512019212765, 0, 1.17674910593718e-14, 0, 0, 0, 0}, {1.82574185835054, 0.766651877999946, 3.83609779052923, 8.6368042559214, 3.1689662255656, 3.65920700676628, 0, -8.74817765279709, 6.77630927178941, 0.521640530957297, 0, 0, 15.0623703313921, 8.33375849255575, -3.20766513935892, 0, -1.26117996941143e-14, 0, 0, 1.65384127234129e-14, 0}, {1.41421356237309, -6.73025456655335, 3.65714285714285, 0, 9.4550278170087, 5.6688191190125, -1.1531492078147e-14, 0, -6.99854212223763, 6.46497628513415, 0, 0, 0, 17.2141375215909, 4.96929346597888, 0, 0, 0, 0, 1.88130252818363e-14, 0}, {5.71547606649411, 1.63226055855502e-14, -4.61880215351699, 0, -1.02732760205479e-14, 12.7279220613579, 0, 0, 2.03510836659781e-14, -3.2659863237109, 0, 0, 0, 0, 20.0831604418561, 0, 0, 0, 0, 0, 0}}; // Compute reference derivatives // Declare pointer to array of derivatives on FIAT element double *derivatives = new double [num_derivatives]; // Declare coefficients double coeff0_0 = 0; double coeff0_1 = 0; double coeff0_2 = 0; double coeff0_3 = 0; double coeff0_4 = 0; double coeff0_5 = 0; double coeff0_6 = 0; double coeff0_7 = 0; double coeff0_8 = 0; double coeff0_9 = 0; double coeff0_10 = 0; double coeff0_11 = 0; double coeff0_12 = 0; double coeff0_13 = 0; double coeff0_14 = 0; double coeff0_15 = 0; double coeff0_16 = 0; double coeff0_17 = 0; double coeff0_18 = 0; double coeff0_19 = 0; double coeff0_20 = 0; // Declare new coefficients
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -