📄 poisson2d_5.h
字号:
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.00945067404923493, -0.00545634920634921, 0.0301875307266957, 0.0233831607535234, 0.013500274155551, -0.0231997605826757, -0.0196073763651313, -0.0151878084249949, -0.00876868528257127, 0.0213898651255978, 0.0188640878998484, 0.0159430641501296, 0.0123494443881937, 0.00712995504186593, -0.0179891757560038, -0.0162718217101153, -0.0143503978743156, -0.0121282998205249, -0.00939454064454065, -0.00542394057003842}, {0.0154328860973254, 0.00945067404923495, -0.0054563492063492, 0.0301875307266957, -0.0233831607535234, 0.013500274155551, 0.0231997605826757, -0.0196073763651313, 0.0151878084249949, -0.00876868528257127, 0.0213898651255978, -0.0188640878998484, 0.0159430641501296, -0.0123494443881937, 0.00712995504186593, 0.0179891757560038, -0.0162718217101153, 0.0143503978743156, -0.0121282998205249, 0.00939454064454064, -0.00542394057003843}, {0.0154328860973254, 0, 0.0109126984126984, 0, 0, 0.0405008224666531, 0, 0, 0, 0.0350747411302851, 0, 0, 0, 0, 0.0356497752093297, 0, 0, 0, 0, 0, 0.0325436434202305}, {0.0350747411302851, 0.126008987323133, -0.0843253968253968, 0.101882916202598, -0.0286443719230661, 0.00202504112333268, 0.0773325352755857, -0.0261431684868418, 0, 0.00584579018838087, 0.0356497752093297, 0.0125760585998989, -0.0385290716961465, 0.0442521757243607, -0.0297081460077747, 0, 0.0325436434202305, -0.0516614323475361, 0.0582158391385193, -0.0526094276094276, 0.0325436434202305}, {0.0350747411302851, -0.0329341671412733, 0.121527777777778, -0.0113203240225109, 0.0754106934301129, -0.0222754523566592, 0, 0.104572673947367, -0.101252056166633, 0.0584579018838085, 0, 0.0565922636995452, -0.00930012075424226, -0.0401356942616294, 0.0415914044108846, 0, 0, 0.0516614323475361, -0.101877718492409, 0.118371212121212, -0.0813591085505763}, {0.0350747411302852, 0.0887790592503889, -0.0892857142857142, 0.0301875307266957, 0.0432588473940183, -0.0594012062844245, 0, 0.0261431684868417, 0.101252056166633, -0.116915803767617, 0, 0, 0.074400966033938, -0.0308736109704842, -0.0118832584031099, 0, 0, 0, 0.0679184789949392, -0.131523569023569, 0.108478811400768}, {0.035074741130285, -0.010023442173431, 0.151289682539683, 0, 0.0502737956200753, 0.0931518916733021, 0, 0, 0.0506260280833164, 0.0643036920721892, 0, 0, 0, 0.0720384255977965, -0.0237665168062198, 0, 0, 0, 0, 0.0657617845117845, -0.0813591085505763}, {0.0350747411302852, -0.126008987323133, -0.0843253968253968, 0.101882916202598, 0.0286443719230662, 0.00202504112333263, -0.0773325352755857, -0.0261431684868418, 0, 0.00584579018838088, 0.0356497752093296, -0.012576058599899, -0.0385290716961465, -0.0442521757243607, -0.0297081460077747, 0, 0.0325436434202305, 0.051661432347536, 0.0582158391385194, 0.0526094276094276, 0.0325436434202305}, {0.0350747411302851, 0.0329341671412733, 0.121527777777778, -0.0113203240225109, -0.0754106934301131, -0.0222754523566592, 0, 0.104572673947367, 0.101252056166633, 0.0584579018838084, 0, -0.0565922636995451, -0.00930012075424223, 0.0401356942616295, 0.0415914044108846, 0, 0, -0.051661432347536, -0.101877718492409, -0.118371212121212, -0.0813591085505763}, {0.0350747411302851, -0.0887790592503889, -0.0892857142857143, 0.0301875307266957, -0.0432588473940183, -0.0594012062844245, 0, 0.0261431684868418, -0.101252056166633, -0.116915803767617, 0, 0, 0.0744009660339381, 0.0308736109704841, -0.0118832584031099, 0, 0, 0, 0.0679184789949393, 0.131523569023569, 0.108478811400768}, {0.0350747411302851, 0.010023442173431, 0.151289682539683, 0, -0.0502737956200753, 0.0931518916733021, 0, 0, -0.0506260280833164, 0.0643036920721893, 0, 0, 0, -0.0720384255977965, -0.0237665168062198, 0, 0, 0, 0, -0.0657617845117845, -0.0813591085505763}, {0.0350747411302851, -0.136032429496564, -0.0669642857142857, 0.0369797251402022, 0.0789181675431415, 0.0600762199922021, -0.00773325352755853, -0.0457505448519731, -0.0556886308916479, -0.0379976362244755, -0.0641695953767934, -0.012576058599899, 0.017271652829307, 0.0277862498734357, 0.0202015392852868, 0.0899458787800191, 0.0488154651303458, 0.0200905570240418, 0.00242565996410498, -0.00563672438672438, -0.00542394057003845}, {0.0350747411302852, 0.121713226391662, -0.0322420634920635, -0.0671672558668979, -0.0321518460360948, 0.0276755620188797, 0.139198563496054, 0.0653579212171044, -0.0101252056166633, -0.0292289509419042, 0.0427797302511956, -0.0565922636995451, -0.0332147169794367, 0.00926208329114535, 0.0202015392852867, -0.179891757560038, -0.0325436434202306, 0.0114803182994525, 0.00970263985641986, -0.00187890812890817, -0.00542394057003839}, {0.0350747411302851, -0.121713226391662, -0.0322420634920635, -0.0671672558668978, 0.0321518460360947, 0.0276755620188796, -0.139198563496054, 0.0653579212171044, 0.0101252056166633, -0.0292289509419042, 0.0427797302511956, 0.0565922636995452, -0.0332147169794366, -0.00926208329114532, 0.0202015392852869, 0.179891757560038, -0.0325436434202305, -0.0114803182994525, 0.00970263985641992, 0.00187890812890817, -0.00542394057003844}, {0.0350747411302851, 0.136032429496564, -0.0669642857142857, 0.0369797251402022, -0.0789181675431414, 0.0600762199922021, 0.00773325352755855, -0.045750544851973, 0.055688630891648, -0.0379976362244755, -0.0641695953767934, 0.0125760585998989, 0.017271652829307, -0.0277862498734358, 0.0202015392852868, -0.0899458787800191, 0.0488154651303458, -0.0200905570240418, 0.00242565996410496, 0.00563672438672438, -0.00542394057003842}, {0.280597929042281, -0.214788046573522, -0.124007936507937, 0.0905625921800871, 0.116915803767617, 0, 0.154665070551171, 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.0325436434202306}, {0.0350747411302849, 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.090562592180087, -0.116915803767617, 0, -0.154665070551172, 0.0784295054605253, -0.101252056166633, 0.0818410626373319, -0.142599100837319, -0.0251521171997978, -0.0318861283002592, 0.107028518031012, -0.0950660672248793, 0, -0.130174573680922, 0.103322864695072, -0.0291079195692597, -0.0263047138047138, 0.0325436434202306}, {0.035074741130285, -0.107394023286761, 0.0620039682539684, 0.0113203240225108, -0.306903984889995, -0.253130140416582, 0, -0.104572673947367, 0, 0.0467663215070468, 0, 0.169776791098635, 0.00930012075424232, 0.126581804978985, 0.172307246845094, 0, 0, 0.154984297042608, 0.101877718492409, -0.0394570707070707, -0.0813591085505764}, {0.035074741130285, 0.107394023286761, 0.0620039682539682, 0.0113203240225109, 0.306903984889995, -0.253130140416582, 0, -0.104572673947367, 0, 0.0467663215070468, 0, -0.169776791098635, 0.00930012075424227, -0.126581804978985, 0.172307246845093, 0, 0, -0.154984297042608, 0.101877718492409, 0.0394570707070707, -0.0813591085505763}, {0.280597929042281, 0, 0.248015873015873, -0.0603750614533914, 0, 0.13500274155551, 0, -0.0522863369736835, 0, -0.210448446781711, 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}, {2.44948974278318, 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, 4.74341649025257, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {2, 0, 3.53553390593274, 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}, {2.64575131106459, 0, -1.49666295470958, 6.83130051063973, 0, 0.305505046330387, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 2.19089023002066, 0, 0, 6.26099033699941, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {1.73205080756888, 0, 3.91918358845309, 0, 0, 4.2, 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, 5.47722557505167, 0, 0, -1.91662969499982, 0, 8.87411967464943, 0, 0.276641667586239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {2.36643191323985, 0, 1.67332005306815, 2.18217890235992, 0, -2.53734018966619, 0, 8.50420064270761, 0, 0.76063882925567, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 1.2247448713916, 0, 0, 4.57142857142857, 0, 0, 0, 7.42307488958091, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {1.54919333848297, 0, 3.83405790253617, 0, 0, 5.3665631459995, 0, 0, 0, 4.6475800154489, 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}, {2.70801280154532, 0, -2.18840481772878, 7.86606636127615, 0, 1.00508909139074, 0, -2.01843356939835, 0, -0.257905981099561, 10.899541274751, 0, 0.225667733462116, 0, 0.02883476527712, 0, 0, 0, 0, 0, 0}, {0, 3.42857142857143, 0, 0, 4.98646126209433, 0, 2.16024689946929, 0, -3.63654916038796, 0, 0, 10.6270096138723, 0, 0.745394019896836, 0, 0, 0, 0, 0, 0, 0}, {2.16024689946929, 0, 2.96776330720949, 0.89642145700079, 0, -0.160356745147461, 0, 4.60043706228237, 0, -2.98319809926712, 0, 0, 9.90113162256756, 0, 1.26512019212764, 0, 0, 0, 0, 0, 0}, {0, 0.766651877999938, 1.05792111182446e-14, 0, 3.1689662255656, 0, 0, 0, 6.7763092717894, 0, 0, 0, 0, 8.33375849255573, 0, 0, 0, 0, 0, 0, 0}, {1.41421356237309, 0, 3.65714285714286, 0, 0, 5.6688191190125, 0, 0, 0, 6.46497628513416, 0, 0, 0, 0, 4.96929346597888, 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}}; 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}, {1.22474487139159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {2.12132034355964, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {1.2909944487358, 2.37170824512628, -0.45643546458764, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0.999999999999998, 3.06186217847897, 1.76776695296637, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {-1.15470053837925, 0, 4.08248290463863, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {1.32287565553229, 2.59229627936314, -0.748331477354791, 3.41565025531987, -0.529150262212919, 0.152752523165194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {1.11803398874989, 1.09544511501033, 1.26491106406735, 4.04145188432738, 3.1304951684997, -0.903696114115064, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0.86602540378444, -2.54558441227157, 1.95959179422654, 0, 4.84974226119285, 2.1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {2.5, 0, -1.4142135623731, 0, 0, 6.06217782649107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {1.34164078649987, 2.73861278752583, -0.948683298050515, 3.71153744479045, -0.958314847499912, 0.331970001103493, 4.43705983732472, -0.535714285714288, 0.138320833793118, -0.0479157423749944, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {1.18321595661992, 1.44913767461895, 0.836660026534073, 1.09108945117996, 2.87352446607695, -1.26867009483309, 5.03115294937453, 4.25210032135381, -1.09788758206711, 0.380319414627833, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {1, 0.6123724356958, 1.76776695296637, -3.68855556781659, 2.28571428571429, 0.824786098842319, 0, 5.74988908499947, 3.71153744479046, -1.28571428571429, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0.774596669241482, 3.32039154317681, 1.91702895126809, 0, -3.09838667696593, 2.68328157299975, 0, 0, 6.70820393249938, 2.32379000772446, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {-1.78885438199984, 0, 4.42718872423574, 0, 0, -1.54919333848296, 0, 0, 0, 8.04984471899925, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {1.35400640077266, 2.84282124887606, -1.09420240886439, 3.93303318063807, -1.3056490293165, 0.50254454569537, 4.77648561337882, -1.00921678469917, 0.335029697130245, -0.128952990549778, 5.44977063737549, -0.534027326253241, 0.112833866731058, -0.0374574588632187, 0.0144173826385604, 0, 0, 0, 0, 0, 0}, {1.22474487139159, 1.71428571428572, 0.494871659305393, 1.52466958615261, 2.49323063104717, -1.36370593514548, 1.08012344973465, 4.1731242476584, -1.81827458019398, 0.758175396575747, 6.02494813255683, 5.31350480693613, -1.12268279877562, 0.372697009948417, -0.143451146013256, 0, 0, 0, 0, 0, 0}, {1.08012344973464, 0.907114735222147, 1.48388165360474, 0.448210728500397, 2.70802379183471, -0.0801783725737299, -4.7628967220784, 2.30021853114118, 2.67261241912425, -1.49159904963356, 0, 6.69438681395203, 4.95056581128378, -1.64343933783479, 0.632560096063822, 0, 0, 0, 0, 0, 0}, {0.912870929175273, 0.383325938999969, 1.91804889526462, 4.3184021279607, 1.5844831127828, 1.82960350338313, 0, -4.37408882639854, 3.3881546358947, 0.260820265478647, 0, 0, 7.53118516569603, 4.16687924627787, -1.60383256967946, 0, 0, 0, 0, 0, 0}, {0.707106781186546, -3.36512728327668, 1.82857142857144, 0, 4.72751390850435, 2.83440955950625, 0, 0, -3.49927106111882, 3.23248814256708, 0, 0, 0, 8.60706876079547, 2.48464673298944, 0, 0, 0, 0, 0, 0}, {2.85773803324704, 0, -2.30940107675849, 0, 0, 6.36396103067893, 0, 0, 0, -1.63299316185544, 0, 0, 0, 0, 10.041580220928, 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 double new_coeff0_0 = 0; double new_coeff0_1 = 0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -