소스 검색

Clean up Hankel transform a little, work towards developing new filters.

add-code-of-conduct-1
Trevor Irons 6 년 전
부모
커밋
e8dde65a9b

+ 2
- 0
Modules/FDEM1D/include/FHT.h 파일 보기

182
     const Eigen::Matrix<Real, Eigen::Dynamic, 3>  FHT<FHTKONG121>::WT;
182
     const Eigen::Matrix<Real, Eigen::Dynamic, 3>  FHT<FHTKONG121>::WT;
183
     template<>
183
     template<>
184
     const Eigen::Matrix<Real, Eigen::Dynamic, 3>  FHT<FHTKONG241>::WT;
184
     const Eigen::Matrix<Real, Eigen::Dynamic, 3>  FHT<FHTKONG241>::WT;
185
+    template<>
186
+    const Eigen::Matrix<Real, Eigen::Dynamic, 3>  FHT<IRONS>::WT;
185
 
187
 
186
     template < HANKELTRANSFORMTYPE Type >
188
     template < HANKELTRANSFORMTYPE Type >
187
     Complex FHT<Type>::Zgauss(const int& ii, const Lemma::EMMODE& mode, const int& jj, const Real& val,
189
     Complex FHT<Type>::Zgauss(const int& ii, const Lemma::EMMODE& mode, const int& jj, const Real& val,

+ 2
- 0
Modules/FDEM1D/include/HankelTransformFactory.h 파일 보기

115
                     return GQChave::NewSP();
115
                     return GQChave::NewSP();
116
                 case QWEKEY:
116
                 case QWEKEY:
117
                     return QWEKey::NewSP();
117
                     return QWEKey::NewSP();
118
+                case IRONS:
119
+                    return FHT<IRONS>::NewSP();
118
                 default:
120
                 default:
119
                     std::cerr << "HankelTransformFactory only works with defined types\n";
121
                     std::cerr << "HankelTransformFactory only works with defined types\n";
120
             }
122
             }

+ 1
- 1
Modules/FDEM1D/src/EMEarth1D.cpp 파일 보기

232
             icalc += 1;
232
             icalc += 1;
233
             // Check to see if they are all on a plane? If so we can do this fast
233
             // Check to see if they are all on a plane? If so we can do this fast
234
             if (Antenna->IsHorizontallyPlanar() && ( HankelType == ANDERSON801 || HankelType== FHTKEY201 || HankelType==FHTKEY101 ||
234
             if (Antenna->IsHorizontallyPlanar() && ( HankelType == ANDERSON801 || HankelType== FHTKEY201 || HankelType==FHTKEY101 ||
235
-                                                     HankelType == FHTKEY51 || HankelType == FHTKONG61 || FHTKONG121 || FHTKONG241 )) {
235
+                                                     HankelType == FHTKEY51 || HankelType == FHTKONG61 || FHTKONG121 || FHTKONG241 || IRONS )) {
236
                 #ifdef HAVE_BOOST_PROGRESS
236
                 #ifdef HAVE_BOOST_PROGRESS
237
                 if (progressbar) {
237
                 if (progressbar) {
238
                     disp = new boost::progress_display( Receivers->GetNumberOfPoints()*Antenna->GetNumberOfFrequencies() );
238
                     disp = new boost::progress_display( Receivers->GetNumberOfPoints()*Antenna->GetNumberOfFrequencies() );

+ 1009
- 203
Modules/FDEM1D/src/FHT.cpp
파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
파일 보기


+ 1
- 1
Modules/LemmaCore/include/lemma.h 파일 보기

294
          *  QWEKEY          Key's Gaussian quadrature integration method
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
+                                    FHTKONG61, FHTKONG121, FHTKONG241, IRONS };
298
 
298
 
299
         /** Enum is OK because these are the only physically possible sources.
299
         /** Enum is OK because these are the only physically possible sources.
300
          @param NOSOURCETYPE is default.
300
          @param NOSOURCETYPE is default.

+ 4
- 0
Modules/LemmaCore/src/helper.cpp 파일 보기

155
         case FHTKONG241:
155
         case FHTKONG241:
156
             t = std::string("FHTKONG241");
156
             t = std::string("FHTKONG241");
157
             break;
157
             break;
158
+        case IRONS:
159
+            t = std::string("IRONS");
160
+            break;
158
 
161
 
159
     }
162
     }
160
     return t;
163
     return t;
196
     else if  (str == "FHTKONG61") return  FHTKONG61;
199
     else if  (str == "FHTKONG61") return  FHTKONG61;
197
     else if  (str == "FHTKONG121") return  FHTKONG121;
200
     else if  (str == "FHTKONG121") return  FHTKONG121;
198
     else if  (str == "FHTKONG241") return  FHTKONG241;
201
     else if  (str == "FHTKONG241") return  FHTKONG241;
202
+    else if  (str == "IRONS") return  IRONS;
199
     else {
203
     else {
200
         throw std::runtime_error("string not recognized as HANKELTRANSFORMTYPE");
204
         throw std::runtime_error("string not recognized as HANKELTRANSFORMTYPE");
201
     }
205
     }

Loading…
취소
저장