📄 mass.h
字号:
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}}; // Interesting (new) part // Tables of derivatives of the polynomial base (transpose) const static double dmats0[20][20] = \ {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {6.32455532, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 11.22497216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {4.582575695, 0, 8.366600265, -1.183215957, 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}, {3.741657387, 0, 0, 8.694826048, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {5.499090834, 0, -3.346640106, -2.366431913, 15.49193338, 0, 0.692820323, 0, 0.5656854249, 0.4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 4.898979486, 0, 0, 0, 14.19859148, 0, -0.8280786712, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {3.6, 0, 8.76356092, -1.549193338, 0, 0, 9.52470472, 0, -1.48131216, 0.2618614683, 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.242640687, 0, 0, 0, 0, 0, 14.34274331, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {3.117691454, 0, 3.16227766, 4.91934955, 0, 0, 0, 0, 10.69044968, -2.418972627, 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.545584412, 0, 0, 7.668115805, 0, 0, 0, 0, 0, 10.36918512, 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, 0, 0, 0, 0, 0, 0, 0, 0}}; const static double dmats1[20][20] = \ {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {3.16227766, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {5.477225575, 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.958039892, 5.61248608, -1.08012345, -0.7637626158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {2.291287847, 7.245688373, 4.183300133, -0.5916079783, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {-2.645751311, 0, 9.660917831, 0.6831300511, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {1.870828693, 0, 0, 4.347413024, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {3.240370349, 0, 0, 7.529940239, 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.749545417, 5.796550698, -1.673320053, -1.183215957, 7.745966692, -1.2, 0.3464101615, -0.9797958971, 0.2828427125, 0.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {2.323790008, 2.449489743, 2.828427125, -1, 9.16515139, 7.09929574, -2.049390153, -0.4140393356, -0.4780914437, 0.1690308509, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {1.8, -5.692099788, 4.38178046, -0.7745966692, 0, 10.99818167, 4.76235236, 0.9621404709, -0.7406560798, 0.1309307341, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {5.196152423, 0, -3.16227766, -2.236067977, 0, 0, 13.74772708, 0, 0.5345224838, 0.377964473, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {2.01246118, 2.121320344, -0.4082482905, 3.175426481, 0, 0, 0, 7.171371656, -1.380131119, -1.561440117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {1.558845727, 2.738612788, 1.58113883, 2.459674775, 0, 0, 0, 9.258200998, 5.345224838, -1.209486314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {-1.8, 0, 3.651483717, -2.840187787, 0, 0, 0, 0, 12.344268, 1.396594498, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {1.272792206, 0, 0, 3.834057903, 0, 0, 0, 0, 0, 5.184592559, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {2.204540769, 0, 0, 6.640783086, 0, 0, 0, 0, 0, 8.979977728, 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}}; const static double dmats2[20][20] = \ {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {3.16227766, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {1.825741858, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {5.163977795, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {2.958039892, 5.61248608, -1.08012345, -0.7637626158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {2.291287847, 1.449137675, 4.183300133, -0.5916079783, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {1.322875656, 0, 3.864367132, -0.3415650255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {1.870828693, 7.09929574, 0, 4.347413024, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {1.08012345, 0, 7.09929574, 2.50998008, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {-3.818813079, 0, 0, 8.874119675, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {2.749545417, 5.796550698, -1.673320053, -1.183215957, 7.745966692, -1.2, 0.3464101615, -0.9797958971, 0.2828427125, 0.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {2.323790008, 2.449489743, 2.828427125, -1, 1.309307341, 7.09929574, -2.049390153, -0.4140393356, -0.4780914437, 0.1690308509, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {1.8, 0.632455532, 4.38178046, -0.7745966692, 0, 3.142337619, 4.76235236, -0.1069044968, -0.7406560798, 0.1309307341, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {1.039230485, 0, 3.16227766, -0.4472135955, 0, 0, 5.891883036, 0, -0.5345224838, 0.0755928946, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {2.01246118, 2.121320344, -0.4082482905, 3.175426481, 9.071147352, 0, 0, 7.171371656, -1.380131119, -1.561440117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {1.558845727, 0.5477225575, 1.58113883, 2.459674775, 0, 9.071147352, 0, 1.8516402, 5.345224838, -1.209486314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0.9, 0, 1.460593487, 1.420093894, 0, 0, 9.071147352, 0, 4.937707199, -0.6982972488, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {1.272792206, -6.260990337, 0, 3.834057903, 0, 0, 0, 10.58300524, 0, 5.184592559, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0.7348469228, 0, -6.260990337, 2.213594362, 0, 0, 0, 0, 10.58300524, 2.993325909, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {5.715767665, 0, 0, -4.695742753, 0, 0, 0, 0, 0, 12.69960629, 0, 0, 0, 0, 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;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -