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

📄 mass.h

📁 finite element library for mathematic majored research
💻 H
📖 第 1 页 / 共 5 页
字号:
    const double psitilde_a_0 = 1;    const double psitilde_a_1 = x;    const double psitilde_a_2 = 1.5*x*psitilde_a_1 - 0.5*psitilde_a_0;    const double psitilde_a_3 = 1.666666667*x*psitilde_a_2 - 0.6666666667*psitilde_a_1;        // Compute psitilde_bs    const double psitilde_bs_0_0 = 1;    const double psitilde_bs_0_1 = 1.5*y + 0.5;    const double psitilde_bs_0_2 = 0.1111111111*psitilde_bs_0_1 + 1.666666667*y*psitilde_bs_0_1 - 0.5555555556*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_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_2_0 = 1;    const double psitilde_bs_2_1 = 3.5*y + 2.5;    const double psitilde_bs_3_0 = 1;        // Compute psitilde_cs    const double psitilde_cs_00_0 = 1;    const double psitilde_cs_00_1 = 2*z + 1;    const double psitilde_cs_00_2 = 0.3125*psitilde_cs_00_1 + 1.875*z*psitilde_cs_00_1 - 0.5625*psitilde_cs_00_0;    const double psitilde_cs_00_3 = 0.1555555556*psitilde_cs_00_2 + 1.866666667*z*psitilde_cs_00_2 - 0.7111111111*psitilde_cs_00_1;    const double psitilde_cs_01_0 = 1;    const double psitilde_cs_01_1 = 3*z + 2;    const double psitilde_cs_01_2 = 0.7777777778*psitilde_cs_01_1 + 2.333333333*z*psitilde_cs_01_1 - 0.5555555556*psitilde_cs_01_0;    const double psitilde_cs_02_0 = 1;    const double psitilde_cs_02_1 = 4*z + 3;    const double psitilde_cs_03_0 = 1;    const double psitilde_cs_10_0 = 1;    const double psitilde_cs_10_1 = 3*z + 2;    const double psitilde_cs_10_2 = 0.7777777778*psitilde_cs_10_1 + 2.333333333*z*psitilde_cs_10_1 - 0.5555555556*psitilde_cs_10_0;    const double psitilde_cs_11_0 = 1;    const double psitilde_cs_11_1 = 4*z + 3;    const double psitilde_cs_12_0 = 1;    const double psitilde_cs_20_0 = 1;    const double psitilde_cs_20_1 = 4*z + 3;    const double psitilde_cs_21_0 = 1;    const double psitilde_cs_30_0 = 1;        // Compute basisvalues    const double basisvalue0 = 0.8660254038*psitilde_a_0*scalings_y_0*psitilde_bs_0_0*scalings_z_0*psitilde_cs_00_0;    const double basisvalue1 = 2.738612788*psitilde_a_1*scalings_y_1*psitilde_bs_1_0*scalings_z_1*psitilde_cs_10_0;    const double basisvalue2 = 1.58113883*psitilde_a_0*scalings_y_0*psitilde_bs_0_1*scalings_z_1*psitilde_cs_01_0;    const double basisvalue3 = 1.118033989*psitilde_a_0*scalings_y_0*psitilde_bs_0_0*scalings_z_0*psitilde_cs_00_1;    const double basisvalue4 = 5.123475383*psitilde_a_2*scalings_y_2*psitilde_bs_2_0*scalings_z_2*psitilde_cs_20_0;    const double basisvalue5 = 3.968626967*psitilde_a_1*scalings_y_1*psitilde_bs_1_1*scalings_z_2*psitilde_cs_11_0;    const double basisvalue6 = 2.291287847*psitilde_a_0*scalings_y_0*psitilde_bs_0_2*scalings_z_2*psitilde_cs_02_0;    const double basisvalue7 = 3.240370349*psitilde_a_1*scalings_y_1*psitilde_bs_1_0*scalings_z_1*psitilde_cs_10_1;    const double basisvalue8 = 1.870828693*psitilde_a_0*scalings_y_0*psitilde_bs_0_1*scalings_z_1*psitilde_cs_01_1;    const double basisvalue9 = 1.322875656*psitilde_a_0*scalings_y_0*psitilde_bs_0_0*scalings_z_0*psitilde_cs_00_2;    const double basisvalue10 = 7.937253933*psitilde_a_3*scalings_y_3*psitilde_bs_3_0*scalings_z_3*psitilde_cs_30_0;    const double basisvalue11 = 6.708203932*psitilde_a_2*scalings_y_2*psitilde_bs_2_1*scalings_z_3*psitilde_cs_21_0;    const double basisvalue12 = 5.196152423*psitilde_a_1*scalings_y_1*psitilde_bs_1_2*scalings_z_3*psitilde_cs_12_0;    const double basisvalue13 = 3*psitilde_a_0*scalings_y_0*psitilde_bs_0_3*scalings_z_3*psitilde_cs_03_0;    const double basisvalue14 = 5.809475019*psitilde_a_2*scalings_y_2*psitilde_bs_2_0*scalings_z_2*psitilde_cs_20_1;    const double basisvalue15 = 4.5*psitilde_a_1*scalings_y_1*psitilde_bs_1_1*scalings_z_2*psitilde_cs_11_1;    const double basisvalue16 = 2.598076211*psitilde_a_0*scalings_y_0*psitilde_bs_0_2*scalings_z_2*psitilde_cs_02_1;    const double basisvalue17 = 3.674234614*psitilde_a_1*scalings_y_1*psitilde_bs_1_0*scalings_z_1*psitilde_cs_10_2;    const double basisvalue18 = 2.121320344*psitilde_a_0*scalings_y_0*psitilde_bs_0_1*scalings_z_1*psitilde_cs_01_2;    const double basisvalue19 = 1.5*psitilde_a_0*scalings_y_0*psitilde_bs_0_0*scalings_z_0*psitilde_cs_00_3;        // Table(s) of coefficients    const static double coefficients0[20][20] = \    {{0.02886751346, 0.01304101327, 0.007529232524, 0.005323971375, 0.01829812637, 0.01417366774, 0.008183170884, 0.01157275125, 0.006681531048, 0.004724555913, -0.02834733548, -0.02395787119, -0.01855768722, -0.01071428571, -0.02074812507, -0.01607142857, -0.009278843612, -0.01312226648, -0.007576144084, -0.005357142857},    {0.02886751346, -0.01304101327, 0.007529232524, 0.005323971375, 0.01829812637, -0.01417366774, 0.008183170884, -0.01157275125, 0.006681531048, 0.004724555913, 0.02834733548, -0.02395787119, 0.01855768722, -0.01071428571, -0.02074812507, 0.01607142857, -0.009278843612, 0.01312226648, -0.007576144084, -0.005357142857},    {0.02886751346, 0, -0.01505846505, 0.005323971375, 0, 0, 0.02454951265, 0, -0.0133630621, 0.004724555913, 0, 0, 0, 0.04285714286, 0, 0, -0.02783653084, 0, 0.01515228817, -0.005357142857},    {0.02886751346, 0, 0, -0.01597191412, 0, 0, 0, 0, 0, 0.02834733548, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.05357142857},    {0, 0, 0.1129384879, -0.0638876565, 0, 0, 0.07364853795, 0, 0.02672612419, -0.02362277956, 0, 0, 0, 0, 0, 0, 0.06495190528, 0, -0.06060915267, 0.02678571429},    {0, 0, -0.02258769757, 0.127775313, 0, 0, 0, 0, 0.06681531048, 0.04724555913, 0, 0, 0, 0, 0, 0, 0, 0, 0.07576144084, -0.05357142857},    {0, 0.09780759955, -0.05646924393, -0.0638876565, 0.0548943791, -0.04252100321, 0.02454951265, 0.02314550249, -0.0133630621, -0.02362277956, 0, 0, 0, 0, 0.04841229183, -0.0375, 0.02165063509, -0.05248906592, 0.03030457634, 0.02678571429},    {0, -0.01956151991, 0.01129384879, 0.127775313, 0, 0, 0, 0.05786375624, -0.03340765524, 0.04724555913, 0, 0, 0, 0, 0, 0, 0, 0.0656113324, -0.03788072042, -0.05357142857},    {0, 0.09780759955, -0.0790569415, -0.03194382825, 0.0548943791, 0.01417366774, -0.02454951265, -0.04629100499, 0.0133630621, 0.02362277956, 0, 0.04791574237, -0.06185895741, 0.04285714286, -0.00691604169, -0.01607142857, 0.01546473935, 0.008748177653, 0, -0.005357142857},    {0, -0.01956151991, 0.1242323366, -0.03194382825, 0, 0.05669467095, 0.02454951265, -0.01157275125, -0.04677071733, 0.02362277956, 0, 0, 0.06185895741, -0.06428571429, 0, -0.02142857143, 0.009278843612, 0.004374088826, 0.007576144084, -0.005357142857},    {0, -0.09780759955, -0.05646924393, -0.0638876565, 0.0548943791, 0.04252100321, 0.02454951265, -0.02314550249, -0.0133630621, -0.02362277956, 0, 0, 0, 0, 0.04841229183, 0.0375, 0.02165063509, 0.05248906592, 0.03030457634, 0.02678571429},    {0, 0.01956151991, 0.01129384879, 0.127775313, 0, 0, 0, -0.05786375624, -0.03340765524, 0.04724555913, 0, 0, 0, 0, 0, 0, 0, -0.0656113324, -0.03788072042, -0.05357142857},    {0, -0.09780759955, -0.0790569415, -0.03194382825, 0.0548943791, -0.01417366774, -0.02454951265, 0.04629100499, 0.0133630621, 0.02362277956, 0, 0.04791574237, 0.06185895741, 0.04285714286, -0.00691604169, 0.01607142857, 0.01546473935, -0.008748177653, 0, -0.005357142857},    {0, 0.01956151991, 0.1242323366, -0.03194382825, 0, -0.05669467095, 0.02454951265, 0.01157275125, -0.04677071733, 0.02362277956, 0, 0, -0.06185895741, -0.06428571429, 0, 0.02142857143, 0.009278843612, -0.004374088826, 0.007576144084, -0.005357142857},    {0, -0.1173691195, -0.04517539515, -0.03194382825, -0.01829812637, 0.04252100321, 0.04091585442, 0.03471825374, 0.03340765524, 0.02362277956, 0.08504200643, 0.02395787119, -0.006185895741, -0.01071428571, 0.02074812507, -0.005357142857, -0.009278843612, -0.004374088826, -0.007576144084, -0.005357142857},    {0, 0.1173691195, -0.04517539515, -0.03194382825, -0.01829812637, -0.04252100321, 0.04091585442, -0.03471825374, 0.03340765524, 0.02362277956, -0.08504200643, 0.02395787119, 0.006185895741, -0.01071428571, 0.02074812507, 0.005357142857, -0.009278843612, 0.004374088826, -0.007576144084, -0.005357142857},    {0.2598076211, 0.1173691195, 0.06776309272, 0.04791574237, 0, 0.08504200643, -0.07364853795, 0.06943650748, 0.04008918629, -0.09921567416, 0, 0, 0, 0, 0, 0.075, -0.06495190528, -0.02624453296, -0.01515228817, 0.02678571429},    {0.2598076211, -0.1173691195, 0.06776309272, 0.04791574237, 0, -0.08504200643, -0.07364853795, -0.06943650748, 0.04008918629, -0.09921567416, 0, 0, 0, 0, 0, -0.075, -0.06495190528, 0.02624453296, -0.01515228817, 0.02678571429},    {0.2598076211, 0, -0.1355261854, 0.04791574237, -0.1097887582, 0, 0.02454951265, 0, -0.08017837257, -0.09921567416, 0, 0, 0, 0, -0.09682458366, 0, 0.02165063509, 0, 0.03030457634, 0.02678571429},    {0.2598076211, 0, 0, -0.1437472271, -0.1097887582, 0, -0.1227475633, 0, 0, 0.04252100321, 0, -0.09583148475, 0, 0.04285714286, 0.01383208338, 0, 0.01546473935, 0, 0, -0.005357142857}};        // 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];        // 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;  }  /// 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_02 = element_coordinates[3][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];    const double J_12 = element_coordinates[3][1] - element_coordinates[0][1];    const double J_20 = element_coordinates[1][2] - element_coordinates[0][2];    const double J_21 = element_coordinates[2][2] - element_coordinates[0][2];    const double J_22 = element_coordinates[3][2] - element_coordinates[0][2];          // Compute sub determinants    const double d00 = J_11*J_22 - J_12*J_21;    const double d01 = J_12*J_20 - J_10*J_22;    const double d02 = J_10*J_21 - J_11*J_20;        const double d10 = J_02*J_21 - J_01*J_22;    const double d11 = J_00*J_22 - J_02*J_20;    const double d12 = J_01*J_20 - J_00*J_21;    

⌨️ 快捷键说明

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