/* 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 Trevor Irons @date 02/07/2011 @version $Id: integrationkernel.h 193 2014-11-10 23:51:41Z tirons $ **/ #ifndef INTEGRATIONKERNEL_INC #define INTEGRATIONKERNEL_INC #include "LemmaObject.h" namespace Lemma { // =================================================================== // Class: IntegrationKernel /** @class \brief Abstract class that computes arguments for numerical integrators. \details Needs to provide Argument function, as well as be able to set necessary integration parameters. */ // =================================================================== template class IntegrationKernel : public LemmaObject { public: // ==================== LIFECYCLE ======================= // ==================== OPERATORS ======================= // ==================== OPERATIONS ======================= /** Returns the argument of a function at a given argument. Also * capable or returning related function values. */ //template virtual T Argument(const Real& x, const int& iRelated)=0; // ==================== ACCESS ======================= // ==================== INQUIRY ======================= virtual int GetNumRel()=0; protected: // ==================== LIFECYCLE ======================= /// Default protected constructor. IntegrationKernel (const std::string& name); /// Default protected constructor. ~IntegrationKernel (); // ==================== DATA MEMBERS ========================= private: }; // ----- end of class IntegrationKernel ----- template IntegrationKernel::IntegrationKernel(const std::string& name) : LemmaObject(name) { } template IntegrationKernel::~IntegrationKernel( ) { } // template // T IntegrationKernel::Argument(const Real& x, const int& iRelated) { // return 11.; // } // // template // int IntegrationKernel::GetNumRel( ) { // return 0; // } } // ----- end of Lemma name ----- #endif // ----- #ifndef INTEGRATIONKERNEL_INC -----