⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 poisson2d_5.h

📁 Dolfin provide a high-performance linear algebra library
💻 H
📖 第 1 页 / 共 5 页
字号:
    const double psitilde_bs_0_2 = 0.111111111111111*psitilde_bs_0_1 + 1.66666666666667*y*psitilde_bs_0_1 - 0.555555555555556*psitilde_bs_0_0;    const double psitilde_bs_0_3 = 0.05*psitilde_bs_0_2 + 1.75*y*psitilde_bs_0_2 - 0.7*psitilde_bs_0_1;    const double psitilde_bs_0_4 = 0.0285714285714286*psitilde_bs_0_3 + 1.8*y*psitilde_bs_0_3 - 0.771428571428571*psitilde_bs_0_2;    const double psitilde_bs_0_5 = 0.0185185185185185*psitilde_bs_0_4 + 1.83333333333333*y*psitilde_bs_0_4 - 0.814814814814815*psitilde_bs_0_3;    const double psitilde_bs_1_0 = 1;    const double psitilde_bs_1_1 = 2.5*y + 1.5;    const double psitilde_bs_1_2 = 0.54*psitilde_bs_1_1 + 2.1*y*psitilde_bs_1_1 - 0.56*psitilde_bs_1_0;    const double psitilde_bs_1_3 = 0.285714285714286*psitilde_bs_1_2 + 2*y*psitilde_bs_1_2 - 0.714285714285714*psitilde_bs_1_1;    const double psitilde_bs_1_4 = 0.178571428571429*psitilde_bs_1_3 + 1.96428571428571*y*psitilde_bs_1_3 - 0.785714285714286*psitilde_bs_1_2;    const double psitilde_bs_2_0 = 1;    const double psitilde_bs_2_1 = 3.5*y + 2.5;    const double psitilde_bs_2_2 = 1.02040816326531*psitilde_bs_2_1 + 2.57142857142857*y*psitilde_bs_2_1 - 0.551020408163265*psitilde_bs_2_0;    const double psitilde_bs_2_3 = 0.578703703703704*psitilde_bs_2_2 + 2.29166666666667*y*psitilde_bs_2_2 - 0.712962962962963*psitilde_bs_2_1;    const double psitilde_bs_3_0 = 1;    const double psitilde_bs_3_1 = 4.5*y + 3.5;    const double psitilde_bs_3_2 = 1.51234567901235*psitilde_bs_3_1 + 3.05555555555556*y*psitilde_bs_3_1 - 0.54320987654321*psitilde_bs_3_0;    const double psitilde_bs_4_0 = 1;    const double psitilde_bs_4_1 = 5.5*y + 4.5;    const double psitilde_bs_5_0 = 1;        // Compute basisvalues    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.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}};        // Extract relevant coefficients    const double coeff0_0 = coefficients0[dof][0];    const double coeff0_1 = coefficients0[dof][1];    const double coeff0_2 = coefficients0[dof][2];    const double coeff0_3 = coefficients0[dof][3];    const double coeff0_4 = coefficients0[dof][4];    const double coeff0_5 = coefficients0[dof][5];    const double coeff0_6 = coefficients0[dof][6];    const double coeff0_7 = coefficients0[dof][7];    const double coeff0_8 = coefficients0[dof][8];    const double coeff0_9 = coefficients0[dof][9];    const double coeff0_10 = coefficients0[dof][10];    const double coeff0_11 = coefficients0[dof][11];    const double coeff0_12 = coefficients0[dof][12];    const double coeff0_13 = coefficients0[dof][13];    const double coeff0_14 = coefficients0[dof][14];    const double coeff0_15 = coefficients0[dof][15];    const double coeff0_16 = coefficients0[dof][16];    const double coeff0_17 = coefficients0[dof][17];    const double coeff0_18 = coefficients0[dof][18];    const double coeff0_19 = coefficients0[dof][19];    const double coeff0_20 = coefficients0[dof][20];        // Compute value(s)    *values = coeff0_0*basisvalue0 + coeff0_1*basisvalue1 + coeff0_2*basisvalue2 + coeff0_3*basisvalue3 + coeff0_4*basisvalue4 + coeff0_5*basisvalue5 + coeff0_6*basisvalue6 + coeff0_7*basisvalue7 + coeff0_8*basisvalue8 + coeff0_9*basisvalue9 + coeff0_10*basisvalue10 + coeff0_11*basisvalue11 + coeff0_12*basisvalue12 + coeff0_13*basisvalue13 + coeff0_14*basisvalue14 + coeff0_15*basisvalue15 + coeff0_16*basisvalue16 + coeff0_17*basisvalue17 + coeff0_18*basisvalue18 + coeff0_19*basisvalue19 + coeff0_20*basisvalue20;  }  /// Evaluate order n derivatives of basis function i at given point in cell  virtual void evaluate_basis_derivatives(unsigned int i,                                          unsigned int n,                                          double* values,                                          const double* coordinates,                                          const ufc::cell& c) const  {    // Extract vertex coordinates    const double * const * element_coordinates = c.coordinates;        // Compute Jacobian of affine map from reference cell    const double J_00 = element_coordinates[1][0] - element_coordinates[0][0];    const double J_01 = element_coordinates[2][0] - element_coordinates[0][0];    const double J_10 = element_coordinates[1][1] - element_coordinates[0][1];    const double J_11 = element_coordinates[2][1] - element_coordinates[0][1];          // Compute determinant of Jacobian    const double detJ = J_00*J_11 - J_01*J_10;        // Compute constants    const double C0 = element_coordinates[1][0] + element_coordinates[2][0];    const double C1 = element_coordinates[1][1] + element_coordinates[2][1];        // Get coordinates and map to the reference (FIAT) element    double x = (J_01*C1 - J_11*C0 + 2.0*J_11*coordinates[0] - 2.0*J_01*coordinates[1]) / detJ;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -