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

📄 poisson2d_5.h

📁 利用C
💻 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.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}};        // 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 all basis functions at given point in cell  virtual void evaluate_basis_all(double* values,                                  const double* coordinates,                                  const ufc::cell& c) const  {    throw std::runtime_error("The vectorised version of evaluate_basis() is not yet implemented.");  }  /// 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 inverse of Jacobian

⌨️ 快捷键说明

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