/* This file is part of Lemma, a geophysical modelling and inversion API. * More information is available at http://lemmasoftware.org */ /* 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 * @date 09/25/2013 08:20:14 AM * @version $Id$ * @author Trevor Irons (ti) * @email Trevor.Irons@xri-geo.com * @copyright Copyright (c) 2013, XRI Geophysics, LLC * @copyright Copyright (c) 2013, Trevor Irons */ #ifndef MAGNETICDIPOLE_INC #define MAGNETICDIPOLE_INC #include "dipolesource.h" namespace Lemma { /** @class \brief Magnetic Dipole \details Used to model an idealised magnetic dipole of arbitrary polarisation. */ class MagneticDipole : public DipoleSource { friend std::ostream &operator<<(std::ostream &stream, const MagneticDipole &ob); public: // ==================== LIFECYCLE ======================= /** * @copybrief LemmaObject::New() * @copydetails LemmaObject::New() */ static MagneticDipole* New(); /** * @copybrief LemmaObject::Delete() * @copydetails LemmaObject::Delete() */ void Delete(); // ==================== OPERATORS ======================= // ==================== OPERATIONS ======================= // ==================== ACCESS ======================= // ==================== INQUIRY ======================= protected: // ==================== LIFECYCLE ======================= /** Default protected constructor, use New */ MagneticDipole (const std::string& name); /** Default protected destructor, use Delete */ ~MagneticDipole (); /** * @copybrief LemmaObject::Release() * @copydetails LemmaObject::Release() */ void Release(); private: // ==================== DATA MEMBERS ========================= KernelEM1DManager* Kernels; }; // ----- end of class MagneticDipole ----- } // namespace Lemma #endif // ----- #ifndef MAGNETICDIPOLE_INC -----