ParMooN
 All Classes Functions Variables Friends Pages
BF_N_T_BDM3_2D.h
1 // ***********************************************************************
2 // Rt3 Raviart-Thomas vector element, nonconforming , 2D
3 // History: 14.11.2011 implementation (Ulrich)
4 // ***********************************************************************
5 
6 // base function values
7 // vector function, orthonormal to edges,
8 // functions 1,2,3, and 4 are orthogonal to edge 1
9 // functions 5,6,7, and 8 are orthogonal to edge 2
10 // functions 9,10,11 and 12 are orthogonal to edge 3
11 // functions 13-20 correspond to inner degrees of freedom
12 
13 // NOTE: If you want to use other evaluation points for degress of freedom on
14 // the edges of a cell, you also have to change basis functions in
15 // NF_N_Q_BDM3_2D.h
16 
17 /*
18 // using equidistant points on edges and point evaluation for inner dofs
19 static double N_T_BDM3_2D_CM[400] = {
20 0,-0,0,0,0,-0,0,-0,1,-4,6,-4,-0,0,-0,-0,0,0,0,0,
21 -4,6,-4,1,-0,0,-0,0,0,-0,0,-0,0,-0,0,0,-0,0,-0,-0,
22 -1,1.5,-1,-1.8333333,-2.1666667,7,-5.5,2,1,6,-14,19.333333,25,-8.3333333,8.3333333,27,-2.0833333,2.0833333,-2.0833333,-20.25,
23 21.666667,-47.5,35,-9.1666667,0,-0,0,-0,-0,0,-0,0,-0,0,-0,-0,0,-0,0,0,
24 10,-25,30,-5,-3,-18,17,-8,-7,5.5,3,-24.5,-56.25,18.75,-18.75,-60.75,12.5,18.75,12.5,20.25,
25 -37.5,100,-87.5,25,-0,0,-0,0,0,-0,0,-0,0,-0,0,0,-0,0,-0,-0,
26 -10,27.5,-35,10.833333,9.1666667,5,-7.5,5,5,-7.5,5,9.1666667,31.25,-10.416667,10.416667,33.75,-10.416667,-20.833333,-10.416667,-0,
27 20.833333,-62.5,62.5,-20.833333,0,-0,0,-0,-0,0,-0,0,-0,0,-0,-0,0,-0,0,0,
28 -0,0,-0,-0,-0,0,-0,0,-9.1666667,35,-47.5,21.666667,0,-0,0,0,-0,-0,-0,-0,
29 19.333333,-14,6,1,2,-5.5,7,-2.1666667,-1.8333333,-1,1.5,-1,-25,8.3333333,-8.3333333,-27,22.916667,-2.0833333,2.0833333,6.75,
30 0,-0,0,0,0,-0,0,-0,25,-87.5,100,-37.5,-0,0,-0,-0,0,0,0,0,
31 -24.5,3,5.5,-7,-8,17,-18,-3,-5,30,-25,10,56.25,-18.75,18.75,60.75,-43.75,12.5,18.75,-40.5,
32 0,-0,0,-0,-0,0,0,-0,-20.833333,62.5,-62.5,20.833333,-0,-0,-0,0,0,-0,0,-0,
33 9.1666667,5,-7.5,5,5,-7.5,5,9.1666667,10.833333,-35,27.5,-10,-31.25,10.416667,-10.416667,-33.75,20.833333,-10.416667,-20.833333,33.75,
34 -2,13,-22,19.666667,20.333333,-38,27,-8,-1.6666667,-50,95,-70,-81.25,47.916667,-47.916667,-141.75,4.1666667,-35.416667,4.1666667,128.25,
35 -70,95,-50,-1.6666667,-8,27,-38,20.333333,19.666667,-22,13,-2,81.25,-47.916667,47.916667,141.75,-77.083333,4.1666667,-35.416667,-13.5,
36 -10,15,-10,-18.333333,-21.666667,70,-55,20,15,2.5,-35,44.166667,93.75,-72.916667,52.083333,168.75,-20.833333,10.416667,-20.833333,-101.25,
37 60.833333,-110,77.5,-1.6666667,5,-20,30,-20,-20,30,-20,5,-62.5,62.5,-41.666667,-135,62.5,-0,41.666667,0,
38 5,-20,30,-20,-20,30,-20,5,-1.6666667,77.5,-110,60.833333,62.5,-41.666667,62.5,135,0,41.666667,0,-135,
39 44.166667,-35,2.5,15,20,-55,70,-21.666667,-18.333333,-10,15,-10,-93.75,52.083333,-72.916667,-168.75,72.916667,-20.833333,10.416667,67.5
40 };
41 */
42 /*
43 // using equidistant points on edges and integral evaluation for inner dofs
44 static double N_T_BDM3_2D_CM[400] = {
45 0,0,0,0,0,0,0,0,1,-4,6,-4,0,0,0,0,0,0,-0,0,
46 -4,6,-4,1,0,0,0,0,-0,0,-0,0,0,0,-0,-0,-0,-0,0,0,
47 -0.54861111,5.1979167,-6.5208333,1.6215278,5.7708333,-3.1875,3.6875,-0.27083333,-4.4548611,19.520833,-29.697917,26.881944,165,75,-138.75,-41.25,-180,840,-1050,-1050,
48 21.666667,-47.5,35,-9.1666667,0,-0,0,-0,0,-0,0,-0,-0,-0,0,0,0,0,-0,-0,
49 4.5833333,-24.53125,33.125,-13.177083,-25.520833,20.3125,-17.1875,3.6458333,7.2395833,-34.375,46.71875,-49.583333,-465,-165,438.75,78.75,450,-1890,3150,1890,
50 -37.5,100,-87.5,25,0,-0,0,-0,-0,0,-0,0,0,0,-0,-0,-0,-0,0,0,
51 -5.0347222,23.333333,-32.604167,15.555556,23.75,-23.125,17.5,-4.375,-3.7847222,18.854167,-23.020833,26.701389,300,90,-300,-37.5,-270,1050,-2100,-840,
52 20.833333,-62.5,62.5,-20.833333,0,-0,0,-0,-0,0,0,-0,-0,-0,0,0,0,0,-0,-0,
53 0,0,0,0,0,0,0,0,-9.1666667,35,-47.5,21.666667,0,0,0,0,0,0,-0,0,
54 26.881944,-29.697917,19.520833,-4.4548611,-0.27083333,3.6875,-3.1875,5.7708333,1.6215278,-6.5208333,5.1979167,-0.54861111,75,165,-41.25,-138.75,-180,-840,1050,1050,
55 0,0,0,0,0,0,0,0,25,-87.5,100,-37.5,0,0,0,0,0,0,-0,0,
56 -49.583333,46.71875,-34.375,7.2395833,3.6458333,-17.1875,20.3125,-25.520833,-13.177083,33.125,-24.53125,4.5833333,-165,-465,78.75,438.75,450,1890,-1890,-3150,
57 0,0,0,0,0,0,0,0,-20.833333,62.5,-62.5,20.833333,0,0,0,0,0,0,-0,0,
58 26.701389,-23.020833,18.854167,-3.7847222,-4.375,17.5,-23.125,23.75,15.555556,-32.604167,23.333333,-5.0347222,90,300,-37.5,-300,-270,-1050,840,2100,
59 0.83333333,-8.4375,3.75,3.8541667,-5.625,-5.625,-5.625,-5.625,18.020833,-66.25,124.0625,-75.833333,-270,-270,202.5,202.5,540,-3780,3780,6300,
60 -75.833333,124.0625,-66.25,18.020833,-5.625,-5.625,-5.625,-5.625,3.8541667,3.75,-8.4375,0.83333333,-270,-270,202.5,202.5,540,3780,-6300,-3780,
61 -1.8055556,12.708333,-7.9166667,-7.9861111,9.5833333,13.75,1.25,5.4166667,-17.013889,45.416667,-87.708333,64.305556,420,300,-345,-195,-720,4200,-5880,-5880,
62 52.604167,-107.5,60.3125,-9.1666667,6.25,9.375,0,3.125,1.3541667,-4.0625,9.0625,-2.6041667,180,90,-180,-67.5,-270,-3150,6300,2520,
63 -2.6041667,9.0625,-4.0625,1.3541667,3.125,-0,9.375,6.25,-9.1666667,60.3125,-107.5,52.604167,90,180,-67.5,-180,-270,3150,-2520,-6300,
64 64.305556,-87.708333,45.416667,-17.013889,5.4166667,1.25,13.75,9.5833333,-7.9861111,-7.9166667,12.708333,-1.8055556,300,420,-195,-345,-720,-4200,5880,5880
65 };
66 */
67 /*
68 // using Gauss-Points on edges and poinit evaluation for inner dofs
69 static double N_T_BDM3_2D_CM[400] = {
70 0,-0,0,-0,-0,0,0,-0,0.1139172,-0.40076152,0.81363245,-1.5267881,0,0,0,-0,0,0,0,-0,
71 -1.5267881,0.81363245,-0.40076152,0.1139172,-0,0,-0,0,0,0,0,-0,0,-0,0,0,-0,0,0,-0,
72 -0.76198813,1.2149494,-5.6145853,-0.74478367,-0.73858904,1.9863806,-1.604315,0.67903604,0.69041947,5.9733357,-3.1943782,21.839644,22.398315,-8.4193818,8.4193818,8.0216494,-0.63642421,0.79058091,-0.79058091,-5.1947638,
73 8.5460236,-13.807167,7.4170704,-2.1559271,0,-0,0,-0,-0,-0,-0,0,-0,0,-0,-0,0,-0,-0,0,
74 3.0787469,-5.5306974,22.612181,-1.6391789,-1.6615799,-4.8743394,4.6642922,-2.1322673,-2.1512171,-12.197483,3.7499819,-44.311624,-52.689953,19.805813,-19.805813,-18.870184,2.3014295,7.7813643,2.8588891,8.6476351,
75 -14.325858,31.388222,-24.998126,7.9357618,-0,0,-0,-0,0,0,0,-0,0,-0,0,0,-0,0,0,-0,
76 -2.4306759,4.7165095,-17.811229,3.9107507,3.926957,2.0743263,-2.6592157,1.339314,1.3468804,6.6249085,-1.3692361,23.998768,30.291638,-11.386431,11.386431,10.848535,-1.6650053,-8.5719452,-2.0683082,-3.4528713,
77 7.4205401,-18.795449,18.795449,-7.4205401,0,-0,0,-0,-0,-0,0,-0,-0,0,-0,-0,0,-0,-0,0,
78 0,-0,0,0,0,-0,0,-0,-2.1559271,7.4170704,-13.807167,8.5460236,-0,0,-0,-0,0,-0,0,0,
79 21.839644,-3.1943782,5.9733357,0.69041947,0.67903604,-1.604315,1.9863806,-0.73858904,-0.74478367,-5.6145853,1.2149494,-0.76198813,-22.398315,8.4193818,-8.4193818,-8.0216494,21.76189,-0.79058091,0.79058091,2.8268856,
80 0,0,-0,-0,-0,0,-0,0,7.9357618,-24.998126,31.388222,-14.325858,0,-0,0,0,0,0,-0,-0,
81 -44.311624,3.7499819,-12.197483,-2.1512171,-2.1322673,4.6642922,-4.8743394,-1.6615799,-1.6391789,22.612181,-5.5306974,3.0787469,52.689953,-19.805813,19.805813,18.870184,-50.388523,2.8588891,7.7813643,-10.222549,
82 0,-0,0,0,0,-0,0,-0,-7.4205401,18.795449,-18.795449,7.4205401,-0,0,-0,-0,0,-0,0,0,
83 23.998768,-1.3692361,6.6249085,1.3468804,1.339314,-2.6592157,2.0743263,3.926957,3.9107507,-17.811229,4.7165095,-2.4306759,-30.291638,11.386431,-11.386431,-10.848535,28.626633,-2.0683082,-8.5719452,7.3956638,
84 10.181838,-15.612597,75.096276,14.600361,14.514959,-29.693874,23.254981,-9.6847343,-9.8586972,-91.777484,49.479053,-73.732526,-75.088267,126.71343,-126.71343,-118.3596,8.7740149,-21.539538,10.899285,79.386953,
85 -73.732526,49.479053,-91.777484,-9.8586972,-9.6847343,23.254981,-29.693874,14.514959,14.600361,75.096276,-15.612597,10.181838,75.088267,-126.71343,126.71343,118.3596,-66.314252,10.899285,-21.539538,-38.972647,
86 -18.456239,29.427488,-135.99179,-18.039527,-17.889486,48.11245,-38.858375,16.447043,16.639391,105.1229,-39.427702,73.016299,90.874914,-199.78894,163.99436,156.24725,-15.414935,15.010504,-19.148789,-87.776797,
87 60.426688,-63.213552,146.68292,11.770531,11.553324,-27.801393,35.64044,-17.950308,-18.051717,-88.791086,18.351342,-12.036946,-60.583276,188.40251,-152.60793,-145.39872,50.164701,-12.942196,27.720735,46.277498,
88 -12.036946,18.351342,-88.791086,-18.051717,-17.950308,35.64044,-27.801393,11.553324,11.770531,146.68292,-63.213552,60.426688,60.583276,-152.60793,188.40251,145.39872,-10.418575,27.720735,-12.942196,-99.121221,
89 73.016299,-39.427702,105.1229,16.639391,16.447043,-38.858375,48.11245,-17.889486,-18.039527,-135.99179,29.427488,-18.456239,-90.874914,163.99436,-199.78894,-156.24725,75.459979,-19.148789,15.010504,68.470458
90 };
91 */
92 /*
93 // using Gauss-Points on edges and integral evaluation for inner dofs
94 static double N_T_BDM3_2D_CM[400] = {
95 0,-0,0,0,-0,0,0,0,0.1139172,-0.40076152,0.81363245,-1.5267881,0,0,0,0,0,0,-0,0,
96 -1.5267881,0.81363245,-0.40076152,0.1139172,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0,0,
97 -0.17018428,2.2815283,-3.1101996,0.74885562,1.9617905,2.9396734,0.9731975,0.12533856,0.040065129,0.50226747,1.7620492,9.9456182,165,75,-138.75,-41.25,-180,840,-1050,-1050,
98 8.5460236,-13.807167,7.4170704,-2.1559271,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0,0,
99 1.0277577,-7.2571895,11.650381,-5.420949,-8.9525388,-8.2414726,-1.5899629,0.033974307,-0.14543559,-2.1577588,-9.8183563,-17.878449,-465,-165,438.75,78.75,450,-1890,3150,1890,
100 -14.325858,31.388222,-24.998126,7.9357618,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0,0,
101 -0.97149058,5.3764227,-9.3538136,6.1988815,8.5175365,4.4881667,1.0175269,-0.27323006,-0.0085467337,2.0562528,7.2426746,9.4596193,300,90,-300,-37.5,-270,1050,-2100,-840,
102 7.4205401,-18.795449,18.795449,-7.4205401,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0,0,
103 0,0,0,0,0,0,0,0,-2.1559271,7.4170704,-13.807167,8.5460236,0,0,0,0,0,0,-0,0,
104 9.9456182,1.7620492,0.50226747,0.040065129,0.12533856,0.9731975,2.9396734,1.9617905,0.74885562,-3.1101996,2.2815283,-0.17018428,75,165,-41.25,-138.75,-180,-840,1050,1050,
105 0,0,0,0,0,0,0,0,7.9357618,-24.998126,31.388222,-14.325858,0,0,0,0,0,0,-0,0,
106 -17.878449,-9.8183563,-2.1577588,-0.14543559,0.033974307,-1.5899629,-8.2414726,-8.9525388,-5.420949,11.650381,-7.2571895,1.0277577,-165,-465,78.75,438.75,450,1890,-1890,-3150,
107 0,0,0,0,0,0,0,0,-7.4205401,18.795449,-18.795449,7.4205401,0,0,0,0,0,0,-0,0,
108 9.4596193,7.2426746,2.0562528,-0.0085467337,-0.27323006,1.0175269,4.4881667,8.5175365,6.1988815,-9.3538136,5.3764227,-0.97149058,90,300,-37.5,-300,-270,-1050,840,2100,
109 0.95813057,-6.840565,4.4442788,1.4381556,-1.5170808,-9.7329192,-9.7329192,-1.5170808,0.65812165,2.5210376,27.033159,-30.212318,-270,-270,202.5,202.5,540,-3780,3780,6300,
110 -30.212318,27.033159,2.5210376,0.65812165,-1.5170808,-9.7329192,-9.7329192,-1.5170808,1.4381556,4.4442788,-6.840565,0.95813057,-270,-270,202.5,202.5,540,3780,-6300,-3780,
111 -1.6494056,9.8242616,-10.422447,-2.7524088,2.4142677,19.338965,6.6154858,1.6312812,-1.1422161,-9.1399621,-9.4321418,24.71432,420,300,-345,-195,-720,4200,-5880,-5880,
112 22.084761,-35.299558,8.8911513,0.57364498,1.557854,12.882071,3.3394611,0.97061406,0.17656408,0.22328333,4.6185472,-1.2683946,180,90,-180,-67.5,-270,-3150,6300,2520,
113 -1.2683946,4.6185472,0.22328333,0.17656408,0.97061406,3.3394611,12.882071,1.557854,0.57364498,8.8911513,-35.299558,22.084761,90,180,-67.5,-180,-270,3150,-2520,-6300,
114 24.71432,-9.4321418,-9.1399621,-1.1422161,1.6312812,6.6154858,19.338965,2.4142677,-2.7524088,-10.422447,9.8242616,-1.6494056,300,420,-195,-345,-720,-4200,5880,5880
115 };
116 */
117 /*
118 // using Tschebyscheff-points on edges and point evaluation for inner dofs
119 static double N_T_BDM3_2D_CM[400] = {
120 -0,0,0,0,-0,-0,0,0,0.049728092,-0.16704466,0.37415144,-1.2568349,-0,0,-0,-0,-0,-0,-0,0,
121 -1.2568349,0.37415144,-0.16704466,0.049728092,-0,0,-0,-0,-0,0,-0,0,0,-0,0,0,-0,0,0,-0,
122 -0.62321422,0.76139292,-6.9444807,-0.44815614,-0.42151723,1.0758927,-0.87698034,0.38738927,0.43255601,7.0648539,-1.7019989,32.733189,33.116923,-8.5810551,8.5810551,4.4959749,-0.50613204,0.44775993,-0.44775993,-2.8280303,
123 7.1964575,-10.760659,5.1038052,-1.5396033,-0,0,-0,-0,-0,0,-0,0,0,-0,0,0,-0,0,-0,-0,
124 2.2405604,-3.0238452,24.481471,-1.8730151,-1.9630569,-2.6280774,2.5139967,-1.1753659,-1.2555743,-15.978098,2.3049836,-71.79714,-78.519768,20.345563,-20.345563,-10.659894,1.7107696,7.1456707,1.5134669,5.0220989,
125 -12.01283,25.001536,-19.344682,6.3559753,-0,0,-0,-0,-0,0,-0,0,0,-0,0,0,-0,0,0,-0,
126 -1.6670743,2.4294969,-17.911142,3.5780061,3.641409,1.1780333,-1.4699717,0.73824855,0.77329023,9.0802884,-0.97713619,40.320785,45.402845,-11.764508,11.764508,6.1639195,-1.2046376,-7.5934307,-1.0657069,-2.1940686,
127 6.1229349,-14.782073,14.782073,-6.1229349,0,-0,-0,0,0,-0,0,-0,-0,-0,0,0,0,-0,-0,0,
128 0,-0,0,-0,-0,0,0,-0,-1.5396033,5.1038052,-10.760659,7.1964575,0,-0,0,0,0,0,0,-0,
129 32.733189,-1.7019989,7.0648539,0.43255601,0.38738927,-0.87698034,1.0758927,-0.42151723,-0.44815614,-6.9444807,0.76139292,-0.62321422,-33.116923,8.5810551,-8.5810551,-4.4959749,32.610791,-0.44775993,0.44775993,1.6679446,
130 -0,0,0,0,0,-0,0,0,6.3559753,-19.344682,25.001536,-12.01283,-0,0,-0,-0,-0,-0,-0,0,
131 -71.79714,2.3049836,-15.978098,-1.2555743,-1.1753659,2.5139967,-2.6280774,-1.9630569,-1.8730151,24.481471,-3.0238452,2.2405604,78.519768,-20.345563,20.345563,10.659894,-76.808998,1.5134669,7.1456707,-5.6377955,
132 0,-0,-0,-0,-0,0,-0,0,-6.1229349,14.782073,-14.782073,6.1229349,0,-0,0,0,0,0,0,-0,
133 40.320785,-0.97713619,9.0802884,0.77329023,0.73824855,-1.4699717,1.1780333,3.641409,3.5780061,-17.911142,2.4294969,-1.6670743,-45.402845,11.764508,-11.764508,-6.1639195,44.198207,-1.0657069,-7.5934307,3.9698509,
134 16.003502,-19.26528,178.81225,14.992402,14.302612,-28.867759,23.158851,-10.165123,-11.388604,-190.91798,46.380055,-107.08639,-111.63669,230.85747,-230.85747,-119.79583,13.105812,-20.253459,11.594321,76.605977,
135 -107.08639,46.380055,-190.91798,-11.388604,-10.165123,23.158851,-28.867759,14.302612,14.992402,178.81225,-19.26528,16.003502,111.63669,-230.85747,230.85747,119.79583,-98.530879,11.594321,-20.253459,-43.189852,
136 -26.920307,32.889062,-299.97318,-19.358513,-18.207821,46.474167,-37.881966,16.733633,18.169487,245.79244,-41.835228,115.14679,136.20853,-367.27723,309.10236,161.9517,-21.862835,15.952126,-19.341399,-89.90331,
137 85.666297,-61.40345,304.05976,14.665534,13.063081,-29.773781,37.152274,-18.658599,-19.544247,-229.4965,24.696279,-20.535876,-90.805689,355.51272,-297.33785,-155.78778,73.978606,-14.886419,26.934829,55.453202,
138 -20.535876,24.696279,-229.4965,-19.544247,-18.658599,37.152274,-29.773781,13.063081,14.665534,304.05976,-61.40345,85.666297,90.805689,-297.33785,355.51272,155.78778,-16.827083,26.934829,-14.886419,-100.33458,
139 115.14679,-41.835228,245.79244,18.169487,16.733633,-37.881966,46.474167,-18.207821,-19.358513,-299.97318,32.889062,-26.920307,-136.20853,309.10236,-367.27723,-161.9517,114.3457,-19.341399,15.952126,72.048389
140 };
141 */
142 
143 // using Tschebyscheff-points on edges and integral evaluation for inner dofs
144 static double N_T_BDM3_2D_CM[400] = {
145 0,-0,0,0,-0,0,0,0,0.049728092,-0.16704466,0.37415144,-1.2568349,0,0,0,0,0,0,-0,0,
146 -1.2568349,0.37415144,-0.16704466,0.049728092,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0,0,
147 -0.14217757,1.9491951,-2.7223763,0.66535879,1.4974097,3.4460202,0.96819333,0.088376748,0.27750741,-0.37689301,4.3216471,8.0277385,165,75,-138.75,-41.25,-180,840,-1050,-1050,
148 7.1964575,-10.760659,5.1038052,-1.5396033,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0,0,
149 0.73664423,-5.6716591,9.5607464,-4.6257315,-7.0097988,-10.521604,-1.1514928,-0.067104115,-0.42935971,-0.96522268,-14.388331,-14.217087,-465,-165,438.75,78.75,450,-1890,3150,1890,
150 -12.01283,25.001536,-19.344682,6.3559753,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0,0,
151 -0.64419475,3.8895086,-7.2125215,5.2172076,6.769224,6.7014326,0.35034409,-0.071000725,0.10212421,1.5091604,9.6925322,7.4461833,300,90,-300,-37.5,-270,1050,-2100,-840,
152 6.1229349,-14.782073,14.782073,-6.1229349,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0,0,
153 0,0,0,0,0,0,0,0,-1.5396033,5.1038052,-10.760659,7.1964575,0,0,0,0,0,0,-0,0,
154 8.0277385,4.3216471,-0.37689301,0.27750741,0.088376748,0.96819333,3.4460202,1.4974097,0.66535879,-2.7223763,1.9491951,-0.14217757,75,165,-41.25,-138.75,-180,-840,1050,1050,
155 0,0,0,0,0,0,0,0,6.3559753,-19.344682,25.001536,-12.01283,0,0,0,0,0,0,-0,0,
156 -14.217087,-14.388331,-0.96522268,-0.42935971,-0.067104115,-1.1514928,-10.521604,-7.0097988,-4.6257315,9.5607464,-5.6716591,0.73664423,-165,-465,78.75,438.75,450,1890,-1890,-3150,
157 0,0,0,0,0,0,0,0,-6.1229349,14.782073,-14.782073,6.1229349,0,0,0,0,0,0,-0,0,
158 7.4461833,9.6925322,1.5091604,0.10212421,-0.071000725,0.35034409,6.7014326,6.769224,5.2172076,-7.2125215,3.8895086,-0.64419475,90,300,-37.5,-300,-270,-1050,840,2100,
159 0.9629979,-6.3777752,4.2564548,1.1583224,-0.85202923,-10.397971,-10.397971,-0.85202923,-0.77640497,7.2191815,18.943769,-25.386546,-270,-270,202.5,202.5,540,-3780,3780,6300,
160 -25.386546,18.943769,7.2191815,-0.77640497,-0.85202923,-10.397971,-10.397971,-0.85202923,1.1583224,4.2564548,-6.3777752,0.9629979,-270,-270,202.5,202.5,540,3780,-6300,-3780,
161 -1.5692075,8.922045,-10.243534,-2.1093038,1.3409789,19.902007,7.825915,0.93109902,0.18054306,-12.296915,-3.3521591,20.468531,420,300,-345,-195,-720,4200,-5880,-5880,
162 18.903147,-28.639089,4.6670018,1.3189399,0.86372932,13.19351,4.1364411,0.55631939,0.036944584,0.65999236,4.2202115,-1.1671484,180,90,-180,-67.5,-270,-3150,6300,2520,
163 -1.1671484,4.2202115,0.65999236,0.036944584,0.55631939,4.1364411,13.19351,0.86372932,1.3189399,4.6670018,-28.639089,18.903147,90,180,-67.5,-180,-270,3150,-2520,-6300,
164 20.468531,-3.3521591,-12.296915,0.18054306,0.93109902,7.825915,19.902007,1.3409789,-2.1093038,-10.243534,8.922045,-1.5692075,300,420,-195,-345,-720,-4200,5880,5880
165 };
166 
167 
168 static void N_T_BDM3_2D_Funct(double xi, double eta, double *values)
169 {
170  int nBF = 20; // number of basis functions
171  // monomials x-component and y-component
172  double mon_x[20]={1, 0, xi, 0, xi*xi, 0, xi*xi*xi, 0, eta, 0, eta*eta, 0, eta*eta*eta, 0, xi*eta, 0, xi*xi*eta, 0, xi*eta*eta, 0};
173  double mon_y[20]={0, 1, 0, xi, 0, xi*xi, 0, xi*xi*xi, 0, eta, 0, eta*eta, 0, eta*eta*eta, 0, xi*eta, 0, xi*xi*eta, 0, xi*eta*eta};
174 
175  memset(values, 0.0, 2*nBF*SizeOfDouble); // 2 is the space dimension
176  for(int i=0; i<nBF; i++)
177  {
178  for(int j=0; j<nBF; j++)
179  {
180  values[i ] += N_T_BDM3_2D_CM[i+j*nBF]*mon_x[j];
181  values[i+nBF] += N_T_BDM3_2D_CM[i+j*nBF]*mon_y[j];
182  }
183  }
184 }
185 
186 // values of the derivatives in xi direction
187 static void N_T_BDM3_2D_DeriveXi(double xi, double eta, double *values)
188 {
189  int nBF = 20; // number of basis functions
190  // monomials x-component and y-component
191  double mon_x[20]={0, 0, 1, 0, 2*xi, 0, 3*xi*xi, 0, 0, 0, 0, 0, 0, 0, eta, 0, 2*xi*eta, 0, eta*eta, 0};
192  double mon_y[20]={0, 0, 0, 1, 0, 2*xi, 0, 3*xi*xi, 0, 0, 0, 0, 0, 0, 0, eta, 0, 2*xi*eta, 0, eta*eta};
193 
194  memset(values, 0.0, 2*nBF*SizeOfDouble); // 2 is the space dimension
195  for(int i=0; i<nBF; i++)
196  {
197  for(int j=0; j<nBF; j++)
198  {
199  values[i ] += N_T_BDM3_2D_CM[i+j*nBF]*mon_x[j];
200  values[i+nBF] += N_T_BDM3_2D_CM[i+j*nBF]*mon_y[j];
201  }
202  }
203 }
204 
205 // values of the derivatives in eta direction
206 static void N_T_BDM3_2D_DeriveEta(double xi, double eta, double *values)
207 {
208  int nBF = 20; // number of basis functions
209  // monomials x-component and y-component
210  double mon_x[20]={0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2*eta, 0, 3*eta*eta, 0, xi, 0, xi*xi, 0, 2*xi*eta, 0};
211  double mon_y[20]={0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2*eta, 0, 3*eta*eta, 0, xi, 0, xi*xi, 0, 2*xi*eta};
212 
213  memset(values, 0.0, 2*nBF*SizeOfDouble); // 2 is the space dimension
214  for(int i=0; i<nBF; i++)
215  {
216  for(int j=0; j<nBF; j++)
217  {
218  values[i ] += N_T_BDM3_2D_CM[i+j*nBF]*mon_x[j];
219  values[i+nBF] += N_T_BDM3_2D_CM[i+j*nBF]*mon_y[j];
220  }
221  }
222 }
223 
224 // values of derivatives in xi-xi direction
225 static void N_T_BDM3_2D_DeriveXiXi(double xi, double eta, double *values)
226 {
227  int nBF = 20; // number of basis functions
228  // monomials x-component and y-component
229  double mon_x[20]={0, 0, 0, 0, 2, 0, 6*xi, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2*eta, 0, 0, 0};
230  double mon_y[20]={0, 0, 0, 0, 0, 2, 0, 6*xi, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2*eta, 0, 0};
231 
232  memset(values, 0.0, 2*nBF*SizeOfDouble); // 2 is the space dimension
233  for(int i=0; i<nBF; i++)
234  {
235  for(int j=0; j<nBF; j++)
236  {
237  values[i ] += N_T_BDM3_2D_CM[i+j*nBF]*mon_x[j];
238  values[i+nBF] += N_T_BDM3_2D_CM[i+j*nBF]*mon_y[j];
239  }
240  }
241 }
242 
243 // values of derivatives in eta-eta direction
244 static void N_T_BDM3_2D_DeriveEtaEta(double xi, double eta, double *values)
245 {
246  int nBF = 20; // number of basis functions
247  // monomials x-component and y-component
248  double mon_x[20]={0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 6*eta, 0, 0, 0, 0, 0, 2*xi, 0};
249  double mon_y[20]={0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 6*eta, 0, 0, 0, 0, 0, 2*xi};
250 
251  memset(values, 0.0, 2*nBF*SizeOfDouble); // 2 is the space dimension
252  for(int i=0; i<nBF; i++)
253  {
254  for(int j=0; j<nBF; j++)
255  {
256  values[i ] += N_T_BDM3_2D_CM[i+j*nBF]*mon_x[j];
257  values[i+nBF] += N_T_BDM3_2D_CM[i+j*nBF]*mon_y[j];
258  }
259  }
260 }
261 
262 // values of derivatives in xi-eta direction
263 static void N_T_BDM3_2D_DeriveXiEta(double xi, double eta, double *values)
264 {
265  int nBF = 20; // number of basis functions
266  // monomials x-component and y-component
267  double mon_x[20]={0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2*xi, 0, 2*eta, 0};
268  double mon_y[20]={0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2*xi, 0, 2*eta};
269 
270  memset(values, 0.0, 2*nBF*SizeOfDouble); // 2 is the space dimension
271  for(int i=0; i<nBF; i++)
272  {
273  for(int j=0; j<nBF; j++)
274  {
275  values[i ] += N_T_BDM3_2D_CM[i+j*nBF]*mon_x[j];
276  values[i+nBF] += N_T_BDM3_2D_CM[i+j*nBF]*mon_y[j];
277  }
278  }
279 }
280 
281 // ***********************************************************************
282 
283 TBaseFunct2D *BF_N_T_BDM3_2D_Obj = new TBaseFunct2D
284  (20, BF_N_T_BDM3_2D, BFUnitTriangle,
285  N_T_BDM3_2D_Funct, N_T_BDM3_2D_DeriveXi,
286  N_T_BDM3_2D_DeriveEta, N_T_BDM3_2D_DeriveXiXi,
287  N_T_BDM3_2D_DeriveXiEta, N_T_BDM3_2D_DeriveEtaEta, 3, 3,
288  0, NULL, 2);
Definition: BaseFunct2D.h:27