CEPS  24.01
Cardiac ElectroPhysiology Simulator
ExtendedBidomainProblem.hpp
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 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
30 #pragma once
31 
33 
36 {
37 
38  public:
39 
41  struct UnknownsName
42  {
44  static constexpr const char* vm = BidomainProblem::UnknownsName::vm;
46  static constexpr const char* ue = BidomainProblem::UnknownsName::ue;
48  static constexpr const char* lag = "Lagrangian for extracellular potential";
49  };
50 
51  public:
52 
54  explicit ExtendedBidomainProblem(Geometry* g, InputParameters* = nullptr);
55 
58 
60  void
61  defineUnknowns() override;
62 
64  void
65  run() override;
66 
70 
74 
77  getAnodeAttributes() const;
78 
81  getCathodeAttributes() const;
82 
84  CepsBool
86 
88  void
89  defineBoundaryConditions() override;
90 
92  CepsBool
93  requireNullMean() const;
94 
95  protected:
97  void
98  setupWithParameters(InputParameters* params) override;
99 
100  // ------------------------
101  // extracardiac properties
102 
105 
107 
113 };
std::basic_string< CepsChar > CepsString
C++ format string.
Definition: CepsTypes.hpp:128
std::set< _Type, _Compare, _Alloc > CepsSet
C++ set.
Definition: CepsTypes.hpp:209
bool CepsBool
Booleans.
Definition: CepsTypes.hpp:124
Bidomain equation main class.
Bidomain equation with extracardiac medium main class.
virtual CepsSet< CepsAttribute > getAnodeAttributes() const
Get cathode attributes if set.
CepsBool hasAnodalCathodalStimulation() const
Has anodal and cathodal stimulation ?
CepsSet< CepsAttribute > m_extMediaAttrs
Extracardiac regions attributes.
void run() override
Run the simulation.
void defineUnknowns() override
Transmembrane voltage (mV) and Extracellular potential (mV)
CepsSet< CepsAttribute > getWholeDomainAttributes() const
Get all attributes: tissue and extracardiac.
void defineBoundaryConditions() override
Define the boundary conditions.
ExtendedBidomainProblem(Geometry *g, InputParameters *=nullptr)
Constructor from geometry and possibly parameters.
CepsString m_cathodeAttrsOpts
Text input for cathode attributes.
CepsString m_extMediaAttrsOpts
Text input for extracardiac regions attributes.
CepsSet< CepsAttribute > m_cathodeAttrs
Cathode attributes.
CepsSet< CepsAttribute > m_anodeAttrs
Anode attributes.
CepsString m_robinCoeffs
Robin coefficients.
virtual CepsSet< CepsAttribute > getCathodeAttributes() const
Get cathode attributes if set.
CepsBool requireNullMean() const
Tells if this problem requires a null mean constraint.
void setupWithParameters(InputParameters *params) override
Sets options from the parameters.
CepsString m_anodeAttrsOpts
Text input for anode attributes.
const CepsSet< CepsAttribute > & getExtracardiacAttributes() const
Get extracardiac attributes.
~ExtendedBidomainProblem()=default
Destructor.
CepsString m_biElecStimOpts
Anodal and cathodal stimulation parameters, disabled if empty.
Encapsulates all the geometrical data.
Definition: Geometry.hpp:50
Reads and stores simulation configuration.
static constexpr const char * ue
Extracellular and extracardiac potential.
static constexpr const char * vm
Transmembrane voltage.
static constexpr const char * vm
Transmembrane voltage.
static constexpr const char * lag
Lagrangian (null mean constraint)
static constexpr const char * ue
Extracellular and extracardiac potential.