00001 #include "intp.h"
00002 #include <stdio.h>
00003 #include "iotools.h"
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 void gauss_points (double *gp,double *w,long order)
00016 {
00017 switch (order){
00018 case 1:{
00019
00020 gp[0]=0.0;
00021 w[0]=2.0;
00022 break;
00023 }
00024 case 2:{
00025
00026 gp[0]=-0.577350269189626;
00027 gp[1]= 0.577350269189626;
00028
00029 w[0]=1.0;
00030 w[1]=1.0;
00031
00032 break;
00033 }
00034 case 3:{
00035
00036 gp[0]=-0.774596669241483;
00037 gp[1]= 0.0;
00038 gp[2]= 0.774596669241483;
00039
00040 w[0]=0.5555555555555555;
00041 w[1]=0.8888888888888888;
00042 w[2]=0.5555555555555555;
00043
00044 break;
00045 }
00046 case 4:{
00047
00048 gp[0]=-0.861136311594053;
00049 gp[1]=-0.339981043584856;
00050 gp[2]= 0.339981043584856;
00051 gp[3]= 0.861136311594053;
00052
00053 w[0]=0.347854845137454;
00054 w[1]=0.652145154862546;
00055 w[2]=0.652145154862546;
00056 w[3]=0.347854845137454;
00057
00058 break;
00059 }
00060 case 5:{
00061
00062 gp[0] =-0.906179845938644;
00063 gp[1] =-0.538469310105683;
00064 gp[2] = 0.0;
00065 gp[3] = 0.538469310105683;
00066 gp[4] = 0.906179845938644;
00067
00068 w[0] = 0.236926885056189;
00069 w[1] = 0.478628670499366;
00070 w[2] = 0.568888888888889;
00071 w[3] = 0.478628670499366;
00072 w[4] = 0.236926885056189;
00073
00074 break;
00075 }
00076 case 6:{
00077
00078 gp[0]=-0.932469514203152;
00079 gp[1]=-0.661209386466265;
00080 gp[2]=-0.238619186083197;
00081 gp[3]= 0.238619186083197;
00082 gp[4]= 0.661209386466265;
00083 gp[5]= 0.932469514203152;
00084
00085 w[0] = 0.171324492379170;
00086 w[1] = 0.360761573048139;
00087 w[2] = 0.467913934572691;
00088 w[3] = 0.467913934572691;
00089 w[4] = 0.360761573048139;
00090 w[5] = 0.171324492379170;
00091
00092 break;
00093 }
00094 default:{
00095 print_err("unknown integration order is required", __FILE__, __LINE__, __func__);
00096 }
00097 }
00098 }
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111 void gauss_points_tr (double *gp1,double *gp2,double *w,long order)
00112 {
00113 switch(order){
00114 case 1:{
00115
00116 gp1[0]=0.333333333333333;
00117
00118 gp2[0]=0.333333333333333;
00119
00120 w[0]=0.5;
00121
00122 break;
00123 }
00124 case 3:{
00125
00126 gp1[0]=0.1666666666666667;
00127 gp1[1]=0.6666666666666667;
00128 gp1[2]=0.1666666666666667;
00129
00130 gp2[0]=0.1666666666666667;
00131 gp2[1]=0.1666666666666667;
00132 gp2[2]=0.6666666666666667;
00133
00134 w[0]=0.1666666666666667;
00135 w[1]=0.1666666666666667;
00136 w[2]=0.1666666666666667;
00137
00138 break;
00139 }
00140 case 4:{
00141 gp1[0]=0.2;
00142 gp1[1]=0.6;
00143 gp1[2]=0.2;
00144 gp1[3]=0.333333333333333;
00145
00146 gp2[0]=0.2;
00147 gp2[1]=0.2;
00148 gp2[2]=0.6;
00149 gp2[3]=0.333333333333333;
00150
00151 w[0] = 0.260416666666667;
00152 w[1] = 0.260416666666667;
00153 w[2] = 0.260416666666667;
00154 w[3] = -0.28125;
00155
00156 break;
00157 }
00158 case 6:{
00159
00160 gp1[0]=0.816847572980459;
00161 gp1[1]=0.091576213509771;
00162 gp1[2]=0.091576213509771;
00163 gp1[3]=0.108103018168070;
00164 gp1[4]=0.445948490915965;
00165 gp1[5]=0.445948490915965;
00166
00167 gp2[0]=0.091576213509771;
00168 gp2[1]=0.816847572980459;
00169 gp2[2]=0.091576213509771;
00170 gp2[3]=0.445948490915965;
00171 gp2[4]=0.108103018168070;
00172 gp2[5]=0.445948490915965;
00173
00174 w[0]=0.054975871827661;
00175 w[1]=0.054975871827661;
00176 w[2]=0.054975871827661;
00177 w[3]=0.111690794839005;
00178 w[4]=0.111690794839005;
00179 w[5]=0.111690794839005;
00180
00181 break;
00182 }
00183 case 7:{
00184
00185 gp1[0]=0.333333333333333;
00186 gp1[1]=0.059715871798770;
00187 gp1[2]=0.470142064105115;
00188 gp1[3]=0.470142064105115;
00189 gp1[4]=0.797426985353087;
00190 gp1[5]=0.101286507323456;
00191 gp1[6]=0.101286507323456;
00192
00193 gp2[0]=0.333333333333333;
00194 gp2[1]=0.470142064105115;
00195 gp2[2]=0.059715871798770;
00196 gp2[3]=0.470142064105115;
00197 gp2[4]=0.101286507323456;
00198 gp2[5]=0.797426985353087;
00199 gp2[6]=0.101286507323456;
00200
00201 w[0]=0.1125;
00202 w[1]=0.066197076394253;
00203 w[2]=0.066197076394253;
00204 w[3]=0.066197076394253;
00205 w[4]=0.066197076394253;
00206 w[5]=0.066197076394253;
00207 w[6]=0.066197076394253;
00208
00209 break;
00210 }
00211 case 12:{
00212
00213 gp1[0] = 0.873821971016996;
00214 gp1[1] = 0.063089014491502;
00215 gp1[2] = 0.063089014491502;
00216 gp1[3] = 0.501426509658179;
00217 gp1[4] = 0.249286745170910;
00218 gp1[5] = 0.249286745170910;
00219 gp1[6] = 0.636502499121399;
00220 gp1[7] = 0.310352451033785;
00221 gp1[8] = 0.053145049844816;
00222 gp1[9] = 0.636502499121399;
00223 gp1[10]= 0.310352451033785;
00224 gp1[11]= 0.053145049844816;
00225
00226 gp2[0] = 0.063089014491502;
00227 gp2[1] = 0.873821971016996;
00228 gp2[2] = 0.063089014491502;
00229 gp2[3] = 0.249286745170910;
00230 gp2[4] = 0.501426509658179;
00231 gp2[5] = 0.249286745170910;
00232 gp2[6] = 0.310352451033785;
00233 gp2[7] = 0.053145049844816;
00234 gp2[8] = 0.636502499121399;
00235 gp2[9] = 0.053145049844816;
00236 gp2[10]= 0.636502499121399;
00237 gp2[11]= 0.310352451033785;
00238
00239 w[0] = 0.025422453185103;
00240 w[1] = 0.025422453185103;
00241 w[2] = 0.025422453185103;
00242 w[3] = 0.058393137863189;
00243 w[4] = 0.058393137863189;
00244 w[5] = 0.058393137863189;
00245 w[6] = 0.041425537809187;
00246 w[7] = 0.041425537809187;
00247 w[8] = 0.041425537809187;
00248 w[9] = 0.041425537809187;
00249 w[10]= 0.041425537809187;
00250 w[11]= 0.041425537809187;
00251
00252 break;
00253 }
00254 default:{
00255 print_err("unknown integration order is required", __FILE__, __LINE__, __func__);
00256 }
00257 }
00258 }
00259
00260
00261
00262
00263
00264
00265
00266
00267
00268
00269
00270
00271 void gauss_points_tet (double *gp1,double *gp2,double *gp3,double *w,long order)
00272 {
00273 switch (order){
00274 case 1:{
00275
00276 gp1[0]=0.25;
00277
00278 gp2[0]=0.25;
00279
00280 gp3[0]=0.25;
00281
00282 w[0]=0.166666666666667;
00283
00284 break;
00285 }
00286 case 4:{
00287
00288 gp1[0]=0.585410196624969;
00289 gp1[1]=0.138196601125011;
00290 gp1[2]=0.138196601125011;
00291 gp1[3]=0.138196601125011;
00292
00293 gp2[0]=0.138196601125011;
00294 gp2[1]=0.585410196624969;
00295 gp2[2]=0.138196601125011;
00296 gp2[3]=0.138196601125011;
00297
00298
00299 gp3[0]=0.138196601125011;
00300 gp3[1]=0.138196601125011;
00301 gp3[2]=0.585410196624969;
00302 gp3[3]=0.138196601125011;
00303
00304
00305
00306 w[0]=0.041666666666667;
00307 w[1]=0.041666666666667;
00308 w[2]=0.041666666666667;
00309 w[3]=0.041666666666667;
00310
00311 break;
00312 }
00313 case 5:{
00314
00315 gp1[0]=0.25;
00316 gp1[1]=0.5;
00317 gp1[2]=0.166666666666667;
00318 gp1[3]=0.166666666666667;
00319 gp1[4]=0.166666666666667;
00320
00321 gp2[0]=0.25;
00322 gp2[1]=0.166666666666667;
00323 gp2[2]=0.5;
00324 gp2[3]=0.166666666666667;
00325 gp2[4]=0.166666666666667;
00326
00327 gp3[0]=0.25;
00328 gp3[1]=0.166666666666667;
00329 gp3[2]=0.166666666666667;
00330 gp3[3]=0.5;
00331 gp3[4]=0.166666666666667;
00332
00333
00334 w[0]=-0.133333333333333;
00335 w[1]=0.075;
00336 w[2]=0.075;
00337 w[3]=0.075;
00338 w[4]=0.075;
00339
00340 break;
00341 }
00342 case 12:{
00343
00344 gp1[0] = 0.094847264914513;
00345 gp1[1] = 0.094847264914513;
00346 gp1[2] = 0.094847264914513;
00347 gp1[3] = 0.094847264914513;
00348 gp1[4] = 0.094847264914513;
00349 gp1[5] = 0.094847264914513;
00350 gp1[6] = 0.241276996823274;
00351 gp1[7] = 0.241276996823274;
00352 gp1[8] = 0.241276996823274;
00353 gp1[9] = 0.569028473347700;
00354 gp1[10] = 0.569028473347700;
00355 gp1[11] = 0.569028473347700;
00356
00357 gp2[0] = 0.094847264914513;
00358 gp2[1] = 0.094847264914513;
00359 gp2[2] = 0.241276996823274;
00360 gp2[3] = 0.241276996823274;
00361 gp2[4] = 0.569028473347700;
00362 gp2[5] = 0.569028473347700;
00363 gp2[6] = 0.094847264914513;
00364 gp2[7] = 0.094847264914513;
00365 gp2[8] = 0.569028473347700;
00366 gp2[9] = 0.094847264914513;
00367 gp2[10] = 0.094847264914513;
00368 gp2[11] = 0.241276996823274;
00369
00370 gp3[0] = 0.241276996823274;
00371 gp3[1] = 0.569028473347700;
00372 gp3[2] = 0.094847264914513;
00373 gp3[3] = 0.569028473347700;
00374 gp3[4] = 0.094847264914513;
00375 gp3[5] = 0.241276996823274;
00376 gp3[6] = 0.094847264914513;
00377 gp3[7] = 0.569028473347700;
00378 gp3[8] = 0.094847264914513;
00379 gp3[9] = 0.094847264914513;
00380 gp3[10] = 0.241276996823274;
00381 gp3[11] = 0.094847264914513;
00382
00383
00384 w[0] = 0.013888888888889;
00385 w[1] = 0.013888888888889;
00386 w[2] = 0.013888888888889;
00387 w[3] = 0.013888888888889;
00388 w[4] = 0.013888888888889;
00389 w[5] = 0.013888888888889;
00390 w[6] = 0.013888888888889;
00391 w[7] = 0.013888888888889;
00392 w[8] = 0.013888888888889;
00393 w[9] = 0.013888888888889;
00394 w[10] = 0.013888888888889;
00395 w[11] = 0.013888888888889;
00396
00397 break;
00398 }
00399 default:{
00400 print_err("unknown integration order is required", __FILE__, __LINE__, __func__);
00401 }
00402 }
00403 }