Lemma is an Electromagnetics API
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

IntegrationKernel.h 2.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. /* This file is part of Lemma, a geophysical modelling and inversion API */
  2. /* This Source Code Form is subject to the terms of the Mozilla Public
  3. * License, v. 2.0. If a copy of the MPL was not distributed with this
  4. * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
  5. /**
  6. @file
  7. @author Trevor Irons
  8. @date 02/07/2011, revisions 13 Dec. 2018
  9. **/
  10. #pragma once
  11. #ifndef INTEGRATIONKERNEL_INC
  12. #define INTEGRATIONKERNEL_INC
  13. #include "LemmaObject.h"
  14. namespace Lemma {
  15. // ===================================================================
  16. // Class: IntegrationKernel
  17. /**
  18. \brief Abstract class that computes arguments for numerical
  19. integrators.
  20. \details Needs to provide Argument function, as well as be able to
  21. set necessary integration parameters.
  22. */
  23. // ===================================================================
  24. template <typename T>
  25. class IntegrationKernel : public LemmaObject {
  26. public:
  27. // ==================== LIFECYCLE =======================
  28. /// Default protected constructor.
  29. explicit IntegrationKernel (const ctor_key& key);
  30. /// Default protected constructor.
  31. virtual ~IntegrationKernel ();
  32. // ==================== OPERATORS =======================
  33. // ==================== OPERATIONS =======================
  34. /** Returns the argument of a function at a given argument. Also
  35. * capable or returning related function values.
  36. */
  37. //template <typename T>
  38. virtual T Argument(const Real& x, const int& iRelated)=0;
  39. // ==================== ACCESS =======================
  40. // ==================== INQUIRY =======================
  41. virtual int GetNumRel()=0;
  42. protected:
  43. // ==================== LIFECYCLE =======================
  44. // ==================== DATA MEMBERS =========================
  45. private:
  46. }; // ----- end of class IntegrationKernel -----
  47. /*
  48. template <typename T>
  49. IntegrationKernel<T>::IntegrationKernel(const std::string& name) :
  50. LemmaObject(name) {
  51. }
  52. template<typename T>
  53. IntegrationKernel<T>::~IntegrationKernel( ) {
  54. }
  55. */
  56. // template <typename T>
  57. // T IntegrationKernel<T>::Argument(const Real& x, const int& iRelated) {
  58. // return 11.;
  59. // }
  60. //
  61. // template <typename T>
  62. // int IntegrationKernel<T>::GetNumRel( ) {
  63. // return 0;
  64. // }
  65. } // ----- end of Lemma name -----
  66. #endif // ----- #ifndef INTEGRATIONKERNEL_INC -----