CEPS  24.01
Cardiac ElectroPhysiology Simulator
SourceTerm.tpp
Go to the documentation of this file.
1 /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2  This file is part of CEPS.
3 
4  CEPS is free software: you can redistribute it and/or modify
5  it under the terms of the GNU General Public License as published by
6  the Free Software Foundation, either version 3 of the License, or
7  (at your option) any later version.
8 
9  CEPS is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  GNU General Public License for more details.
13 
14  You should have received a copy of the GNU General Public License
15  along with CEPS (see file LICENSE at root of project).
16  If not, see <https://www.gnu.org/licenses/>.
17 
18 
19  Copyright 2019-2024 Inria, Universite de Bordeaux
20 
21  Authors, in alphabetical order:
22 
23  Pierre-Elliott BECUE, Florian CARO, Yves COUDIERE(*), Andjela DAVIDOVIC,
24  Charlie DOUANLA-LONTSI, Marc FUENTES, Mehdi JUHOOR, Michael LEGUEBE(*),
25  Pauline MIGERDITICHAN, Valentin PANNETIER(*), Nejib ZEMZEMI.
26  * : currently active authors
27 
28 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
29 /** @file SourceTerm.tpp template defs for SourceTerm.hpp */
30 // included from "pde/common/functions/SourceTerm.hpp"
31 #include "pde/common/functions/SourceTerm.hpp"
32 
33 template <class _Result>
34 SourceTerm<_Result>::SourceTerm(
35  SAFunc<_Result>* functor,
36  const CepsVector<DegreeOfFreedom*>* domain,
37  CepsUnknownIndex unknown,
38  CepsBool isStim,
39  CepsBool isLaplaceSource,
40  CepsBool bufferize
41 ) :
42  Field<_Result,DegreeOfFreedom> (functor, domain, bufferize),
43  m_unknown(unknown)
44 {
45  if (isStim)
46  setFlag(CepsSourceTermFlag::Stimulation);
47  if (isLaplaceSource)
48  setFlag(CepsSourceTermFlag::Laplace);
49 }
50 
51 template <class _Result>
52 SourceTerm<_Result>::~SourceTerm()
53 {}
54 
55 template <class _Result>
56 void
57 SourceTerm<_Result>::setFlag(const CepsSourceTermFlag &flag)
58 {
59  m_sourceFlag = flag;
60  return;
61 }
62 
63 template <class _Result>
64 CepsSourceTermFlag
65 SourceTerm<_Result>::getFlag() const
66 {
67  return m_sourceFlag;
68 }
69 
70 template <class _Result>
71 CepsUnknownIndex
72 SourceTerm<_Result>::getUnknownId() const
73 {
74  return m_unknown;
75 }
76 
77 template <class _Result>
78 CepsBool
79 SourceTerm<_Result>::hasOption(CepsSourceTermFlag flag) const
80 {
81  return isEnabledOption(getFlag(),flag);
82 }