ParMooN
 All Classes Functions Variables Friends Pages
BF_N_Q_RT3_2D.h
1 // ***********************************************************************
2 // Q3 Raviart-Thomas vector element, nonconforming , 2D
3 // History: 04.07.2012 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,14,15, and 16 are orthogonal to edge 4
12 // functions 17-40 correspond to inner degrees of freedom
13 
14 
15 // coefficient matrix for different choices of the degrees of freedom
16 // There seems to be no difference in using integral or point evaluation for
17 // inner dofs.
18 // The dofs on the edges determine the boundary conditions as well. Using
19 // Tschebyscheff-points might improve the boundary approximation.
20 /*
21 // using Tschebyscheff-points on edges and integral evaluations for inner dofs
22 static double N_Q_RT3_2D_CM[1600] = {
23 0,0,0,0,-0.0097081309,0.0565831338,0.0565831338,-0.0097081309,0,0,0,0,0.0097081309,-0.0565831338,-0.0565831338,0.0097081309,1.5820312684,0,0,0,0,0,-3.6914063431,0,-2.6367187803,0,0,0,0,0,0,0,0,0,6.1523439044,0,0,0,0,0,
24 0.0097081309,-0.0565831338,-0.0565831338,0.0097081309,0,0,0,0,-0.0097081309,0.0565831338,0.0565831338,-0.0097081309,0,0,0,0,0,1.5820312684,0,0,0,0,0,-2.6367187803,0,-3.6914063431,0,0,0,0,0,0,0,0,0,6.1523439044,0,0,0,0,
25 0,0,0,0,0.0388325215,-0.2263325215,-0.2263325215,0.0388325215,0,0,0,0,0.0388325215,-0.2263325215,-0.2263325215,0.0388325215,0,0,4.2187500001,0,0,0,0,0,0,0,0,0,0,0,0,0,-7.0312499994,0,0,0,0,0,0,0,
26 -0.0105080052,0.147858854,-0.147858854,0.0105080052,0,0,0,0,-0.0105080052,0.147858854,-0.147858854,0.0105080052,0,0,0,0,0,0,0,13.183593528,0,0,0,0,0,0,0,0,0,-18.4570308365,0,0,0,-30.7617186509,0,0,0,0,0,43.0664058715,
27 0,0,0,0,0.0105080052,-0.147858854,0.147858854,-0.0105080052,0,0,0,0,0.0105080052,-0.147858854,0.147858854,-0.0105080052,0,0,0,0,13.183593528,0,0,0,0,0,0,0,-18.4570308365,0,-30.7617186509,0,0,0,0,0,0,0,43.0664058715,0,
28 0.0388325215,-0.2263325215,-0.2263325215,0.0388325215,0,0,0,0,0.0388325215,-0.2263325215,-0.2263325215,0.0388325215,0,0,0,0,0,0,0,0,0,4.2187500001,0,0,0,0,0,0,0,0,0,-7.0312499994,0,0,0,0,0,0,0,0,
29 0,0,0,0,0.0970813072,-0.5658313241,-0.5658313241,0.0970813072,0,0,0,0,-0.0970813072,0.5658313241,0.5658313241,-0.0970813072,-5.2734376115,0,0,0,0,0,22.148438062,0,8.7890626847,0,0,0,0,0,0,0,0,0,-36.9140634322,0,0,0,0,0,
30 -0.0662912647,0.0662912647,0.0662912647,-0.0662912647,0,0,0,0,0.0662912647,-0.0662912647,-0.0662912647,0.0662912647,0,0,0,0,0,-2.6367187803,0,0,0,0,0,7.9101563408,0,6.1523439044,0,0,0,0,0,0,0,0,0,-18.4570317133,0,0,0,0,
31 0,0,0,0,0.0662912647,-0.0662912647,-0.0662912647,0.0662912647,0,0,0,0,-0.0662912647,0.0662912647,0.0662912647,-0.0662912647,-2.6367187803,0,0,0,0,0,6.1523439044,0,7.9101563408,0,0,0,0,0,0,0,0,0,-18.4570317133,0,0,0,0,0,
32 -0.0970813072,0.5658313241,0.5658313241,-0.0970813072,0,0,0,0,0.0970813072,-0.5658313241,-0.5658313241,0.0970813072,0,0,0,0,0,-5.2734376115,0,-0,0,0,0,8.7890626847,0,22.148438062,0,0,0,0,0,-0,0,0,0,-36.9140634322,0,-0,0,-0,
33 0,0,0,0,-0.0420320184,0.5914353808,-0.5914353808,0.0420320184,0,0,0,0,0.0420320184,-0.5914353808,0.5914353808,-0.0420320184,-0,0,0,0,-0,0,0,0,0,0,35.1562490011,0,0,0,0,0,-0,0,-0,0,-49.2187483275,0,-0,0,
34 -0.0420320184,0.5914353808,-0.5914353808,0.0420320184,0,0,0,0,0.0420320184,-0.5914353808,0.5914353808,-0.0420320184,0,0,0,0,0,-0,0,0,0,-0,0,0,0,0,0,35.1562490011,0,-0,0,0,0,-0,0,-0,0,-49.2187483275,0,0,
35 0,0,0,0,-0.0647208691,0.3772208692,0.3772208692,-0.0647208691,0,0,0,0,-0.0647208691,0.3772208692,0.3772208692,-0.0647208691,0,0,-4.2187500001,0,0,0,0,0,0,0,0,0,0,0,0,0,7.0312499994,0,0,0,0,0,0,0,
36 0.0717531479,-0.1732274227,0.1732274227,-0.0717531479,0,0,0,0,0.0717531479,-0.1732274227,0.1732274227,-0.0717531479,0,0,0,0,0,0,0,-18.4570308365,0,0,0,0,0,0,0,0,0,30.7617180571,0,0,0,43.0664058715,0,0,0,0,0,-71.7773431105,
37 0,0,0,0,-0.1050800497,1.4785885049,-1.4785885049,0.1050800497,0,0,0,0,-0.1050800497,1.4785885049,-1.4785885049,0.1050800497,0,0,0,0,-43.9453121789,0,0,0,0,0,0,0,61.5234367079,0,184.570311933,0,0,0,0,0,0,0,-258.398435268,0,
38 -0.265165043,0.265165043,0.265165043,-0.265165043,0,0,0,0,-0.265165043,0.265165043,0.265165043,-0.265165043,0,0,0,0,0,0,0,0,0,-7.0312499994,0,0,0,0,0,0,0,0,0,21.0937499981,0,0,0,0,0,0,0,0,
39 0,0,0,0,-0.265165043,0.265165043,0.265165043,-0.265165043,0,0,0,0,-0.265165043,0.265165043,0.265165043,-0.265165043,0,0,-7.0312499994,0,0,0,0,0,0,0,0,0,0,0,0,0,21.0937499981,0,0,0,0,0,0,0,
40 0.1050800497,-1.4785885049,1.4785885049,-0.1050800497,0,0,0,0,0.1050800497,-1.4785885049,1.4785885049,-0.1050800497,0,0,0,0,0,0,0,-43.9453121789,0,0,0,0,0,0,0,0,0,61.5234367079,0,0,0,184.570311933,0,0,0,0,0,-258.398435268,
41 0,0,0,0,-0.0717531479,0.1732274227,-0.1732274227,0.0717531479,0,0,0,0,-0.0717531479,0.1732274227,-0.1732274227,0.0717531479,0,0,0,0,-18.4570308365,0,0,0,0,0,0,0,30.7617180571,0,43.0664058715,0,0,0,0,0,0,0,-71.7773431105,0,
42 -0.0647208691,0.3772208692,0.3772208692,-0.0647208691,0,0,0,0,-0.0647208691,0.3772208692,0.3772208692,-0.0647208691,0,0,0,0,0,0,0,0,0,-4.2187500001,0,0,0,0,0,0,0,0,0,7.0312499994,0,0,0,0,0,0,0,0,
43 0,0,0,0,-0.1132615239,0.660136538,0.660136538,-0.1132615239,0,0,0,0,0.1132615239,-0.660136538,-0.660136538,0.1132615239,3.6914063431,0,0,0,0,0,-18.4570317189,0,-6.1523439044,0,0,0,0,0,0,0,0,0,30.7617195277,0,0,0,0,0,
44 0.2870125744,-0.6929096496,0.6929096496,-0.2870125744,0,0,0,0,-0.2870125744,0.6929096496,-0.6929096496,0.2870125744,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-49.2187483275,0,0,0,0,0,0,0,0,0,82.0312472025,0,0,
45 0,0,0,0,0.0700533639,-0.9857256345,0.9857256345,-0.0700533639,0,0,0,0,-0.0700533639,0.9857256345,-0.9857256345,0.0700533639,0,0,0,0,0,0,0,0,0,0,-35.1562490011,0,0,0,0,0,0,0,0,0,49.2187483275,0,0,0,
46 0.6629126313,-0.6629126313,-0.6629126313,0.6629126313,0,0,0,0,-0.6629126313,0.6629126313,0.6629126313,-0.6629126313,0,0,0,0,0,8.7890626847,0,0,0,0,0,-26.3671880541,0,-36.9140634322,0,0,0,0,0,0,0,0,0,110.742190296,0,0,0,0,
47 0,0,0,0,-0.6629126313,0.6629126313,0.6629126313,-0.6629126313,0,0,0,0,0.6629126313,-0.6629126313,-0.6629126313,0.6629126313,8.7890626847,0,0,0,0,0,-36.9140634322,0,-26.3671880541,0,0,0,0,0,0,0,0,0,110.742190296,0,0,0,0,0,
48 0.0700533639,-0.9857256345,0.9857256345,-0.0700533639,0,0,0,0,-0.0700533639,0.9857256345,-0.9857256345,0.0700533639,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-35.1562490011,0,0,0,0,0,0,0,0,0,49.2187483275,0,0,
49 0,0,0,0,0.2870125744,-0.6929096496,0.6929096496,-0.2870125744,0,0,0,0,-0.2870125744,0.6929096496,-0.6929096496,0.2870125744,0,0,0,0,0,0,0,0,0,0,-49.2187483275,0,0,0,0,0,0,0,0,0,82.0312472025,0,0,0,
50 0.1132615239,-0.660136538,-0.660136538,0.1132615239,0,0,0,0,-0.1132615239,0.660136538,0.660136538,-0.1132615239,0,0,0,0,0,3.6914063431,0,0,0,0,0,-6.1523439044,0,-18.4570317189,0,-0,0,-0,0,0,0,-0,0,30.7617195277,0,0,0,0,
51 0,0,0,0,0.12259339,-1.7250199047,1.7250199047,-0.12259339,0,0,0,0,0.12259339,-1.7250199047,1.7250199047,-0.12259339,0,0,0,0,30.7617186509,0,0,0,0,0,0,0,-43.0664058715,0,-153.808593282,0,0,0,0,0,0,0,215.332029396,0,
52 -0.7175314616,1.732274186,-1.732274186,0.7175314616,0,0,0,0,-0.7175314616,1.732274186,-1.732274186,0.7175314616,0,0,0,0,0,0,0,61.5234367079,0,0,0,0,0,0,0,0,0,-102.539061168,0,0,0,-258.398435268,0,0,0,0,0,430.664058727,
53 0,0,0,0,0.4419417383,-0.4419417383,-0.4419417383,0.4419417383,0,0,0,0,0.4419417383,-0.4419417383,-0.4419417383,0.4419417383,-0,0,7.0312499994,0,0,0,0,0,0,0,0,0,0,0,0,0,-21.0937499981,0,0,0,0,0,0,0,
54 0.4419417383,-0.4419417383,-0.4419417383,0.4419417383,0,0,0,0,0.4419417383,-0.4419417383,-0.4419417383,0.4419417383,0,0,0,0,0,0,0,0,0,7.0312499994,0,0,0,0,0,0,0,0,0,-21.0937499981,0,0,0,0,0,0,0,0,
55 0,0,0,0,0.7175314616,-1.732274186,1.732274186,-0.7175314616,0,0,0,0,0.7175314616,-1.732274186,1.732274186,-0.7175314616,0,0,0,0,61.5234367079,0,0,0,0,0,0,0,-102.539061168,0,-258.398435268,0,0,0,0,0,0,0,430.664058727,0,
56 -0.12259339,1.7250199047,-1.7250199047,0.12259339,0,0,0,0,-0.12259339,1.7250199047,-1.7250199047,0.12259339,0,0,0,0,0,0,0,30.7617186509,0,0,0,0,0,0,0,0,0,-43.0664058715,0,0,0,-153.808593282,0,0,0,0,0,215.332029396,
57 0,0,0,0,0.7733980619,-0.7733980619,-0.7733980619,0.7733980619,0,0,0,0,-0.7733980619,0.7733980619,0.7733980619,-0.7733980619,-6.1523439044,0,0,0,0,0,30.7617195277,0,18.4570317133,0,0,0,0,0,0,0,0,0,-92.2851585831,0,0,0,0,0,
58 -0.4783542905,1.1548494158,-1.1548494158,0.4783542905,0,0,0,0,0.4783542905,-1.1548494158,1.1548494158,-0.4783542905,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,49.2187483275,0,0,0,0,0,0,0,0,0,-82.0312472025,0,0,
59 0,0,0,0,-0.4783542905,1.1548494158,-1.1548494158,0.4783542905,0,0,0,0,0.4783542905,-1.1548494158,1.1548494158,-0.4783542905,0,0,0,0,0,0,0,0,0,0,49.2187483275,0,0,0,0,0,0,0,0,0,-82.0312472025,0,0,0,
60 -0.7733980619,0.7733980619,0.7733980619,-0.7733980619,0,0,0,0,0.7733980619,-0.7733980619,-0.7733980619,0.7733980619,0,0,0,0,0,-6.1523439044,0,0,0,0,0,18.4570317133,0,30.7617195277,0,0,0,0,0,0,0,0,0,-92.2851585831,0,0,0,0,
61 0,0,0,0,-0.8371200299,2.0209865296,-2.0209865296,0.8371200299,0,0,0,0,-0.8371200299,2.0209865296,-2.0209865296,0.8371200299,0,0,0,0,-43.0664058715,0,0,0,0,0,0,0,71.7773431105,0,215.332029396,0,0,0,0,0,0,0,-358.886715617,-0,
62 0.8371200299,-2.0209865296,2.0209865296,-0.8371200299,0,0,0,0,0.8371200299,-2.0209865296,2.0209865296,-0.8371200299,0,0,0,0,0,0,0,-43.0664058715,0,0,0,0,0,0,0,0,0,71.7773431105,0,0,0,215.332029396,0,0,0,0,0,-358.886715617
63 };
64 */
65 // using Tschebyscheff-points on edges and point evaluations for inner dofs
66 static double N_Q_RT3_2D_CM[1600] = {
67  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.1035533906,0.6035533906,0.6035533906,-0.1035533906,-0,0,-0,0,
68 -0,-0,0,-0,0,0,0,0,0,-0,0,-0,0,0,0,0,-0,-0,0,-0,-0.1035533906,0.6035533906,0.6035533906,-0.1035533906,0,-0,0,-0,0,0,0,0,0,0,0,0,0,0,0,0,
69 0,0,0,0,0.0776650429,-0.4526650429,-0.4526650429,0.0776650429,0,0,0,0,0.0776650429,-0.4526650429,-0.4526650429,0.0776650429,0,0,0,0,0,0,0,0,0,0,-0,0,0.2391463117,-1.3938468501,-1.3938468501,0.2391463117,-0,0,-0,0,-0.2391463117,1.3938468501,1.3938468501,-0.2391463117,
70 0,-0,0,-0,0,0,0,0,-0,0,-0,0,0,0,0,0,0,-0,0,-0,0.1120853823,-1.5771610149,1.5771610149,-0.1120853823,0,0,-0,-0,0,0,0,0,0,0,0,0,0,0,0,0,
71 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.1120853823,-1.5771610149,1.5771610149,-0.1120853823,-0,0,-0,0,
72 0.0776650429,-0.4526650429,-0.4526650429,0.0776650429,0,0,0,0,0.0776650429,-0.4526650429,-0.4526650429,0.0776650429,0,0,0,0,0.2391463117,-1.3938468501,-1.3938468501,0.2391463117,0,0,-0,-0,-0.2391463117,1.3938468501,1.3938468501,-0.2391463117,0,0,0,0,0,0,0,0,0,0,0,0,
73 0,0,0,0,0.0776650429,-0.4526650429,-0.4526650429,0.0776650429,0,0,0,0,-0.0776650429,0.4526650429,0.4526650429,-0.0776650429,0,0,0,0,0,0,0,0,0,0,-0,0,-0.2761423749,1.6094757082,1.6094757082,-0.2761423749,0.2416245781,-1.4082912447,-1.4082912447,0.2416245781,-0.2761423749,1.6094757082,1.6094757082,-0.2761423749,
74 -0,0,-0,-0,0,0,0,0,-0,0,-0,0,0,0,0,0,-0,0,-0,0,0.7071067812,-0.7071067812,-0.7071067812,0.7071067812,-0,0,-0,0,0,0,0,0,0,0,0,0,0,0,0,0,
75 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.7071067812,-0.7071067812,-0.7071067812,0.7071067812,0,-0,0,-0,
76 -0.0776650429,0.4526650429,0.4526650429,-0.0776650429,0,0,0,0,0.0776650429,-0.4526650429,-0.4526650429,0.0776650429,0,0,0,0,-0.2761423749,1.6094757082,1.6094757082,-0.2761423749,0.2416245781,-1.4082912447,-1.4082912447,0.2416245781,-0.2761423749,1.6094757082,1.6094757082,-0.2761423749,0,0,0,0,0,0,0,0,0,0,0,0,
77 0,0,0,0,-0.0840640367,1.1828707612,-1.1828707612,0.0840640367,0,0,0,0,0.0840640367,-1.1828707612,1.1828707612,-0.0840640367,0,0,0,0,0,0,0,0,0,0,0,0,-0.2588501026,3.6422973461,-3.6422973461,0.2588501026,0,-0,0,-0,0.2588501026,-3.6422973461,3.6422973461,-0.2588501026,
78 -0.0840640367,1.1828707612,-1.1828707612,0.0840640367,0,0,0,0,0.0840640367,-1.1828707612,1.1828707612,-0.0840640367,0,0,0,0,-0.2588501026,3.6422973461,-3.6422973461,0.2588501026,-0,0,-0,-0,0.2588501026,-3.6422973461,3.6422973461,-0.2588501026,0,0,0,0,0,0,0,0,0,0,0,0,
79 0,0,0,0,-0.1035533906,0.6035533906,0.6035533906,-0.1035533906,0,0,0,0,-0.1035533906,0.6035533906,0.6035533906,-0.1035533906,0,0,0,0,0,0,0,0,0,0,0,0,-0.2391463117,1.3938468501,1.3938468501,-0.2391463117,-0,0,-0,0,0.2391463117,-1.3938468501,-1.3938468501,0.2391463117,
80 0,0,-0,-0,0,0,0,0,-0,-0,0,-0,0,0,0,0,-0,0,-0,0,-0.7653668647,1.847759065,-1.847759065,0.7653668647,0,-0,0,-0,0,0,0,0,0,0,0,0,0,0,0,0,
81 0,0,0,0,-0.0840640367,1.1828707612,-1.1828707612,0.0840640367,0,0,0,0,-0.0840640367,1.1828707612,-1.1828707612,0.0840640367,0,0,0,0,0,0,0,0,0,0,0,0,0.2988943528,-4.2057627065,4.2057627065,-0.2988943528,-0.2615325587,3.6800423682,-3.6800423682,0.2615325587,0.2988943528,-4.2057627065,4.2057627065,-0.2988943528,
82 -0.5303300859,0.5303300859,0.5303300859,-0.5303300859,0,0,0,0,-0.5303300859,0.5303300859,0.5303300859,-0.5303300859,0,0,0,0,-1.6329931619,1.6329931619,1.6329931619,-1.6329931619,-0,-0,0,-0,1.6329931619,-1.6329931619,-1.6329931619,1.6329931619,0,0,0,0,0,0,0,0,0,0,0,0,
83 0,0,0,0,-0.5303300859,0.5303300859,0.5303300859,-0.5303300859,0,0,0,0,-0.5303300859,0.5303300859,0.5303300859,-0.5303300859,0,0,0,0,0,0,0,0,0,0,0,0,-1.6329931619,1.6329931619,1.6329931619,-1.6329931619,-0,-0,0,-0,1.6329931619,-1.6329931619,-1.6329931619,1.6329931619,
84 0.0840640367,-1.1828707612,1.1828707612,-0.0840640367,0,0,0,0,0.0840640367,-1.1828707612,1.1828707612,-0.0840640367,0,0,0,0,0.2988943528,-4.2057627065,4.2057627065,-0.2988943528,-0.2615325587,3.6800423682,-3.6800423682,0.2615325587,0.2988943528,-4.2057627065,4.2057627065,-0.2988943528,0,0,0,0,0,0,0,0,0,0,0,0,
85 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.7653668647,1.847759065,-1.847759065,0.7653668647,0,-0,0,-0,
86 -0.1035533906,0.6035533906,0.6035533906,-0.1035533906,0,0,0,0,-0.1035533906,0.6035533906,0.6035533906,-0.1035533906,0,0,0,0,-0.2391463117,1.3938468501,1.3938468501,-0.2391463117,-0,-0,0,-0,0.2391463117,-1.3938468501,-1.3938468501,0.2391463117,0,0,0,0,0,0,0,0,0,0,0,0,
87 0,0,0,0,-0.1035533906,0.6035533906,0.6035533906,-0.1035533906,0,0,0,0,0.1035533906,-0.6035533906,-0.6035533906,0.1035533906,0,0,0,0,0,0,0,0,0,0,0,0,0.2761423749,-1.6094757082,-1.6094757082,0.2761423749,-0.1380711875,0.8047378541,0.8047378541,-0.1380711875,0.2761423749,-1.6094757082,-1.6094757082,0.2761423749,
88 0.5740251485,-1.3858192988,1.3858192988,-0.5740251485,0,0,0,0,-0.5740251485,1.3858192988,-1.3858192988,0.5740251485,0,0,0,0,1.7675390615,-4.2672167744,4.2672167744,-1.7675390615,0,-0,0,-0,-1.7675390615,4.2672167744,-4.2672167744,1.7675390615,0,0,0,0,0,0,0,0,0,0,0,0,
89 0,0,0,0,0.1120853823,-1.5771610149,1.5771610149,-0.1120853823,0,0,0,0,-0.1120853823,1.5771610149,-1.5771610149,0.1120853823,0,0,0,0,0,0,0,0,0,0,-0,0,0.2588501026,-3.6422973461,3.6422973461,-0.2588501026,0,0,-0,0,-0.2588501026,3.6422973461,-3.6422973461,0.2588501026,
90 0.5303300859,-0.5303300859,-0.5303300859,0.5303300859,0,0,0,0,-0.5303300859,0.5303300859,0.5303300859,-0.5303300859,0,0,0,0,1.8856180832,-1.8856180832,-1.8856180832,1.8856180832,-1.6499158228,1.6499158228,1.6499158228,-1.6499158228,1.8856180832,-1.8856180832,-1.8856180832,1.8856180832,0,0,0,0,0,0,0,0,0,0,0,0,
91 0,0,0,0,-0.5303300859,0.5303300859,0.5303300859,-0.5303300859,0,0,0,0,0.5303300859,-0.5303300859,-0.5303300859,0.5303300859,0,0,0,0,0,0,0,0,0,0,0,0,1.8856180832,-1.8856180832,-1.8856180832,1.8856180832,-1.6499158228,1.6499158228,1.6499158228,-1.6499158228,1.8856180832,-1.8856180832,-1.8856180832,1.8856180832,
92 0.1120853823,-1.5771610149,1.5771610149,-0.1120853823,0,0,0,0,-0.1120853823,1.5771610149,-1.5771610149,0.1120853823,0,0,0,0,0.2588501026,-3.6422973461,3.6422973461,-0.2588501026,0,-0,0,-0,-0.2588501026,3.6422973461,-3.6422973461,0.2588501026,0,0,0,0,0,0,0,0,0,0,0,0,
93 0,0,0,0,0.5740251485,-1.3858192988,1.3858192988,-0.5740251485,0,0,0,0,-0.5740251485,1.3858192988,-1.3858192988,0.5740251485,0,0,0,0,0,0,0,0,0,0,-0,0,1.7675390615,-4.2672167744,4.2672167744,-1.7675390615,0,0,-0,0,-1.7675390615,4.2672167744,-4.2672167744,1.7675390615,
94 0.1035533906,-0.6035533906,-0.6035533906,0.1035533906,0,0,0,0,-0.1035533906,0.6035533906,0.6035533906,-0.1035533906,0,0,0,0,0.2761423749,-1.6094757082,-1.6094757082,0.2761423749,-0.1380711875,0.8047378541,0.8047378541,-0.1380711875,0.2761423749,-1.6094757082,-1.6094757082,0.2761423749,0,0,0,0,0,0,0,0,0,0,0,0,
95 0,0,0,0,0.1120853823,-1.5771610149,1.5771610149,-0.1120853823,0,0,0,0,0.1120853823,-1.5771610149,1.5771610149,-0.1120853823,0,0,0,0,0,0,0,0,0,0,-0,0,-0.2988943528,4.2057627065,-4.2057627065,0.2988943528,0.1494471764,-2.1028813533,2.1028813533,-0.1494471764,-0.2988943528,4.2057627065,-4.2057627065,0.2988943528,
96 -0.5740251485,1.3858192988,-1.3858192988,0.5740251485,0,0,0,0,-0.5740251485,1.3858192988,-1.3858192988,0.5740251485,0,0,0,0,-2.0409783059,4.9273575067,-4.9273575067,2.0409783059,1.7858560177,-4.3114378184,4.3114378184,-1.7858560177,-2.0409783059,4.9273575067,-4.9273575067,2.0409783059,0,0,0,0,0,0,0,0,0,0,0,0,
97 0,0,0,0,0.7071067812,-0.7071067812,-0.7071067812,0.7071067812,0,0,0,0,0.7071067812,-0.7071067812,-0.7071067812,0.7071067812,0,0,0,0,0,0,0,0,0,0,-0,0,1.6329931619,-1.6329931619,-1.6329931619,1.6329931619,0,-0,-0,0,-1.6329931619,1.6329931619,1.6329931619,-1.6329931619,
98 0.7071067812,-0.7071067812,-0.7071067812,0.7071067812,0,0,0,0,0.7071067812,-0.7071067812,-0.7071067812,0.7071067812,0,0,0,0,1.6329931619,-1.6329931619,-1.6329931619,1.6329931619,0,0,-0,0,-1.6329931619,1.6329931619,1.6329931619,-1.6329931619,0,0,0,0,0,0,0,0,0,0,0,0,
99 0,0,0,0,0.5740251485,-1.3858192988,1.3858192988,-0.5740251485,0,0,0,0,0.5740251485,-1.3858192988,1.3858192988,-0.5740251485,0,0,0,0,0,0,0,0,0,0,-0,0,-2.0409783059,4.9273575067,-4.9273575067,2.0409783059,1.7858560177,-4.3114378184,4.3114378184,-1.7858560177,-2.0409783059,4.9273575067,-4.9273575067,2.0409783059,
100 -0.1120853823,1.5771610149,-1.5771610149,0.1120853823,0,0,0,0,-0.1120853823,1.5771610149,-1.5771610149,0.1120853823,0,0,0,0,-0.2988943528,4.2057627065,-4.2057627065,0.2988943528,0.1494471764,-2.1028813533,2.1028813533,-0.1494471764,-0.2988943528,4.2057627065,-4.2057627065,0.2988943528,0,0,0,0,0,0,0,0,0,0,0,0,
101 0,0,0,0,0.7071067812,-0.7071067812,-0.7071067812,0.7071067812,0,0,0,0,-0.7071067812,0.7071067812,0.7071067812,-0.7071067812,0,0,0,0,0,0,0,0,0,0,-0,0,-1.8856180832,1.8856180832,1.8856180832,-1.8856180832,0.9428090416,-0.9428090416,-0.9428090416,0.9428090416,-1.8856180832,1.8856180832,1.8856180832,-1.8856180832,
102 -0.7653668647,1.847759065,-1.847759065,0.7653668647,0,0,0,0,0.7653668647,-1.847759065,1.847759065,-0.7653668647,0,0,0,0,-1.7675390615,4.2672167744,-4.2672167744,1.7675390615,-0,0,-0,0,1.7675390615,-4.2672167744,4.2672167744,-1.7675390615,0,0,0,0,0,0,0,0,0,0,0,0,
103 0,0,0,0,-0.7653668647,1.847759065,-1.847759065,0.7653668647,0,0,0,0,0.7653668647,-1.847759065,1.847759065,-0.7653668647,0,0,0,0,0,0,0,0,0,0,0,0,-1.7675390615,4.2672167744,-4.2672167744,1.7675390615,-0,-0,0,-0,1.7675390615,-4.2672167744,4.2672167744,-1.7675390615,
104 -0.7071067812,0.7071067812,0.7071067812,-0.7071067812,0,0,0,0,0.7071067812,-0.7071067812,-0.7071067812,0.7071067812,0,0,0,0,-1.8856180832,1.8856180832,1.8856180832,-1.8856180832,0.9428090416,-0.9428090416,-0.9428090416,0.9428090416,-1.8856180832,1.8856180832,1.8856180832,-1.8856180832,0,0,0,0,0,0,0,0,0,0,0,0,
105 0,0,0,0,-0.7653668647,1.847759065,-1.847759065,0.7653668647,0,0,0,0,-0.7653668647,1.847759065,-1.847759065,0.7653668647,0,0,0,0,0,0,0,0,0,-0,0,0,2.0409783059,-4.9273575067,4.9273575067,-2.0409783059,-1.020489153,2.4636787534,-2.4636787534,1.020489153,2.0409783059,-4.9273575067,4.9273575067,-2.0409783059,
106 0.7653668647,-1.847759065,1.847759065,-0.7653668647,0,0,0,0,0.7653668647,-1.847759065,1.847759065,-0.7653668647,0,0,0,0,2.0409783059,-4.9273575067,4.9273575067,-2.0409783059,-1.020489153,2.4636787534,-2.4636787534,1.020489153,2.0409783059,-4.9273575067,4.9273575067,-2.0409783059,0,0,0,0,0,0,0,0,0,0,0,0
107 };
108 
109 static void N_Q_RT3_2D_Funct(double xi, double eta, double *values)
110 {
111  int nBF = 40; // number of basis functions
112  // monomials x-component and y-component
113  double mon_x[40]={1,0,xi,0 ,eta,0,
114  xi*xi,0, eta*eta, 0, xi*eta, 0,
115  xi*xi*xi, 0, xi*xi*eta, 0, xi*eta*eta, 0, eta*eta*eta, 0,
116  xi*xi*xi*xi,0, xi*xi*xi*eta, 0, xi*xi*eta*eta, 0, xi*eta*eta*eta,0,
117  xi*xi*xi*xi*eta,0, xi*xi*xi*eta*eta, 0,xi*xi*eta*eta*eta, 0,
118  xi*xi*xi*xi*eta*eta,0,xi*xi*xi*eta*eta*eta,0,
119  xi*xi*xi*xi*eta*eta*eta,0 };
120  double mon_y[40]={0, 1, 0, xi, 0, eta,
121  0, xi*xi, 0, eta*eta, 0, xi*eta,
122  0, xi*xi*xi, 0, xi*xi*eta, 0, xi*eta*eta, 0,eta*eta*eta,
123  0, xi*xi*xi*eta, 0, xi*xi*eta*eta, 0, xi*eta*eta*eta, 0, eta*eta*eta*eta,
124  0, xi*xi*xi*eta*eta, 0, xi*xi*eta*eta*eta, 0, xi*eta*eta*eta*eta,
125  0, xi*xi*xi*eta*eta*eta, 0, xi*xi*eta*eta*eta*eta,
126  0, xi*xi*xi*eta*eta*eta*eta};
127 
128  memset(values, 0.0, 2*nBF*SizeOfDouble); // 2 is the space dimension
129  for(int i=0; i<nBF; i++)
130  {
131  for(int j=0; j<nBF; j++)
132  {
133  values[i ] += N_Q_RT3_2D_CM[i+j*nBF]*mon_x[j];
134  values[i+nBF] += N_Q_RT3_2D_CM[i+j*nBF]*mon_y[j];
135  }
136  }
137 }
138 
139 // values of the derivatives in xi direction
140 static void N_Q_RT3_2D_DeriveXi(double xi, double eta, double *values)
141 {
142  int nBF = 40; // number of basis functions
143  // monomials x-component and y-component
144  double mon_x[40]={0,0,1,0 ,0,0,
145  2*xi,0, 0, 0, eta, 0,
146  3*xi*xi, 0, 2*xi*eta, 0, eta*eta, 0, 0, 0,
147  4*xi*xi*xi,0, 3*xi*xi*eta, 0, 2*xi*eta*eta, 0, eta*eta*eta,0,
148  4*xi*xi*xi*eta,0, 3*xi*xi*eta*eta, 0,2*xi*eta*eta*eta, 0,
149  4*xi*xi*xi*eta*eta,0,3*xi*xi*eta*eta*eta,0,
150  4*xi*xi*xi*eta*eta*eta,0 };
151  double mon_y[40]={0, 0, 0, 1, 0, 0,
152  0, 2*xi, 0, 0, 0, eta,
153  0, 3*xi*xi, 0, 2*xi*eta, 0, eta*eta, 0,0,
154  0, 3*xi*xi*eta, 0, 2*xi*eta*eta, 0, eta*eta*eta, 0, 0,
155  0, 3*xi*xi*eta*eta, 0, 2*xi*eta*eta*eta, 0, eta*eta*eta*eta,
156  0, 3*xi*xi*eta*eta*eta, 0, 2*xi*eta*eta*eta*eta,
157  0, 3*xi*xi*eta*eta*eta*eta};
158 
159  memset(values, 0.0, 2*nBF*SizeOfDouble); // 2 is the space dimension
160  for(int i=0; i<nBF; i++)
161  {
162  for(int j=0; j<nBF; j++)
163  {
164  values[i ] += N_Q_RT3_2D_CM[i+j*nBF]*mon_x[j];
165  values[i+nBF] += N_Q_RT3_2D_CM[i+j*nBF]*mon_y[j];
166  }
167  }
168 }
169 
170 // values of the derivatives in eta direction
171 static void N_Q_RT3_2D_DeriveEta(double xi, double eta, double *values)
172 {
173  int nBF = 40; // number of basis functions
174  // monomials x-component and y-component
175  double mon_x[40]={0,0,0,0 ,1,0,
176  0,0, 2*eta, 0, xi, 0,
177  0, 0, xi*xi, 0, 2*xi*eta, 0, 3*eta*eta, 0,
178  0,0, xi*xi*xi, 0, 2*xi*xi*eta, 0, 3*xi*eta*eta,0,
179  xi*xi*xi*xi,0, 2*xi*xi*xi*eta, 0,3*xi*xi*eta*eta, 0,
180  2*xi*xi*xi*xi*eta,0,3*xi*xi*xi*eta*eta,0,
181  3*xi*xi*xi*xi*eta*eta,0 };
182  double mon_y[40]={0, 0, 0, 0, 0, 1,
183  0, 0, 0, 2*eta, 0, xi,
184  0, 0, 0, xi*xi, 0, 2*xi*eta, 0,3*eta*eta,
185  0, xi*xi*xi, 0, 2*xi*xi*eta, 0, 3*xi*eta*eta, 0, 4*eta*eta*eta,
186  0, 2*xi*xi*xi*eta, 0, 3*xi*xi*eta*eta, 0, 4*xi*eta*eta*eta,
187  0, 3*xi*xi*xi*eta*eta, 0, 4*xi*xi*eta*eta*eta,
188  0, 4*xi*xi*xi*eta*eta*eta};
189 
190  memset(values, 0.0, 2*nBF*SizeOfDouble); // 2 is the space dimension
191  for(int i=0; i<nBF; i++)
192  {
193  for(int j=0; j<nBF; j++)
194  {
195  values[i ] += N_Q_RT3_2D_CM[i+j*nBF]*mon_x[j];
196  values[i+nBF] += N_Q_RT3_2D_CM[i+j*nBF]*mon_y[j];
197  }
198  }
199 }
200 
201 // values of derivatives in xi-xi direction
202 static void N_Q_RT3_2D_DeriveXiXi(double xi, double eta, double *values)
203 {
204  int nBF = 40; // number of basis functions
205  // monomials x-component and y-component
206  double mon_x[40]={0,0,0,0 ,0,0,
207  2,0, 0, 0, 0, 0,
208  6*xi, 0, 2*eta, 0, 0, 0, 0, 0,
209  12*xi*xi,0, 6*xi*eta, 0, 2*eta*eta, 0, 0,0,
210  12*xi*xi*eta,0, 6*xi*eta*eta, 0,2*eta*eta*eta, 0,
211  12*xi*xi*eta*eta,0,6*xi*eta*eta*eta,0,
212  12*xi*xi*eta*eta*eta,0 };
213  double mon_y[40]={0, 0, 0, 0, 0, 0,
214  0, 2, 0, 0, 0, 0,
215  0, 6*xi, 0, 2*eta, 0, 0, 0,0,
216  0, 6*xi*eta, 0, 2*eta*eta, 0, 0, 0, 0,
217  0, 6*xi*eta*eta, 0, 2*eta*eta*eta, 0, 0,
218  0, 6*xi*eta*eta*eta, 0, 2*eta*eta*eta*eta,
219  0, 6*xi*eta*eta*eta*eta};
220 
221  memset(values, 0.0, 2*nBF*SizeOfDouble); // 2 is the space dimension
222  for(int i=0; i<nBF; i++)
223  {
224  for(int j=0; j<nBF; j++)
225  {
226  values[i ] += N_Q_RT3_2D_CM[i+j*nBF]*mon_x[j];
227  values[i+nBF] += N_Q_RT3_2D_CM[i+j*nBF]*mon_y[j];
228  }
229  }
230 }
231 
232 // values of derivatives in eta-eta direction
233 static void N_Q_RT3_2D_DeriveEtaEta(double xi, double eta, double *values)
234 {
235  int nBF = 40; // number of basis functions
236  // monomials x-component and y-component
237  double mon_x[40]={0,0,0,0 ,0,0,
238  0,0, 2, 0, 0, 0,
239  0, 0, 0, 0, 2*xi, 0, 6*eta, 0,
240  0,0, 0, 0, 2*xi*xi, 0, 6*xi*eta,0,
241  0,0, 2*xi*xi*xi, 0,6*xi*xi*eta, 0,
242  2*xi*xi*xi*xi, 0, 6*xi*xi*xi*eta, 0,
243  6*xi*xi*xi*xi*eta,0 };
244  double mon_y[40]={0, 0, 0, 0, 0, 0,
245  0, 0, 0, 2, 0, 0,
246  0, 0, 0, 0, 0, 2*xi, 0,6*eta,
247  0, 0, 0, 2*xi*xi, 0, 6*xi*eta, 0, 12*eta*eta,
248  0, 2*xi*xi*xi, 0, 6*xi*xi*eta, 0, 12*eta*eta*eta,
249  0, 6*xi*xi*xi*eta, 0, 12*xi*xi*eta*eta,
250  0, 12*xi*xi*xi*eta*eta};
251 
252  memset(values, 0.0, 2*nBF*SizeOfDouble); // 2 is the space dimension
253  for(int i=0; i<nBF; i++)
254  {
255  for(int j=0; j<nBF; j++)
256  {
257  values[i ] += N_Q_RT3_2D_CM[i+j*nBF]*mon_x[j];
258  values[i+nBF] += N_Q_RT3_2D_CM[i+j*nBF]*mon_y[j];
259  }
260  }
261 }
262 
263 // values of derivatives in xi-eta direction
264 static void N_Q_RT3_2D_DeriveXiEta(double xi, double eta, double *values)
265 {
266  int nBF = 40; // number of basis functions
267  // monomials x-component and y-component
268  double mon_x[40]={0,0,0,0 ,0,0,
269  0,0, 0, 0, 1, 0,
270  0, 0, 2*xi, 0, 2*eta, 0, 0, 0,
271  0,0, 3*xi*xi, 0, 4*xi*eta, 0, 3*eta*eta,0,
272  4*xi*xi*xi,0, 6*xi*xi*eta, 0,6*xi*eta*eta, 0,
273  8*xi*xi*xi*eta,0,9*xi*xi*eta*eta,0,
274  12*xi*xi*xi*eta*eta,0 };
275  double mon_y[40]={0, 0, 0, 0, 0, 0,
276  0, 0, 0, 0, 0, 1,
277  0, 0, 0, 2*xi, 0, 2*eta, 0,0,
278  0, 3*xi*xi, 0, 4*xi*eta, 0, 3*eta*eta, 0, 0,
279  0, 6*xi*xi*eta, 0, 6*xi*eta*eta, 0, 4*eta*eta*eta,
280  0, 9*xi*xi*eta*eta, 0, 8*xi*eta*eta*eta,
281  0, 12*xi*xi*eta*eta*eta};
282 
283  memset(values, 0.0, 2*nBF*SizeOfDouble); // 2 is the space dimension
284  for(int i=0; i<nBF; i++)
285  {
286  for(int j=0; j<nBF; j++)
287  {
288  values[i ] += N_Q_RT3_2D_CM[i+j*nBF]*mon_x[j];
289  values[i+nBF] += N_Q_RT3_2D_CM[i+j*nBF]*mon_y[j];
290  }
291  }
292 }
293 
294 
295 // ***********************************************************************
296 
297 TBaseFunct2D *BF_N_Q_RT3_2D_Obj = new TBaseFunct2D
298  (40, BF_N_Q_RT3_2D, BFUnitSquare,
299  N_Q_RT3_2D_Funct, N_Q_RT3_2D_DeriveXi,
300  N_Q_RT3_2D_DeriveEta, N_Q_RT3_2D_DeriveXiXi,
301  N_Q_RT3_2D_DeriveXiEta, N_Q_RT3_2D_DeriveEtaEta, 7, 4,
302  0, NULL, 2);
Definition: BaseFunct2D.h:27