Browse Source

Added KONG61 filter coefficients

add-code-of-conduct-1
Trevor Irons 6 years ago
parent
commit
2474b241f5

+ 9
- 0
Modules/FDEM1D/include/FHT.h View File

@@ -177,6 +177,15 @@ namespace Lemma {
177 177
     template<>
178 178
     const Eigen::Matrix<Real, Eigen::Dynamic, 3>  FHT<FHTKEY51>::WT;
179 179
 
180
+    template<>
181
+    const Eigen::Matrix<Real, Eigen::Dynamic, 3>  FHT<FHTKONG61>::WT;
182
+
183
+    template<>
184
+    const Eigen::Matrix<Real, Eigen::Dynamic, 3>  FHT<FHTKONG121>::WT;
185
+
186
+    template<>
187
+    const Eigen::Matrix<Real, Eigen::Dynamic, 3>  FHT<FHTKONG241>::WT;
188
+
180 189
     template < HANKELTRANSFORMTYPE Type >
181 190
     Complex FHT<Type>::Zgauss(const int& ii, const Lemma::EMMODE& mode, const int& jj, const Real& val,
182 191
             const Real& val2, Lemma::KernelEM1DBase* Kernel){

+ 66
- 0
Modules/FDEM1D/src/FHT.cpp View File

@@ -389,4 +389,70 @@ namespace Lemma {
389 389
            1.6206540689269471e+02,   4.8238483411813232e-05,  -1.2668720233377250e-03,
390 390
            2.0033680997479166e+02,  -8.0433917146487977e-06,   2.3403502580547994e-04).finished();
391 391
 
392
+    template<>
393
+    const Eigen::Matrix<Real, Eigen::Dynamic, 3>  FHT<FHTKONG61>::WT =
394
+        ( Eigen::Matrix<Real, 61, 3>()   <<
395
+       // Base                   J0                        J1
396
+        0.23517745856009100e-01,   0.14463210615326699e+03,   0.46440396425864918e+02,
397
+        0.26649097336355482e-01,   -.11066222143752420e+04,   -.45034239857914162e+03,
398
+        0.30197383422318501e-01,   0.37030010025325978e+04,   0.17723440076223640e+04,
399
+        0.34218118311666032e-01,   -.68968188464424520e+04,   -.37559735516994660e+04,
400
+        0.38774207831722009e-01,   0.71663544112656937e+04,   0.44736494009764137e+04,
401
+        0.43936933623407420e-01,   -.24507884783377681e+04,   -.22476603569606068e+04,
402
+        0.49787068367863938e-01,   -.40166567754046082e+04,   -.15219842155931799e+04,
403
+        0.56416139503777350e-01,   0.68623845298546094e+04,   0.34904608559273802e+04,
404
+        0.63927861206707570e-01,   -.50013321011775661e+04,   -.24814243247472318e+04,
405
+        0.72439757034251456e-01,   0.21291291365196648e+04,   0.57328164634108396e+03,
406
+        0.82084998623898800e-01,   -.13845222435542289e+04,   0.53132044837659631e+00,
407
+        0.93014489210663506e-01,   0.21661554291595580e+04,   0.68895205008006235e+03,
408
+        0.10539922456186430e+00,   -.22260393789657141e+04,   -.12012013872160269e+04,
409
+        0.11943296826671961e+00,   0.80317156013986391e+03,   0.79679138423597340e+03,
410
+        0.13533528323661270e+00,   0.10142221718890841e+04,   0.49874460187939818e+02,
411
+        0.15335496684492850e+00,   -.19350455051432630e+04,   -.56367338332457007e+03,
412
+        0.17377394345044520e+00,   0.16601169447226580e+04,   0.47971936503711203e+03,
413
+        0.19691167520419400e+00,   -.75159684285420133e+03,   -.58979702298044558e+02,
414
+        0.22313016014842979e+00,   -.90315984178183285e+02,   -.31935800954986922e+03,
415
+        0.25283959580474641e+00,   0.50705574889546148e+03,   0.45762551999442371e+03,
416
+        0.28650479686019009e+00,   -.51207646422722519e+03,   -.37239927283248380e+03,
417
+        0.32465246735834979e+00,   0.29722959494490038e+03,   0.18255852885279569e+03,
418
+        0.36787944117144239e+00,   -.50248319908072993e+02,   -.23504740340815669e+00,
419
+        0.41686201967850839e+00,   -.12290725861955920e+03,   -.11588151583545380e+03,
420
+        0.47236655274101469e+00,   0.19695244755899429e+03,   0.15740956677133170e+03,
421
+        0.53526142851899028e+00,   -.19175679966946601e+03,   -.14334746114883359e+03,
422
+        0.60653065971263342e+00,   0.14211755630338590e+03,   0.99857411013284818e+02,
423
+        0.68728927879097224e+00,   -.77463216543224149e+02,   -.48246322019171487e+02,
424
+        0.77880078307140488e+00,   0.17638009334931201e+02,   0.20371404343057380e+01,
425
+        0.88249690258459546e+00,   0.28855056499202671e+02,   0.33003938094974323e+02,
426
+        0.10000000000000000e+01,   -.59225643887809561e+02,   -.55476151884197712e+02,
427
+        0.11331484530668261e+01,   0.75987941373668960e+02,   0.67354852323852583e+02,
428
+        0.12840254166877421e+01,   -.81687962781233580e+02,   -.70735403363284121e+02,
429
+        0.14549914146182010e+01,   0.80599209238447102e+02,   0.68872932663164747e+02,
430
+        0.16487212707001280e+01,   -.74895905328771619e+02,   -.63272750944993042e+02,
431
+        0.18682459574322221e+01,   0.67516291538794434e+02,   0.56501568721817442e+02,
432
+        0.21170000166126748e+01,   -.59325033647358048e+02,   -.48706577819918110e+02,
433
+        0.23988752939670981e+01,   0.51617042242841528e+02,   0.41737211284663481e+02,
434
+        0.27182818284590451e+01,   -.44664967446820263e+02,   -.34776621242200903e+02,
435
+        0.30802168489180310e+01,   0.38366152052928278e+02,   0.29161717578906430e+02,
436
+        0.34903429574618419e+01,   -.33308787868993100e+02,   -.23886749056000909e+02,
437
+        0.39550767229205772e+01,   0.28278671651033459e+02,   0.19554007583544220e+02,
438
+        0.44816890703380636e+01,   -.24505863388620480e+02,   -.15966397353366460e+02,
439
+        0.50784190371800806e+01,   0.20469632532079750e+02,   0.12429310210239199e+02,
440
+        0.57546026760057307e+01,   -.17074034940700429e+02,   -.10139180791868180e+02,
441
+        0.65208191203301116e+01,   0.14206119215530070e+02,   0.74716493393871861e+01,
442
+        0.73890560989306504e+01,   -.10904435643084650e+02,   -.55509479014742613e+01,
443
+        0.83728974881272649e+01,   0.87518389425802283e+01,   0.43380799768234208e+01,
444
+        0.94877358363585262e+01,   -.67721665239085622e+01,   -.25911516181746550e+01,
445
+        0.10751013186076360e+02,   0.45096884588095891e+01,   0.16300524630626780e+01,
446
+        0.12182493960703470e+02,   -.32704247166629590e+01,   -.14041567266387460e+01,
447
+        0.13804574186067100e+02,   0.26827195063720430e+01,   0.75225141726873213e+00,
448
+        0.15642631884188170e+02,   -.18406031821386459e+01,   0.46808777208492733e-01,
449
+        0.17725424121461639e+02,   0.91586697140412443e+00,   -.36630197849601159e+00,
450
+        0.20085536923187671e+02,   -.32436011485890798e+00,   0.28948389902792782e+00,
451
+        0.22759895093526730e+02,   0.80675176189581893e-01,   -.13705521898064801e+00,
452
+        0.25790339917193059e+02,   -.12881307195759690e-01,   0.46292091649913013e-01,
453
+        0.29224283781234941e+02,   0.70489137468452920e-03,   -.11721281347435180e-01,
454
+        0.33115451958692312e+02,   0.23846917590855061e-03,   0.22002397354029149e-02,
455
+        0.37524723159601002e+02,   -.69102205995825531e-04,   -.28146036357227600e-03,
456
+        0.42521082000062783e+02,   0.67792635718095777e-05,   0.18788896009128770e-04 ).finished();
457
+
392 458
 }		// -----  end of Lemma  name  -----

+ 2
- 1
Modules/LemmaCore/include/lemma.h View File

@@ -293,7 +293,8 @@
293 293
          *  FHTKEY51        Key's 51 point filter
294 294
          *  QWEKEY          Key's Gaussian quadrature integration method
295 295
          */
296
-        enum HANKELTRANSFORMTYPE { ANDERSON801, CHAVE, FHTKEY201, FHTKEY101, FHTKEY51, QWEKEY };
296
+        enum HANKELTRANSFORMTYPE { ANDERSON801, CHAVE, FHTKEY201, FHTKEY101, FHTKEY51, QWEKEY,
297
+                                    FHTKONG61, FHTKONG121, FHTKONG241 };
297 298
 
298 299
         /** Enum is OK because these are the only physically possible sources.
299 300
          @param NOSOURCETYPE is default.

+ 10
- 0
Modules/LemmaCore/src/helper.cpp View File

@@ -146,6 +146,16 @@ std::string enum2String(const HANKELTRANSFORMTYPE& Type) {
146 146
         case FHTKEY51:
147 147
             t = std::string("FHTKEY51");
148 148
             break;
149
+        case FHTKONG61:
150
+            t = std::string("FHTKONG61");
151
+            break;
152
+        case FHTKONG121:
153
+            t = std::string("FHTKONG121");
154
+            break;
155
+        case FHTKONG241:
156
+            t = std::string("FHTKONG241");
157
+            break;
158
+
149 159
     }
150 160
     return t;
151 161
 }

Loading…
Cancel
Save