| 1 | /* Pour integration par la methode "higher order gaussian terms" */ | 
|---|
| 2 | /*                                                cmv   23/06/94 */ | 
|---|
| 3 |  | 
|---|
| 4 | #ifndef NBINTEG_H_SEEN | 
|---|
| 5 | #define NBINTEG_H_SEEN | 
|---|
| 6 |  | 
|---|
| 7 | #ifdef __cplusplus | 
|---|
| 8 | extern "C" { | 
|---|
| 9 | #endif | 
|---|
| 10 |  | 
|---|
| 11 | /*=============================================================*/ | 
|---|
| 12 | static int mIhoq2 = 2; | 
|---|
| 13 | static double Ihoq2X[2] = | 
|---|
| 14 | { -0.288675135, 0.288675135 }; | 
|---|
| 15 | static double Ihoq2W[2] = | 
|---|
| 16 | {  0.500000000, 0.500000000 }; | 
|---|
| 17 | /*=============================================================*/ | 
|---|
| 18 | static int mIhoq3 = 3; | 
|---|
| 19 | static double Ihoq3X[3] = | 
|---|
| 20 | { -0.387298335, 0.000000000, 0.387298335 }; | 
|---|
| 21 | static double Ihoq3W[3] = | 
|---|
| 22 | {  0.277777778, 0.444444444, 0.277777778 }; | 
|---|
| 23 | /*=============================================================*/ | 
|---|
| 24 | static int mIhoq4 = 4; | 
|---|
| 25 | static double Ihoq4X[4] = | 
|---|
| 26 | { -0.430568156,-0.169990522, 0.169990522, 0.430568156 }; | 
|---|
| 27 | static double Ihoq4W[4] = | 
|---|
| 28 | {  0.173927423, 0.326072577, 0.326072577, 0.173927423 }; | 
|---|
| 29 | /*=============================================================*/ | 
|---|
| 30 | static int mIhoq5 = 5; | 
|---|
| 31 | static double Ihoq5X[5] = | 
|---|
| 32 | { -0.453089923,-0.269234655, 0.000000000, 0.269234655, | 
|---|
| 33 | 0.453089923 }; | 
|---|
| 34 | static double Ihoq5W[5] = | 
|---|
| 35 | {  0.118463443, 0.239314335, 0.284444444, 0.239314335, | 
|---|
| 36 | 0.118463443 }; | 
|---|
| 37 | /*=============================================================*/ | 
|---|
| 38 | static int mIhoq6 = 6; | 
|---|
| 39 | static double Ihoq6X[6] = | 
|---|
| 40 | { -0.466234757,-0.330604693,-0.119309593, 0.119309593, | 
|---|
| 41 | 0.330604693, 0.466234757 }; | 
|---|
| 42 | static double Ihoq6W[6] = | 
|---|
| 43 | {  0.085662246, 0.180380787, 0.233956967, 0.233956967, | 
|---|
| 44 | 0.180380787, 0.085662246 }; | 
|---|
| 45 | /*=============================================================*/ | 
|---|
| 46 | static int mIhoq7 = 7; | 
|---|
| 47 | static double Ihoq7X[7] = | 
|---|
| 48 | { -0.474553956,-0.370765593,-0.202922576, 0.000000000, | 
|---|
| 49 | 0.202922576, 0.370765593, 0.474553956 }; | 
|---|
| 50 | static double Ihoq7W[7] = | 
|---|
| 51 | {  0.064742483, 0.139852696, 0.190915025, 0.208979592, | 
|---|
| 52 | 0.190915025, 0.139852696, 0.064742483 }; | 
|---|
| 53 | /*=============================================================*/ | 
|---|
| 54 | static int mIhoq8 = 8; | 
|---|
| 55 | static double Ihoq8X[8] = | 
|---|
| 56 | { -0.480144928,-0.398333239,-0.262766205,-0.091717321, | 
|---|
| 57 | 0.091717321, 0.262766205, 0.398333239, 0.480144928 }; | 
|---|
| 58 | static double Ihoq8W[8] = | 
|---|
| 59 | {  0.050614268, 0.111190517, 0.156853323, 0.181341892, | 
|---|
| 60 | 0.181341892, 0.156853323, 0.111190517, 0.050614268 }; | 
|---|
| 61 | /*=============================================================*/ | 
|---|
| 62 | static int mIhoq9 = 9; | 
|---|
| 63 | static double Ihoq9X[9] = | 
|---|
| 64 | { -0.484080120,-0.418015554,-0.306685716,-0.162126712, | 
|---|
| 65 | 0.000000000, 0.162126712, 0.306685716, 0.418015554, | 
|---|
| 66 | 0.484080120 }; | 
|---|
| 67 | static double Ihoq9W[9] = | 
|---|
| 68 | {  0.040637194, 0.090324080, 0.130305348, 0.156173539, | 
|---|
| 69 | 0.165119678, 0.156173539, 0.130305348, 0.090324080, | 
|---|
| 70 | 0.040637194 }; | 
|---|
| 71 | /*=============================================================*/ | 
|---|
| 72 | static int mIhoq10 = 10; | 
|---|
| 73 | static double Ihoq10X[10] = | 
|---|
| 74 | { -0.486953264,-0.432531683,-0.339704784,-0.216697697, | 
|---|
| 75 | -0.074437169, 0.074437169, 0.216697697, 0.339704784, | 
|---|
| 76 | 0.432531683, 0.486953264 }; | 
|---|
| 77 | static double Ihoq10W[10] = | 
|---|
| 78 | {  0.033335672, 0.074725675, 0.109543181, 0.134633360, | 
|---|
| 79 | 0.147762112, 0.147762112, 0.134633360, 0.109543181, | 
|---|
| 80 | 0.074725675, 0.033335672 }; | 
|---|
| 81 | /*=============================================================*/ | 
|---|
| 82 | static int mIhoq16 = 16; | 
|---|
| 83 | static double Ihoq16X[16] = | 
|---|
| 84 | { -0.494700467,-0.472287512,-0.432815601,-0.377702204, | 
|---|
| 85 | -0.308938122,-0.229008389,-0.140801775,-0.047506255, | 
|---|
| 86 | 0.047506255, 0.140801775, 0.229008389, 0.308938122, | 
|---|
| 87 | 0.377702204, 0.432815601, 0.472287512, 0.494700467 }; | 
|---|
| 88 | static double Ihoq16W[16] = | 
|---|
| 89 | {  0.013576230, 0.031126762, 0.047579256, 0.062314486, | 
|---|
| 90 | 0.074797994, 0.084578260, 0.091301708, 0.094725305, | 
|---|
| 91 | 0.094725305, 0.091301708, 0.084578260, 0.074797994, | 
|---|
| 92 | 0.062314486, 0.047579256, 0.031126762, 0.013576230 }; | 
|---|
| 93 | /*=============================================================*/ | 
|---|
| 94 |  | 
|---|
| 95 |  | 
|---|
| 96 | /* Integration 2D domaine carre */ | 
|---|
| 97 | /* Selon Abramowitz p892-893 formule 25.462, residu ordre 0.5**6 */ | 
|---|
| 98 | /* 0.387298=0.5*sqrt(3/5)  0.197531=16/81  0.123457=10/81  0.077160=25/324 */ | 
|---|
| 99 | /*  */ | 
|---|
| 100 | #if defined(SIMPSON9) | 
|---|
| 101 | static int   nd2d = 9; | 
|---|
| 102 | static float dx2d[9] = { 0.000000 ,  0.000000 ,  0.000000 | 
|---|
| 103 | ,-0.387298 ,  0.387298 , -0.387298 | 
|---|
| 104 | , 0.387298 , -0.387298 ,  0.387298 }; | 
|---|
| 105 | static float dy2d[9] = { 0.000000 , -0.387298 ,  0.387298 | 
|---|
| 106 | , 0.000000 ,  0.000000 , -0.387298 | 
|---|
| 107 | , 0.387298 ,  0.387298 , -0.387298 }; | 
|---|
| 108 | static float  w2d[9] = { 0.197531 ,  0.123457 ,  0.123457 | 
|---|
| 109 | , 0.123457 ,  0.123457 ,  0.077157 | 
|---|
| 110 | , 0.0771605,  0.0771605,  0.0771605}; | 
|---|
| 111 | #elif defined(SIMPSON4) | 
|---|
| 112 | static int   nd2d = 4; | 
|---|
| 113 | static float dx2d[4] = { 0.288675, 0.288675,-0.288675,-0.288675 }; | 
|---|
| 114 | static float dy2d[4] = { 0.288675,-0.288675, 0.288675,-0.288675 }; | 
|---|
| 115 | static float  w2d[4] = { 0.250000, 0.250000, 0.250000, 0.250000 }; | 
|---|
| 116 | #elif defined(INTEG5) | 
|---|
| 117 | static int   nd2d = 5; | 
|---|
| 118 | static float dx2d[5] = { 0. , -0.3, -0.3,  0.3, 0.3 }; | 
|---|
| 119 | static float dy2d[5] = { 0. , -0.3,  0.3, -0.3, 0.3 }; | 
|---|
| 120 | static float  w2d[5] = { 0.2,  0.2,  0.2,  0.2, 0.2 }; | 
|---|
| 121 | #elif  defined(NOINTEG) | 
|---|
| 122 | static int   nd2d = 1; | 
|---|
| 123 | static float dx2d[1] = { 0. }; | 
|---|
| 124 | static float dy2d[1] = { 0. }; | 
|---|
| 125 | static float  w2d[1] = { 1. }; | 
|---|
| 126 | #else | 
|---|
| 127 | static int   nd2d = 0; | 
|---|
| 128 | static float dx2d[1] = { 999999. }; | 
|---|
| 129 | static float dy2d[1] = { 999999. }; | 
|---|
| 130 | static float  w2d[1] = { 0. }; | 
|---|
| 131 | #endif | 
|---|
| 132 |  | 
|---|
| 133 |  | 
|---|
| 134 | /* Coeff pour le calcul du volume de f(x,y,z) dans des cubes 3D */ | 
|---|
| 135 | static int   nd3d = 6; | 
|---|
| 136 | static float dx3d[6] = { 0.5, -0.5, 0.0,  0.0, 0.0,  0.0  }; | 
|---|
| 137 | static float dy3d[6] = { 0.0,  0.0, 0.5, -0.5, 0.0,  0.0  }; | 
|---|
| 138 | static float dz3d[6] = { 0.0,  0.0, 0.0,  0.0, 0.5, -0.5  }; | 
|---|
| 139 | static float  w3d[6] = { 0.166667, 0.166667, 0.166667, | 
|---|
| 140 | 0.166667, 0.166667, 0.166667 }; | 
|---|
| 141 | #ifdef __cplusplus | 
|---|
| 142 | } | 
|---|
| 143 | #endif | 
|---|
| 144 |  | 
|---|
| 145 | #endif | 
|---|
| 146 |  | 
|---|