ParMooN
 All Classes Functions Variables Friends Pages
BF_N_Q_BDM3_2D.h
1 // ***********************************************************************
2 // P3 BDM vector element, nonconforming , 2D
3 // History: 23.09.2013 implementation (Markus Wolff)
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-22 correspond to inner degrees of freedom
13 
14 // NOTE: If you want to use other evaluation points for degress of freedom on
15 // the edges of a cell, you also have to change basis functions in
16 // NF_N_Q_BDM3_2D.h
17 
18 
19 // coefficient matrix for different choices of the degrees of freedom
20 // There seems to be no difference in using integral or point evaluation for
21 // inner dofs.
22 
23 // The dofs on the edges determine the boundary conditions as well. Using
24 // Tschebyscheff-points might improve the boundary approximation.
25 
26 /*
27 // using equidistant points on edges and point evaluation for inner dofs
28 static double N_Q_BDM3_2D_CM[484] = {
29 0.020345052,-0.061035156,0.061035156,-0.020345052,-0.045460391,0.054205247,0.0001929012,-0.050604424,-0.020345052,0.061035156,-0.061035156,0.020345052,0.050604424,-0.0001929012,-0.054205247,0.045460391,0.33333333,0,0.33333333,-0,0.5,0,
30 0.071289062,-0.055664062,-0.055664062,0.071289062,0.018084491,-0.054253472,0.054253472,-0.018084491,-0.034667969,0.019042969,0.019042969,-0.034667969,-0.018084491,0.054253472,-0.054253472,0.018084491,-0,0.5625,-0,0.28125,0,0.28125,
31 -0,0,-0,0,-0.032085905,0.22704475,-0.20505401,-0.073238169,0,-0,0,-0,-0.073238169,-0.20505401,0.22704475,-0.032085905,-1.3333333,0,1.3333333,0,0,-0,
32 -0.23111979,0.38085938,-0.38085938,0.23111979,0,0,0,0,-0.12858073,0.54199219,-0.54199219,0.12858073,0,0,-0,0,0,0,0,-1.125,0,1.125,
33 -0.18310547,0.54931641,-0.54931641,0.18310547,0.029835391,0.086419753,0.1404321,0.034979424,0.18310547,-0.54931641,0.54931641,-0.18310547,-0.034979424,-0.1404321,-0.086419753,-0.029835391,-0.33333333,0,-0.33333333,0,-0.5,-0,
34 -0.390625,0.390625,0.390625,-0.390625,0,0,0,0,0.390625,-0.390625,-0.390625,0.390625,0,0,-0,0,0,0,0,0,0,-0,
35 -0,0,-0,0,0.016460905,-0.086419753,0.34567901,0.057613169,0,-0,0,-0,0.057613169,0.34567901,-0.086419753,0.016460905,1.3333333,0,-1.3333333,0,0,-0,
36 0.65104167,-1.953125,1.953125,-0.65104167,0,0,0,0,0.65104167,-1.953125,1.953125,-0.65104167,0,0,-0,0,0,0,0,0,0,-0,
37 0.061035156,-0.18310547,0.18310547,-0.061035156,0.066165124,-0.18460648,0.087384259,-0.093942901,-0.061035156,0.18310547,-0.18310547,0.061035156,0.093942901,-0.087384259,0.18460648,-0.066165124,1,0,1,-0,-1.5,0,
38 -0.21777344,0.20214844,0.20214844,-0.21777344,0,0,0,0,0.11181641,-0.12744141,-0.12744141,0.11181641,0,0,-0,0,0,1.6875,0,-0.84375,0,-0.84375,
39 0,-0,0,-0,0.390625,-0.390625,-0.390625,0.390625,-0,0,-0,0,-0.390625,0.390625,0.390625,-0.390625,-0,0,-0,-0,0,0,
40 -0.055664062,-0.084960938,-0.084960938,-0.055664062,-0.18084491,0.54253472,-0.54253472,0.18084491,0.019042969,0.12158203,0.12158203,0.019042969,0.18084491,-0.54253472,0.54253472,-0.18084491,0,-0.5625,0,-0.28125,-0,-0.28125,
41 -0,0,-0,0,-0.65104167,1.953125,-1.953125,0.65104167,0,-0,0,-0,-0.65104167,1.953125,-1.953125,0.65104167,-0,0,-0,0,0,-0,
42 0.20214844,-0.061523438,-0.061523438,0.20214844,0,0,0,0,-0.12744141,0.26806641,0.26806641,-0.12744141,0,0,-0,0,0,-1.6875,0,0.84375,0,0.84375,
43 -0,0,-0,0,0.026041667,-0.703125,0.703125,-0.026041667,0,-0,0,-0,-0.026041667,0.703125,-0.703125,0.026041667,-0,0,-0,0,0,-0,
44 0.026041667,-0.703125,0.703125,-0.026041667,0,0,0,0,-0.026041667,0.703125,-0.703125,0.026041667,0,0,-0,0,0,0,0,-0,0,0,
45 -0.061035156,0.18310547,-0.18310547,0.061035156,-0.040123457,-0.51851852,0.61574074,0.067901235,0.061035156,-0.18310547,0.18310547,-0.061035156,-0.067901235,-0.61574074,0.51851852,0.040123457,-1,0,-1,0,1.5,-0,
46 0.390625,-0.390625,-0.390625,0.390625,0,0,0,0,0.390625,-0.390625,-0.390625,0.390625,0,0,-0,0,0,0,0,0,0,-0,
47 -0,0,-0,0,0.390625,-0.390625,-0.390625,0.390625,0,-0,0,-0,0.390625,-0.390625,-0.390625,0.390625,0,0,0,0,-0,-0,
48 0.20507812,0.32226562,-0.32226562,-0.20507812,0,0,0,0,0.10253906,0.16113281,-0.16113281,-0.10253906,0,0,0,0,0,0,0,1.125,0,-1.125,
49 0.16276042,-0.48828125,0.48828125,-0.16276042,0,0,0,0,-0.16276042,0.48828125,-0.48828125,0.16276042,0,0,0,0,0,0,0,-0,0,0,
50 0,-0,0,-0,-0.16276042,0.48828125,-0.48828125,0.16276042,-0,0,-0,0,0.16276042,-0.48828125,0.48828125,-0.16276042,0,0,0,-0,-0,0
51 };
52 */
53 /*
54 // using equidistant points on edges and integral evaluation for inner dofs
55 static double N_Q_BDM3_2D_CM[484] = {
56 0.032552083,-0.09765625,0.09765625,-0.032552083,-0.1875,0.125,0.125,-0.1875,-0.032552083,0.09765625,-0.09765625,0.032552083,0.1875,-0.125,-0.125,0.1875,0.375,0,-0,0,0,0,
57 0.1875,-0.125,-0.125,0.1875,0.032552083,-0.09765625,0.09765625,-0.032552083,-0.1875,0.125,0.125,-0.1875,-0.032552083,0.09765625,-0.09765625,0.032552083,-0,0.375,-0,-0,0,0,
58 -0,0,-0,0,-0.30208333,0.11458333,0.11458333,-0.30208333,0,-0,0,-0,-0.30208333,0.11458333,0.11458333,-0.30208333,-0,-0,1.875,-0,0,0,
59 -0.57291667,1.40625,-1.40625,0.57291667,0,-0,0,-0,-0.57291667,1.40625,-1.40625,0.57291667,-0,0,-0,0,0,-0,-0,1.125,0,-0,
60 -0.1953125,0.5859375,-0.5859375,0.1953125,0.171875,0.015625,0.015625,0.171875,0.1953125,-0.5859375,0.5859375,-0.1953125,-0.171875,-0.015625,-0.015625,-0.171875,-0.375,0,0,-0,0,0,
61 -0.390625,0.390625,0.390625,-0.390625,0,-0,0,-0,0.390625,-0.390625,-0.390625,0.390625,-0,0,-0,0,0,0,-0,0,0,0,
62 0,-0,0,-0,0.28645833,0.026041667,0.026041667,0.28645833,-0,0,-0,0,0.28645833,0.026041667,0.026041667,0.28645833,0,0,-1.875,0,0,0,
63 0.65104167,-1.953125,1.953125,-0.65104167,-0,0,-0,0,0.65104167,-1.953125,1.953125,-0.65104167,0,-0,0,-0,0,0,0,-0,0,0,
64 -0,0,-0,0,0.57291667,-1.40625,1.40625,-0.57291667,0,-0,0,-0,0.57291667,-1.40625,1.40625,-0.57291667,0,0,-0,-0,1.125,0,
65 -0.30208333,0.11458333,0.11458333,-0.30208333,-0,0,-0,0,-0.30208333,0.11458333,0.11458333,-0.30208333,0,-0,0,-0,0,-0,-0,-0,0,1.875,
66 -0,0,-0,0,0.390625,-0.390625,-0.390625,0.390625,0,-0,0,-0,-0.390625,0.390625,0.390625,-0.390625,-0,0,0,-0,-0,0,
67 -0.171875,-0.015625,-0.015625,-0.171875,-0.1953125,0.5859375,-0.5859375,0.1953125,0.171875,0.015625,0.015625,0.171875,0.1953125,-0.5859375,0.5859375,-0.1953125,-0,-0.375,0,0,0,0,
68 -0,0,-0,0,-0.65104167,1.953125,-1.953125,0.65104167,0,-0,0,-0,-0.65104167,1.953125,-1.953125,0.65104167,0,0,0,-0,0,0,
69 0.28645833,0.026041667,0.026041667,0.28645833,0,-0,0,-0,0.28645833,0.026041667,0.026041667,0.28645833,-0,0,-0,0,0,0,0,0,-0,-1.875,
70 -0,0,-0,0,0.026041667,-0.703125,0.703125,-0.026041667,0,-0,0,-0,-0.026041667,0.703125,-0.703125,0.026041667,-0,0,-0,0,0,0,
71 0.026041667,-0.703125,0.703125,-0.026041667,0,-0,0,-0,-0.026041667,0.703125,-0.703125,0.026041667,-0,0,-0,0,-0,0,-0,-0,0,0,
72 0,-0,0,-0,-0.546875,0.703125,-0.703125,0.546875,-0,0,-0,0,-0.546875,0.703125,-0.703125,0.546875,-0,-0,0,-0,-1.125,0,
73 0.390625,-0.390625,-0.390625,0.390625,0,-0,0,-0,0.390625,-0.390625,-0.390625,0.390625,-0,0,-0,0,0,0,0,-0,0,0,
74 0,-0,0,-0,0.390625,-0.390625,-0.390625,0.390625,-0,0,-0,0,0.390625,-0.390625,-0.390625,0.390625,0,0,-0,0,0,0,
75 0.546875,-0.703125,0.703125,-0.546875,-0,0,-0,0,0.546875,-0.703125,0.703125,-0.546875,0,-0,0,-0,0,0,0,-1.125,-0,0,
76 0.16276042,-0.48828125,0.48828125,-0.16276042,0,-0,0,-0,-0.16276042,0.48828125,-0.48828125,0.16276042,-0,0,-0,0,0,0,-0,0,0,0,
77 0,-0,0,-0,-0.16276042,0.48828125,-0.48828125,0.16276042,-0,0,-0,0,0.16276042,-0.48828125,0.48828125,-0.16276042,0,0,0,0,0,0
78 };
79 */
80 /*
81 // using Gauss-Points on edges and point evaluations for inner dofs
82 static double N_Q_BDM3_2D_CM[484] = {
83 0.017391891,-0.044051834,0.044051834,-0.017391891,-0.077310535,0.10924949,-0.098399691,-0.12103926,-0.017391891,0.044051834,-0.044051834,0.017391891,0.12103926,0.098399691,-0.10924949,0.077310535,0.625,0,0.625,-0,0.5,0,
84 0.13020103,-0.067701025,-0.067701025,0.13020103,0.019324323,-0.048946483,0.048946483,-0.019324323,-0.026438789,-0.036061211,-0.036061211,-0.026438789,-0.019324323,0.048946483,-0.048946483,0.019324323,0,0.75,0,0.375,0,0.375,
85 0,-0,0,-0,-0.058905083,0.29036825,-0.40179567,-0.20466749,-0,0,-0,0,-0.20466749,-0.40179567,0.29036825,-0.058905083,-1.6137431,0,1.6137431,-0,-0,0,
86 -0.29258269,0.23883804,-0.23883804,0.29258269,0,0,0,0,-0.098018975,0.38284745,-0.38284745,0.098018975,0,0,-0,0,0,0,0,-0.96824584,0,0.96824584,
87 -0.07536486,0.19089128,-0.19089128,0.07536486,0.054228886,0.038832164,0.24648134,0.097957609,0.07536486,-0.19089128,0.19089128,-0.07536486,-0.097957609,-0.24648134,-0.038832164,-0.054228886,-0.625,-0,-0.625,0,-0.5,-0,
88 -0.19969052,0.19969052,0.19969052,-0.19969052,0,0,0,0,0.19969052,-0.19969052,-0.19969052,0.19969052,0,0,-0,0,0,-0,0,0,0,-0,
89 -0,0,-0,0,0.035823433,-0.1422866,0.54987732,0.18158584,0,-0,0,-0,0.18158584,0.54987732,-0.1422866,0.035823433,1.6137431,-0,-1.6137431,0,0,-0,
90 0.23189188,-0.58735779,0.58735779,-0.23189188,0,0,0,0,0.23189188,-0.58735779,0.58735779,-0.23189188,0,0,-0,0,0,-0,0,0,0,-0,
91 0.030123639,-0.076300016,0.076300016,-0.030123639,0.05868289,-0.12185164,-0.089938707,-0.17165207,-0.030123639,0.076300016,-0.076300016,0.030123639,0.17165207,0.089938707,0.12185164,-0.05868289,1.0825318,0,1.0825318,-0,-0.8660254,0,
92 -0.23396326,0.17146326,0.17146326,-0.23396326,0,0,0,0,0.077323446,-0.13982345,-0.13982345,0.077323446,0,0,-0,0,0,1.2990381,0,-0.64951905,0,-0.64951905,
93 0,0,-0,0,0.19969052,-0.19969052,-0.19969052,0.19969052,0,0,0,0,-0.19969052,0.19969052,0.19969052,-0.19969052,0,0,0,0,0,0,
94 -0.10711938,-0.080380624,-0.080380624,-0.10711938,-0.077297292,0.19578593,-0.19578593,0.077297292,0.0033571398,0.18414286,0.18414286,0.0033571398,0.077297292,-0.19578593,0.19578593,-0.077297292,0,-0.75,0,-0.375,0,-0.375,
95 0,0,0,0,-0.23189188,0.58735779,-0.58735779,0.23189188,0,0,0,0,-0.23189188,0.58735779,-0.58735779,0.23189188,0,0,0,0,0,0,
96 0.21088161,-0.023381611,-0.023381611,0.21088161,0,0,0,0,-0.1004051,0.2879051,0.2879051,-0.1004051,0,0,-0,0,0,-1.2990381,0,0.64951905,0,0.64951905,
97 0,0,0,0,0.026803712,-0.43555855,0.43555855,-0.026803712,0,0,0,0,-0.026803712,0.43555855,-0.43555855,0.026803712,0,0,0,0,0,0,
98 0.026803712,-0.43555855,0.43555855,-0.026803712,0,0,0,0,-0.026803712,0.43555855,-0.43555855,0.026803712,0,0,-0,0,0,0,0,-0,0,0,
99 -0.030123639,0.076300016,-0.076300016,0.030123639,-0.031879178,-0.3137069,0.52549725,0.14484835,0.030123639,-0.076300016,0.076300016,-0.030123639,-0.14484835,-0.52549725,0.3137069,0.031879178,-1.0825318,-0,-1.0825318,0,0.8660254,-0,
100 0.19969052,-0.19969052,-0.19969052,0.19969052,0,0,0,0,0.19969052,-0.19969052,-0.19969052,0.19969052,0,0,-0,0,0,-0,0,0,0,-0,
101 0,0,0,0,0.19969052,-0.19969052,-0.19969052,0.19969052,0,0,0,0,0.19969052,-0.19969052,-0.19969052,0.19969052,0,0,0,0,0,0,
102 0.26577898,0.19672051,-0.19672051,-0.26577898,0,0,0,0,0.071215263,0.052711102,-0.052711102,-0.071215263,0,0,-0,0,0,-0,0,0.96824584,0,-0.96824584,
103 0.057972969,-0.14683945,0.14683945,-0.057972969,0,0,0,0,-0.057972969,0.14683945,-0.14683945,0.057972969,0,0,-0,0,0,0,0,-0,0,0,
104 0,0,0,0,-0.057972969,0.14683945,-0.14683945,0.057972969,0,0,0,0,0.057972969,-0.14683945,0.14683945,-0.057972969,0,0,0,0,0,0
105 };
106 */
107 /*
108 // using Gauss-Points on edges and integral evaluations for inner dofs
109 static double N_Q_BDM3_2D_CM[484] = {
110 0.011594594,-0.02936789,0.02936789,-0.011594594,-0.088304433,0.025804433,0.025804433,-0.088304433,-0.011594594,0.02936789,-0.02936789,0.011594594,0.088304433,-0.025804433,-0.025804433,0.088304433,0.375,0,-0,0,-0,0,
111 0.088304433,-0.025804433,-0.025804433,0.088304433,0.011594594,-0.02936789,0.02936789,-0.011594594,-0.088304433,0.025804433,0.025804433,-0.088304433,-0.011594594,0.02936789,-0.02936789,0.011594594,0,0.375,0,-0,0,-0,
112 -0,0,-0,0,-0.13178629,-0.055713711,-0.055713711,-0.13178629,0,-0,0,-0,-0.13178629,-0.055713711,-0.055713711,-0.13178629,-0,0,1.875,0,-0,0,
113 -0.19530083,0.31084274,-0.31084274,0.19530083,0,-0,0,-0,-0.19530083,0.31084274,-0.31084274,0.19530083,-0,0,-0,0,0,-0,0,1.125,0,0,
114 -0.069567563,0.17620734,-0.17620734,0.069567563,0.065222784,0.12227722,0.12227722,0.065222784,0.069567563,-0.17620734,0.17620734,-0.069567563,-0.065222784,-0.12227722,-0.12227722,-0.065222784,-0.375,0,0,0,0,0,
115 -0.19969052,0.19969052,0.19969052,-0.19969052,0,-0,0,-0,0.19969052,-0.19969052,-0.19969052,0.19969052,-0,0,-0,0,0,0,0,0,0,0,
116 0,-0,0,-0,0.10870464,0.20379536,0.20379536,0.10870464,-0,0,-0,0,0.10870464,0.20379536,0.20379536,0.10870464,0,0,-1.875,0,0,0,
117 0.23189188,-0.58735779,0.58735779,-0.23189188,0,-0,0,-0,0.23189188,-0.58735779,0.58735779,-0.23189188,-0,0,-0,0,0,0,0,0,0,0,
118 -0,0,-0,0,0.19530083,-0.31084274,0.31084274,-0.19530083,0,-0,0,-0,0.19530083,-0.31084274,0.31084274,-0.19530083,0,0,-0,0,1.125,0,
119 -0.13178629,-0.055713711,-0.055713711,-0.13178629,0,-0,0,-0,-0.13178629,-0.055713711,-0.055713711,-0.13178629,-0,0,-0,0,0,0,0,-0,0,1.875,
120 0,0,-0,0,0.19969052,-0.19969052,-0.19969052,0.19969052,0,0,0,0,-0.19969052,0.19969052,0.19969052,-0.19969052,0,0,0,0,0,0,
121 -0.065222784,-0.12227722,-0.12227722,-0.065222784,-0.069567563,0.17620734,-0.17620734,0.069567563,0.065222784,0.12227722,0.12227722,0.065222784,0.069567563,-0.17620734,0.17620734,-0.069567563,-0,-0.375,0,0,0,0,
122 0,0,0,0,-0.23189188,0.58735779,-0.58735779,0.23189188,0,0,0,0,-0.23189188,0.58735779,-0.58735779,0.23189188,0,0,0,0,0,0,
123 0.10870464,0.20379536,0.20379536,0.10870464,-0,0,-0,0,0.10870464,0.20379536,0.20379536,0.10870464,0,-0,0,-0,0,-0,0,0,0,-1.875,
124 0,0,0,0,0.026803712,-0.43555855,0.43555855,-0.026803712,0,0,0,0,-0.026803712,0.43555855,-0.43555855,0.026803712,0,0,0,0,0,0,
125 0.026803712,-0.43555855,0.43555855,-0.026803712,0,-0,0,-0,-0.026803712,0.43555855,-0.43555855,0.026803712,-0,0,-0,0,0,0,0,0,0,0,
126 0,-0,0,-0,-0.16849712,-0.12471581,0.12471581,0.16849712,-0,0,-0,0,-0.16849712,-0.12471581,0.12471581,0.16849712,-0,-0,0,0,-1.125,0,
127 0.19969052,-0.19969052,-0.19969052,0.19969052,0,-0,0,-0,0.19969052,-0.19969052,-0.19969052,0.19969052,-0,0,-0,0,-0,0,0,-0,0,0,
128 0,0,0,0,0.19969052,-0.19969052,-0.19969052,0.19969052,0,0,0,0,0.19969052,-0.19969052,-0.19969052,0.19969052,-0,0,0,0,0,0,
129 0.16849712,0.12471581,-0.12471581,-0.16849712,0,-0,0,-0,0.16849712,0.12471581,-0.12471581,-0.16849712,-0,0,-0,0,0,0,0,-1.125,0,0,
130 0.057972969,-0.14683945,0.14683945,-0.057972969,0,-0,0,-0,-0.057972969,0.14683945,-0.14683945,0.057972969,-0,0,-0,0,0,0,0,0,0,0,
131 0,0,0,0,-0.057972969,0.14683945,-0.14683945,0.057972969,0,0,0,0,0.057972969,-0.14683945,0.14683945,-0.057972969,0,0,0,0,0,0
132 };
133 */
134 /*
135 // using Tschebyscheff-points on edges and point evaluations for inner dofs
136 static double N_Q_BDM3_2D_CM[484] = {
137 0.017938286,-0.043306853,0.043306853,-0.017938286,-0.1103852,0.16786576,-0.17858906,-0.25389149,-0.017938286,0.043306853,-0.043306853,0.017938286,0.25389149,0.17858906,-0.16786576,0.1103852,1,0,1,-0,0.5,0,
138 0.20044417,-0.075444174,-0.075444174,0.20044417,0.023917714,-0.057742471,0.057742471,-0.023917714,-0.012944174,-0.11205583,-0.11205583,-0.012944174,-0.023917714,0.057742471,-0.057742471,0.023917714,0,1,0,0.5,0,0.5,
139 -0,0,-0,0,-0.084546631,0.36282811,-0.56105142,-0.46723006,0,-0,0,-0,-0.46723006,-0.56105142,0.36282811,-0.084546631,-2.3094011,-0,2.3094011,0,0,-0,
140 -0.4223116,0.23096988,-0.23096988,0.4223116,0,0,0,0,-0.095670858,0.36626891,-0.36626891,0.095670858,0,0,0,0,0,0,0,-1.1547005,0,1.1547005,
141 -0.065773715,0.15879179,-0.15879179,0.065773715,0.084496856,-0.016977412,0.32947741,0.22800314,0.065773715,-0.15879179,0.15879179,-0.065773715,-0.22800314,-0.32947741,0.016977412,-0.084496856,-1,-0,-1,0,-0.5,-0,
142 -0.1767767,0.1767767,0.1767767,-0.1767767,0,0,0,0,0.1767767,-0.1767767,-0.1767767,0.1767767,0,0,0,0,0,-0,0,0,0,-0,
143 -0,0,-0,0,0.058658284,-0.21193977,0.71193977,0.44134172,0,-0,0,-0,0.44134172,0.71193977,-0.21193977,0.058658284,2.3094011,-0,-2.3094011,0,0,-0,
144 0.19134172,-0.46193977,0.46193977,-0.19134172,0,0,0,0,0.19134172,-0.46193977,0.46193977,-0.19134172,0,0,0,0,0,-0,0,0,0,-0,
145 0.025368567,-0.061245139,0.061245139,-0.025368567,0.064562605,-0.11857185,-0.14659319,-0.32972765,-0.025368567,0.061245139,-0.061245139,0.025368567,0.32972765,0.14659319,0.11857185,-0.064562605,1.4142136,0,1.4142136,-0,-0.70710678,0,
146 -0.29419417,0.16919417,0.16919417,-0.29419417,0,0,0,0,0.080805826,-0.20580583,-0.20580583,0.080805826,0,0,0,0,0,1.4142136,0,-0.70710678,0,-0.70710678,
147 0,0,-0,0,0.1767767,-0.1767767,-0.1767767,0.1767767,0,0,0,0,-0.1767767,0.1767767,0.1767767,-0.1767767,0,0,0,0,0,0,
148 -0.17455583,-0.075444174,-0.075444174,-0.17455583,-0.071753144,0.17322741,-0.17322741,0.071753144,-0.012944174,0.26294417,0.26294417,-0.012944174,0.071753144,-0.17322741,0.17322741,-0.071753144,0,-1,0,-0.5,0,-0.5,
149 0,0,-0,0,-0.19134172,0.46193977,-0.46193977,0.19134172,0,0,0,0,-0.19134172,0.46193977,-0.46193977,0.19134172,0,0,0,0,0,0,
150 0.26830583,-0.018305826,-0.018305826,0.26830583,0,0,0,0,-0.10669417,0.35669417,0.35669417,-0.10669417,0,0,0,0,0,-1.4142136,0,0.70710678,0,0.70710678,
151 0,0,-0,0,0.028021346,-0.39429025,0.39429025,-0.028021346,0,0,0,0,-0.028021346,0.39429025,-0.39429025,0.028021346,0,0,0,0,0,0,
152 0.028021346,-0.39429025,0.39429025,-0.028021346,0,0,0,0,-0.028021346,0.39429025,-0.39429025,0.028021346,0,0,0,0,0,0,0,-0,0,0,
153 -0.025368567,0.061245139,-0.061245139,0.025368567,-0.03654126,-0.27571841,0.54088345,0.3017063,0.025368567,-0.061245139,0.061245139,-0.025368567,-0.3017063,-0.54088345,0.27571841,0.03654126,-1.4142136,-0,-1.4142136,0,0.70710678,-0,
154 0.1767767,-0.1767767,-0.1767767,0.1767767,0,0,0,0,0.1767767,-0.1767767,-0.1767767,0.1767767,0,0,0,0,0,-0,0,0,0,-0,
155 0,0,0,0,0.1767767,-0.1767767,-0.1767767,0.1767767,0,0,0,0,0.1767767,-0.1767767,-0.1767767,0.1767767,0,0,0,0,0,0,
156 0.39429025,0.16332037,-0.16332037,-0.39429025,0,0,0,0,0.067649512,0.028021346,-0.028021346,-0.067649512,0,0,0,0,0,-0,0,1.1547005,0,-1.1547005,
157 0.047835429,-0.11548494,0.11548494,-0.047835429,0,0,0,0,-0.047835429,0.11548494,-0.11548494,0.047835429,0,0,0,0,0,0,0,-0,0,0,
158 0,0,0,0,-0.047835429,0.11548494,-0.11548494,0.047835429,0,0,0,0,0.047835429,-0.11548494,0.11548494,-0.047835429,0,0,0,0,0,0
159 };
160 */
161 
162 // using Tschebyscheff-points on edges and integral evaluations for inner dofs
163 static double N_Q_BDM3_2D_CM[484] = {
164 0.0095670858,-0.023096988,0.023096988,-0.0095670858,-0.075444174,0.012944174,0.012944174,-0.075444174,-0.0095670858,0.023096988,-0.023096988,0.0095670858,0.075444174,-0.012944174,-0.012944174,0.075444174,0.375,0,-0,0,-0,0,
165 0.075444174,-0.012944174,-0.012944174,0.075444174,0.0095670858,-0.023096988,0.023096988,-0.0095670858,-0.075444174,0.012944174,0.012944174,-0.075444174,-0.0095670858,0.023096988,-0.023096988,0.0095670858,-0,0.375,0,-0,0,-0,
166 -0,0,-0,0,-0.10848139,-0.079018609,-0.079018609,-0.10848139,0,-0,0,-0,-0.10848139,-0.079018609,-0.079018609,-0.10848139,-0,-0,1.875,0,0,0,
167 -0.15819687,0.21860066,-0.21860066,0.15819687,-0,0,-0,0,-0.15819687,0.21860066,-0.21860066,0.15819687,0,-0,0,-0,0,0,0,1.125,0,0,
168 -0.057402515,0.13858193,-0.13858193,0.057402515,0.049555826,0.13794417,0.13794417,0.049555826,0.057402515,-0.13858193,0.13858193,-0.057402515,-0.049555826,-0.13794417,-0.13794417,-0.049555826,-0.375,0,0,0,0,0,
169 -0.1767767,0.1767767,0.1767767,-0.1767767,0,0,0,0,0.1767767,-0.1767767,-0.1767767,0.1767767,0,0,0,0,0,-0,0,0,0,0,
170 0,-0,0,-0,0.082593044,0.22990696,0.22990696,0.082593044,-0,0,-0,0,0.082593044,0.22990696,0.22990696,0.082593044,0,0,-1.875,0,0,0,
171 0.19134172,-0.46193977,0.46193977,-0.19134172,0,-0,0,-0,0.19134172,-0.46193977,0.46193977,-0.19134172,-0,0,-0,0,-0,0,0,0,0,0,
172 -0,0,-0,0,0.15819687,-0.21860066,0.21860066,-0.15819687,0,-0,0,-0,0.15819687,-0.21860066,0.21860066,-0.15819687,-0,0,-0,0,1.125,0,
173 -0.10848139,-0.079018609,-0.079018609,-0.10848139,-0,0,-0,0,-0.10848139,-0.079018609,-0.079018609,-0.10848139,0,-0,0,-0,0,0,0,-0,0,1.875,
174 0,0,-0,0,0.1767767,-0.1767767,-0.1767767,0.1767767,0,0,0,0,-0.1767767,0.1767767,0.1767767,-0.1767767,0,0,0,0,0,0,
175 -0.049555826,-0.13794417,-0.13794417,-0.049555826,-0.057402515,0.13858193,-0.13858193,0.057402515,0.049555826,0.13794417,0.13794417,0.049555826,0.057402515,-0.13858193,0.13858193,-0.057402515,0,-0.375,0,0,0,0,
176 0,0,-0,0,-0.19134172,0.46193977,-0.46193977,0.19134172,0,0,0,0,-0.19134172,0.46193977,-0.46193977,0.19134172,0,0,0,0,0,0,
177 0.082593044,0.22990696,0.22990696,0.082593044,0,-0,0,-0,0.082593044,0.22990696,0.22990696,0.082593044,-0,0,-0,0,-0,0,0,0,0,-1.875,
178 0,0,-0,0,0.028021346,-0.39429025,0.39429025,-0.028021346,0,0,0,0,-0.028021346,0.39429025,-0.39429025,0.028021346,0,0,0,0,0,0,
179 0.028021346,-0.39429025,0.39429025,-0.028021346,0,0,0,0,-0.028021346,0.39429025,-0.39429025,0.028021346,0,0,0,0,0,0,0,0,0,0,
180 0,-0,0,-0,-0.13017553,-0.17568959,0.17568959,0.13017553,-0,0,-0,0,-0.13017553,-0.17568959,0.17568959,0.13017553,0,0,0,0,-1.125,0,
181 0.1767767,-0.1767767,-0.1767767,0.1767767,0,0,0,0,0.1767767,-0.1767767,-0.1767767,0.1767767,0,-0,0,0,0,-0,0,-0,0,0,
182 0,0,0,0,0.1767767,-0.1767767,-0.1767767,0.1767767,0,0,0,0,0.1767767,-0.1767767,-0.1767767,0.1767767,0,0,0,0,0,0,
183 0.13017553,0.17568959,-0.17568959,-0.13017553,-0,0,-0,0,0.13017553,0.17568959,-0.17568959,-0.13017553,0,-0,0,-0,0,-0,0,-1.125,0,0,
184 0.047835429,-0.11548494,0.11548494,-0.047835429,0,0,0,0,-0.047835429,0.11548494,-0.11548494,0.047835429,0,0,0,0,0,0,0,0,0,0,
185 0,0,0,0,-0.047835429,0.11548494,-0.11548494,0.047835429,0,0,0,0,0.047835429,-0.11548494,0.11548494,-0.047835429,0,0,0,0,0,0
186 };
187 
188 
189 static void N_Q_BDM3_2D_Funct(double xi, double eta, double *values)
190 {
191  int nBF = 22; // number of basis functions
192  // monomials x-component and y-component
193  double mon_x[22]={1,0,xi, 0,xi*xi, 0,xi*xi*xi, 0,eta, 0,eta*eta, 0,eta*eta*eta, 0,
194  xi*eta, 0,xi*xi*eta, 0,xi*eta*eta, 0, xi*xi*xi*xi,4*xi*eta*eta*eta};
195  double mon_y[22]={0,1, 0,xi, 0,xi*xi, 0,xi*xi*xi, 0,eta, 0,eta*eta, 0,eta*eta*eta,
196  0,xi*eta, 0,xi*xi*eta, 0,xi*eta*eta,-4*xi*xi*xi*eta,-eta*eta*eta*eta};
197 
198  memset(values, 0.0, 2*nBF*SizeOfDouble); // 2 is the space dimension
199  for(int i=0; i<nBF; i++)
200  {
201  for(int j=0; j<nBF; j++)
202  {
203  values[i ] += N_Q_BDM3_2D_CM[i+j*nBF]*mon_x[j];
204  values[i+nBF] += N_Q_BDM3_2D_CM[i+j*nBF]*mon_y[j];
205  }
206  }
207 }
208 
209 // values of the derivatives in xi direction
210 static void N_Q_BDM3_2D_DeriveXi(double xi, double eta, double *values)
211 {
212  int nBF = 22; // number of basis functions
213  // monomials x-component and y-component
214  double mon_x[22]={0,0,1, 0,2*xi, 0,3*xi*xi, 0,0, 0,0, 0,0, 0,
215  eta, 0,2*xi*eta, 0,eta*eta, 0, 4*xi*xi*xi,4*eta*eta*eta};
216  double mon_y[22]={0,0, 0,1, 0,2*xi, 0,3*xi*xi, 0,0, 0,0, 0,0,
217  0,eta, 0,2*xi*eta, 0,eta*eta,-12*xi*xi*eta,0};
218 
219  memset(values, 0.0, 2*nBF*SizeOfDouble); // 2 is the space dimension
220  for(int i=0; i<nBF; i++)
221  {
222  for(int j=0; j<nBF; j++)
223  {
224  values[i ] += N_Q_BDM3_2D_CM[i+j*nBF]*mon_x[j];
225  values[i+nBF] += N_Q_BDM3_2D_CM[i+j*nBF]*mon_y[j];
226  }
227  }
228 }
229 
230 // values of the derivatives in eta direction
231 static void N_Q_BDM3_2D_DeriveEta(double xi, double eta, double *values)
232 {
233  int nBF = 22; // number of basis functions
234  // monomials x-component and y-component
235  double mon_x[22]={0,0,0, 0,0, 0,0, 0,1, 0,2*eta, 0,3*eta*eta, 0,
236  xi, 0,xi*xi, 0,2*xi*eta, 0, 0,12*xi*eta*eta};
237  double mon_y[22]={0,0, 0,0, 0,0, 0,0, 0,1, 0,2*eta, 0,3*eta*eta,
238  0,xi, 0,xi*xi, 0,2*xi*eta,-4*xi*xi*xi,-4*eta*eta*eta};
239 
240  memset(values, 0.0, 2*nBF*SizeOfDouble); // 2 is the space dimension
241  for(int i=0; i<nBF; i++)
242  {
243  for(int j=0; j<nBF; j++)
244  {
245  values[i ] += N_Q_BDM3_2D_CM[i+j*nBF]*mon_x[j];
246  values[i+nBF] += N_Q_BDM3_2D_CM[i+j*nBF]*mon_y[j];
247  }
248  }
249 }
250 
251 // values of derivatives in xi-xi direction
252 static void N_Q_BDM3_2D_DeriveXiXi(double xi, double eta, double *values)
253 {
254  int nBF = 22; // number of basis functions
255  // monomials x-component and y-component
256  double mon_x[22]={0,0,0, 0,2, 0,6*xi, 0,0, 0,0, 0,0, 0,
257  0, 0,2*eta, 0,0, 0, 12*xi*xi,0};
258  double mon_y[22]={0,0, 0,0, 0,2, 0,6*xi, 0,0, 0,0, 0,0,
259  0,0, 0,2*eta, 0,0,-24*xi*eta,0};
260 
261  memset(values, 0.0, 2*nBF*SizeOfDouble); // 2 is the space dimension
262  for(int i=0; i<nBF; i++)
263  {
264  for(int j=0; j<nBF; j++)
265  {
266  values[i ] += N_Q_BDM3_2D_CM[i+j*nBF]*mon_x[j];
267  values[i+nBF] += N_Q_BDM3_2D_CM[i+j*nBF]*mon_y[j];
268  }
269  }
270 }
271 
272 // values of derivatives in eta-eta direction
273 static void N_Q_BDM3_2D_DeriveEtaEta(double xi, double eta, double *values)
274 {
275  int nBF = 22; // number of basis functions
276  // monomials x-component and y-component
277  double mon_x[22]={0,0,0, 0,0, 0,0, 0,0, 0,2, 0,6*eta, 0,
278  0, 0,0, 0,2*xi, 0, 0,24*xi*eta};
279  double mon_y[22]={0,0, 0,0, 0,0, 0,0, 0,0, 0,2, 0,6*eta,
280  0,0, 0,0, 0,2*xi,0,-12*eta*eta};
281 
282  memset(values, 0.0, 2*nBF*SizeOfDouble); // 2 is the space dimension
283  for(int i=0; i<nBF; i++)
284  {
285  for(int j=0; j<nBF; j++)
286  {
287  values[i ] += N_Q_BDM3_2D_CM[i+j*nBF]*mon_x[j];
288  values[i+nBF] += N_Q_BDM3_2D_CM[i+j*nBF]*mon_y[j];
289  }
290  }
291 }
292 
293 // values of derivatives in xi-eta direction
294 static void N_Q_BDM3_2D_DeriveXiEta(double xi, double eta, double *values)
295 {
296  int nBF = 22; // number of basis functions
297  // monomials x-component and y-component
298  double mon_x[22]={0,0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,
299  1, 0,2*xi, 0,2*eta, 0, 0,12*eta*eta};
300  double mon_y[22]={0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0,
301  0,1, 0,2*xi, 0,2*eta,-12*xi*xi,0};
302 
303  memset(values, 0.0, 2*nBF*SizeOfDouble); // 2 is the space dimension
304  for(int i=0; i<nBF; i++)
305  {
306  for(int j=0; j<nBF; j++)
307  {
308  values[i ] += N_Q_BDM3_2D_CM[i+j*nBF]*mon_x[j];
309  values[i+nBF] += N_Q_BDM3_2D_CM[i+j*nBF]*mon_y[j];
310  }
311  }
312 }
313 
314 
315 // ***********************************************************************
316 
317 TBaseFunct2D *BF_N_Q_BDM3_2D_Obj = new TBaseFunct2D
318  (22, BF_N_Q_BDM3_2D, BFUnitSquare,
319  N_Q_BDM3_2D_Funct, N_Q_BDM3_2D_DeriveXi,
320  N_Q_BDM3_2D_DeriveEta, N_Q_BDM3_2D_DeriveXiXi,
321  N_Q_BDM3_2D_DeriveXiEta, N_Q_BDM3_2D_DeriveEtaEta, 4, 4,
322  0, NULL, 2);
Definition: BaseFunct2D.h:27