ParMooN
 All Classes Functions Variables Friends Pages
BF_D_T_P3_3D.h
1 // ***********************************************************************
2 // P3 element, discontinuous, 3D Tetrahedra
3 //
4 // Author: Markus Wolff
5 //
6 // ***********************************************************************
7 
8 static double D_T_P3_3D_CM[400] = {
9  2400.000270366319,-12600.0008874325777,-12600.0027071968907,-12600.0014446784808,20160.0009741052563,40320.0060833796597,40320.0028214699414,20160.0055626813773,40320.0101806129242,20160.0019488477192,-10080.0003561955455,-30240.0034068293135,-30240.0013868140413,-30240.0062605094427,-60480.0106457556249,-30240.0017493218766,-10080.0031570559022,-30240.010309277568,-30240.0076037795588,-10080.0007415879027,
10  -12600.0008874325777,105840.002950673937,52920.0095555666048,52920.0040438508731,-211680.003250046604,-282240.021545840078,-282240.00804695196,-70560.0203835152206,-141120.032678659918,-70560.0044618983084,120960.001184249937,272160.01204598305,272160.004009647062,181440.022917332331,362880.034661523299,181440.00395387123,30240.0119049821442,90720.034524176328,90720.0228720662999,30240.0011547935937,
11  -12600.0027071968907,52920.0095555666048,105840.022757271974,52920.0176855119498,-70560.0111611062021,-282240.054046943376,-141120.037793901283,-211680.042795008747,-282240.09820125415,-70560.0288385544409,30240.0043041127392,181440.031679338746,90720.0203314148239,272160.050981697976,362880.106703056721,90720.0295746038173,120960.022725883842,272160.090823325852,181440.080377591745,30240.0137180526144,
12  -12600.0014446784808,52920.0040438508731,52920.0176855119498,105840.005368920538,-70560.0037727144663,-141120.036583060719,-282240.007376211288,-70560.0395031326916,-282240.056503988104,-211680.00382900078,30240.0011695692374,90720.0190311979241,181440.00197698886,90720.0414145632676,362880.054645910917,272160.000222664501,30240.0237075263249,181440.063786087587,272160.036953315837,120959.999631301354,
13  20160.0009741052563,-211680.003250046604,-70560.0111611062021,-70560.0037727144663,483840.003568597313,483840.02507943369,483840.007613639813,80640.0245102581539,161280.035333636013,80640.0030294462194,-302400.001290069486,-544320.013937487383,-544320.003823754261,-272160.027385976806,-544320.037772990763,-272160.002577515552,-30240.0146190936357,-90720.0387875903834,-90720.0232311772415,-30240.0000215763939,
14  40320.0060833796597,-282240.021545840078,-282240.054046943376,-141120.036583060719,483840.02507943369,1290240.12781189987,645120.079391933512,483840.106077967153,645120.214325221954,161280.056623426557,-241920.00959951448,-1088640.07435429678,-544320.043130868115,-1088640.12508803746,-1451520.23516083811,-362880.059040278313,-241920.0586008229,-544320.204010986956,-362880.168864726322,-60480.0256642114255,
15  40320.0028214699414,-282240.00804695196,-141120.037793901283,-282240.007376211288,483840.007613639813,645120.079391933512,1290240.00826098165,161280.086613732448,645120.110816906672,483839.998350762355,-241920.00238014225,-544320.041767256567,-1088640.00076106237,-362880.091897055856,-1451520.10871690349,-1088639.9911149391,-60480.052733157645,-362880.131769075699,-544320.065775724011,-241919.993047464348,
16  20160.0055626813773,-70560.0203835152206,-211680.042795008747,-70560.0395031326916,80640.0245102581539,483840.106077967153,161280.086613732448,483840.075709991565,483840.200489141513,80640.068235175364,-30240.0096698496054,-272160.064215859864,-90720.0476920843357,-544320.095060582156,-544320.221953506116,-90720.0718740543234,-302400.03805678623,-544320.176857720362,-272160.171560897375,-30240.0341402420308,
17  40320.0101806129242,-141120.032678659918,-282240.09820125415,-282240.056503988104,161280.035333636013,645120.214325221954,645120.110816906672,483840.200489141513,1290240.37196648633,483840.08058939944,-60480.012810513188,-362880.117396406364,-362880.05488434626,-544320.218616156722,-1451520.38455772679,-544320.074402918341,-241920.113668352278,-1088640.37231836584,-1088640.28023162903,-241920.033451245516,
18  20160.0019488477192,-70560.0044618983084,-70560.0288385544409,-211680.00382900078,80640.0030294462194,161280.056623426557,483839.998350762355,80640.068235175364,483840.08058939944,483839.995623568946,-30240.0005107761826,-90720.027912220743,-272159.994317010045,-90720.069138680381,-544320.071767096175,-544319.98662183038,-30240.0423606441072,-272160.100043554674,-544320.04588640295,-302399.993201440549,
19  -10080.0003561955455,120960.001184249937,30240.0043041127392,30240.0011695692374,-302400.001290069486,-241920.00959951448,-241920.00238014225,-30240.0096698496054,-60480.012810513188,-30240.0005107761826,201600.000461147632,302400.005289558787,302400.001196895144,120960.010709458555,241920.013732013293,120960.000367314569,10080.0058590520202,30240.014545172533,30240.0079466286334,10079.9996058106844,
20  -30240.0034068293135,272160.01204598305,181440.031679338746,90720.0190311979241,-544320.013937487383,-1088640.07435429678,-544320.041767256567,-272160.064215859864,-362880.117396406364,-90720.027912220743,302400.005289558787,1088640.04287408921,544320.02283465513,816480.07486317365,1088640.12948791496,272160.029531313281,120960.03647096132,272160.11465448438,181440.089354966331,30240.0119613458373,
21  -30240.0013868140413,272160.004009647062,90720.0203314148239,181440.00197698886,-544320.003823754261,-544320.043130868115,-1088640.00076106237,-90720.0476920843357,-362880.05488434626,-272159.994317010045,302400.001196895144,544320.02283465513,1088639.99869042495,272160.050946578383,1088640.05449366709,816479.990646171849,30240.0294065969356,181440.068833562982,272160.029039093992,120959.993241447053,
22  -30240.0062605094427,181440.022917332331,272160.050981697976,90720.0414145632676,-272160.027385976806,-1088640.12508803746,-362880.091897055856,-544320.095060582156,-544320.218616156722,-90720.069138680381,120960.010709458555,816480.07486317365,272160.050946578383,1088640.1170124975,1088640.243902002,181440.0738150166,302400.050450621464,544320.197938643163,272160.181220518309,30240.0336805695697,
23  -60480.0106457556249,362880.034661523299,362880.106703056721,362880.054645910917,-544320.037772990763,-1451520.23516083811,-1451520.10871690349,-544320.221953506116,-1451520.38455772679,-544320.071767096175,241920.013732013293,1088640.12948791496,1088640.05449366709,1088640.243902002,2903040.40239360556,1088640.06650575623,241920.127495316905,1088640.39419962023,1088640.27925281855,241920.026725903474,
24  -30240.0017493218766,181440.00395387123,90720.0295746038173,272160.000222664501,-272160.002577515552,-362880.059040278313,-1088639.9911149391,-90720.0718740543234,-544320.074402918341,-544319.98662183038,120960.000367314569,272160.029531313281,816479.990646171849,181440.0738150166,1088640.06650575623,1088639.97741935658,30240.0452037056602,272160.099126852234,544320.036039048922,302399.987425403669,
25  -10080.0031570559022,30240.0119049821442,120960.022725883842,30240.0237075263249,-30240.0146190936357,-241920.0586008229,-60480.052733157645,-302400.03805678623,-241920.113668352278,-30240.0423606441072,10080.0058590520202,120960.03647096132,30240.0294065969356,302400.050450621464,241920.127495316905,30240.0452037056602,201600.018072547187,302400.096863501763,120960.100327709195,10080.0217748870946,
26  -30240.010309277568,90720.034524176328,272160.090823325852,181440.063786087587,-90720.0387875903834,-544320.204010986956,-362880.131769075699,-544320.176857720362,-1088640.37231836584,-272160.100043554674,30240.014545172533,272160.11465448438,181440.068833562982,544320.197938643163,1088640.39419962023,272160.099126852234,302400.096863501763,1088640.35462875618,816480.29545330978,120960.046020291498,
27  -30240.0076037795588,90720.0228720662999,181440.080377591745,272160.036953315837,-90720.0232311772415,-362880.168864726322,-544320.065775724011,-272160.171560897375,-1088640.28023162903,-544320.04588640295,30240.0079466286334,181440.089354966331,272160.029039093992,272160.181220518309,1088640.27925281855,544320.036039048922,120960.100327709195,816480.29545330978,1088640.19906270504,302400.015760788752,
28  -10080.0007415879027,30240.0011547935937,30240.0137180526144,120959.999631301354,-30240.0000215763939,-60480.0256642114255,-241919.993047464348,-30240.0341402420308,-241920.033451245516,-302399.993201440549,10079.9996058106844,30240.0119613458373,120959.993241447053,30240.0336805695697,241920.026725903474,302399.987425403669,10080.0217748870946,120960.046020291498,302400.015760788752,201599.994004255743
29 
30 };
31 
32 static void D_T_P3_3D_Funct(double xi, double eta, double zeta,
33  double *values)
34 {
35  int nBF = 20; // number of basis functions
36  double mon[]={1,xi,eta,zeta,xi*xi,xi*eta,xi*zeta,
37  eta*eta,eta*zeta,zeta*zeta,
38  xi*xi*xi,xi*xi*eta,xi*xi*zeta,
39  xi*eta*eta,xi*eta*zeta,xi*zeta*zeta,
40  eta*eta*eta,eta*eta*zeta,eta*zeta*zeta,zeta*zeta*zeta};
41  memset(values, 0.0, nBF*SizeOfDouble);
42  for(int i=0; i<nBF; i++)
43  {
44  for(int j=0; j<nBF; j++)
45  {
46  values[i] += D_T_P3_3D_CM[i+j*nBF]*mon[j];
47 
48  }
49  }
50 }
51 
52 static void D_T_P3_3D_DeriveXi(double xi, double eta, double zeta,
53  double *values)
54 {
55  int nBF = 20; // number of basis functions
56  double mon[]={0,1,0,0,2*xi,eta,zeta,
57  0,0,0,
58  3*xi*xi,2*xi*eta,2*xi*zeta,
59  eta*eta,eta*zeta,zeta*zeta,
60  0,0,0,0};
61  memset(values, 0.0, nBF*SizeOfDouble);
62  for(int i=0; i<nBF; i++)
63  {
64  for(int j=0; j<nBF; j++)
65  {
66  values[i] += D_T_P3_3D_CM[i+j*nBF]*mon[j];
67 
68  }
69  }
70 }
71 
72 static void D_T_P3_3D_DeriveEta(double xi, double eta, double zeta,
73  double *values)
74 {
75  int nBF = 20; // number of basis functions
76  double mon[]={0,0,1,0,0,xi,0,
77  2*eta,zeta,0,
78  0,xi*xi,0,
79  xi*2*eta,xi*zeta,0,
80  3*eta*eta,2*eta*zeta,zeta*zeta,0};
81  memset(values, 0.0, nBF*SizeOfDouble);
82  for(int i=0; i<nBF; i++)
83  {
84  for(int j=0; j<nBF; j++)
85  {
86  values[i] += D_T_P3_3D_CM[i+j*nBF]*mon[j];
87  }
88  }
89 }
90 
91 static void D_T_P3_3D_DeriveZeta(double xi, double eta, double zeta,
92  double *values)
93 {
94  int nBF = 20; // number of basis functions
95  double mon[]={0,0,0,1,0,0,xi,
96  0,eta,2*zeta,
97  0,0,xi*xi,
98  0,xi*eta,xi*2*zeta,
99  0,eta*eta,eta*2*zeta,3*zeta*zeta};
100  memset(values, 0.0, nBF*SizeOfDouble);
101  for(int i=0; i<nBF; i++)
102  {
103  for(int j=0; j<nBF; j++)
104  {
105  values[i] += D_T_P3_3D_CM[i+j*nBF]*mon[j];
106 
107  }
108  }
109 }
110 
111 static void D_T_P3_3D_DeriveXiXi(double xi, double eta, double zeta,
112  double *values)
113 {
114  int nBF = 20; // number of basis functions
115  double mon[]={0,0,0,0,2,0,0,
116  0,0,0,
117  3*2*xi,2*eta,2*zeta,
118  0,0,0,
119  0,0,0,0};
120  memset(values, 0.0, nBF*SizeOfDouble);
121  for(int i=0; i<nBF; i++)
122  {
123  for(int j=0; j<nBF; j++)
124  {
125  values[i] += D_T_P3_3D_CM[i+j*nBF]*mon[j];
126 
127  }
128  }
129 }
130 
131 static void D_T_P3_3D_DeriveXiEta(double xi, double eta, double zeta,
132  double *values)
133 {
134  int nBF = 20; // number of basis functions
135  double mon[]={0,0,0,0,0,1,0,
136  0,0,0,
137  0,2*xi,0,
138  2*eta,zeta,0,
139  0,0,0,0};
140  memset(values, 0.0, nBF*SizeOfDouble);
141  for(int i=0; i<nBF; i++)
142  {
143  for(int j=0; j<nBF; j++)
144  {
145  values[i] += D_T_P3_3D_CM[i+j*nBF]*mon[j];
146 
147  }
148  }
149 }
150 
151 static void D_T_P3_3D_DeriveXiZeta(double xi, double eta, double zeta,
152  double *values)
153 {
154  int nBF = 20; // number of basis functions
155  double mon[]={0,0,0,0,0,0,1,
156  0,0,0,
157  0,0,2*xi,
158  0,eta,2*zeta,
159  0,0,0,0};
160  memset(values, 0.0, nBF*SizeOfDouble);
161  for(int i=0; i<nBF; i++)
162  {
163  for(int j=0; j<nBF; j++)
164  {
165  values[i] += D_T_P3_3D_CM[i+j*nBF]*mon[j];
166 
167  }
168  }
169 }
170 
171 static void D_T_P3_3D_DeriveEtaEta(double xi, double eta, double zeta,
172  double *values)
173 {
174  int nBF = 20; // number of basis functions
175  double mon[]={0,0,0,0,0,0,0,
176  2,0,0,
177  0,0,0,
178  xi*2,0,0,
179  3*2*eta,2*zeta,0,0};
180  memset(values, 0.0, nBF*SizeOfDouble);
181  for(int i=0; i<nBF; i++)
182  {
183  for(int j=0; j<nBF; j++)
184  {
185  values[i] += D_T_P3_3D_CM[i+j*nBF]*mon[j];
186 
187  }
188  }
189 }
190 
191 static void D_T_P3_3D_DeriveEtaZeta(double xi, double eta, double zeta,
192  double *values)
193 {
194  int nBF = 20; // number of basis functions
195  double mon[]={0,0,0,0,0,0,0,
196  0,1,0,
197  0,0,0,
198  0,xi,0,
199  0,eta*2,2*zeta,0};
200  memset(values, 0.0, nBF*SizeOfDouble);
201  for(int i=0; i<nBF; i++)
202  {
203  for(int j=0; j<nBF; j++)
204  {
205  values[i] += D_T_P3_3D_CM[i+j*nBF]*mon[j];
206 
207  }
208  }
209 }
210 
211 static void D_T_P3_3D_DeriveZetaZeta(double xi, double eta, double zeta,
212  double *values)
213 {
214  int nBF = 20; // number of basis functions
215  double mon[]={0,0,0,0,0,0,0,
216  0,0,2,
217  0,0,0,
218  0,0,xi*2,
219  0,0,eta*2,3*2*zeta};
220  memset(values, 0.0, nBF*SizeOfDouble);
221  for(int i=0; i<nBF; i++)
222  {
223  for(int j=0; j<nBF; j++)
224  {
225  values[i] += D_T_P3_3D_CM[i+j*nBF]*mon[j];
226 
227  }
228  }
229 }
230 
231 TBaseFunct3D *BF_D_T_P3_3D_Obj =
232 new TBaseFunct3D(20, BF_D_T_P3_3D, BFUnitTetrahedron,
233  D_T_P3_3D_Funct, D_T_P3_3D_DeriveXi,
234  D_T_P3_3D_DeriveEta, D_T_P3_3D_DeriveZeta,
235  D_T_P3_3D_DeriveXiXi, D_T_P3_3D_DeriveXiEta,
236  D_T_P3_3D_DeriveXiZeta, D_T_P3_3D_DeriveEtaEta,
237  D_T_P3_3D_DeriveEtaZeta, D_T_P3_3D_DeriveZetaZeta,
238  3, 1,
239  0, NULL);
Definition: BaseFunct3D.h:27