123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- /* This file is part of Lemma, a geophysical modelling and inversion API */
-
- /* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
- /**
- @file
- @author M. Andy Kass
- @date 02/10/2011
- @version $Id: temintegrationkernel.h 190 2014-10-16 23:02:09Z tirons $
- **/
-
- #ifndef __TEMINTEGRATIONKERNEL_H
- #define __TEMINTEGRATIONKERNEL_H
-
- #include "integrationkernel.h"
- #include "emearth1d.h"
-
- namespace Lemma {
-
-
- // ===================================================================
- // Class: TemIntegrationKernel
- /// \brief Integration kernel for calculation of TEM data
- /// \details Calculates the integration kernel for the sine transform
- // ===================================================================
-
- class TemIntegrationKernel : public IntegrationKernel<Real>{
-
- //friend std::ostream &operator<<(std::ostream &stream,
- // const TemIntegrationKernel &ob);
-
- public:
-
- // ==================== LIFECYCLE =======================
-
- static TemIntegrationKernel* New();
-
- void Delete();
-
- // ==================== OPERATORS =======================
-
- // ==================== OPERATIONS =======================
-
- // ==================== ACCESS =======================
-
- /// Calculates the integration argument. Passed a frequency.
- Real Argument(const Real&x, const int& iRelated);
-
- int GetNumRel();
-
- /// Attach EMEarth1D object to TemIntegrationKernel
- void SetEMEarth1D(EMEarth1D* earth);
-
- /// Attach Transmitter object
- void SetTransmitter(WireAntenna *antennae);
-
- /// Attach Dipole object
- void SetDipole(DipoleSource* dipolesource);
-
- /// Attach Receiver object
- void SetReceiver(ReceiverPoints *receiver);
-
- /**
- * @param[in] comp is the component to integrate
- */
- void SetComponent(const FIELDCOMPONENT& comp);
- // ==================== INQUIRY =======================
-
-
-
- protected:
-
- // ==================== LIFECYCLE =======================
-
- /// Default protected constructor.
- TemIntegrationKernel (const std::string& name);
-
- /// Default protected constructor.
- ~TemIntegrationKernel ();
-
- void Release();
-
- // ==================== DATA MEMBERS =========================
-
- FIELDCOMPONENT component;
-
- EMEarth1D* EmEarthInt;
-
- WireAntenna* Trans;
-
- DipoleSource* DipoleS;
-
- ReceiverPoints* Receivers;
-
- private:
-
- }; // ----- end of class TemIntegrationKernel -----
-
- } // End of namespace Lemma
-
- #endif // __TEMINTEGRATIONKERNEL_H
|