LifeV
HeartIonicData.hpp
Go to the documentation of this file.
1 //@HEADER
2 /*
3 *******************************************************************************
4 
5  Copyright (C) 2004, 2005, 2007 EPFL, Politecnico di Milano, INRIA
6  Copyright (C) 2010 EPFL, Politecnico di Milano, Emory University
7 
8  This file is part of LifeV.
9 
10  LifeV is free software; you can redistribute it and/or modify
11  it under the terms of the GNU Lesser General Public License as published by
12  the Free Software Foundation, either version 3 of the License, or
13  (at your option) any later version.
14 
15  LifeV is distributed in the hope that it will be useful,
16  but WITHOUT ANY WARRANTY; without even the implied warranty of
17  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18  Lesser General Public License for more details.
19 
20  You should have received a copy of the GNU Lesser General Public License
21  along with LifeV. If not, see <http://www.gnu.org/licenses/>.
22 
23 *******************************************************************************
24 */
25 //@HEADER
26 
27 /*!
28  @file
29  @brief File containing a class for handling Ionic model data with GetPot
30 
31  @date 11−2007
32  @author Lucia Mirabella <lucia.mirabella@gmail.com>, Mauro Perego <perego.mauro@gmail.com>
33 
34  @contributor Simone Rossi <simone.rossi@epfl.ch>, Ricardo Ruiz-Baier <ricardo.ruiz@epfl.ch>, J.Castelneau (INRIA)
35  @mantainer Simone Rossi <simone.rossi@epfl.ch>
36  */
37 
38 #ifndef _DATAIONIC_H_
39 #define _DATAIONIC_H_
40 
41 #include <lifev/core/mesh/MeshData.hpp>
42 #include <lifev/core/fem/TimeData.hpp>
43 
44 namespace LifeV
45 {
46 /*!
47  \class DataIonic
48 
49  Base class which holds usual data for the ionic model solvers
50 
51 */
53  public MeshData,
54  public TimeData
55 {
56 public:
57 
58  //! @name Constructor & Destructor
59  //@{
60 
61  //! Constructors
63 
64 
65  HeartIonicData ( const GetPot& dataFile );
66 
67  HeartIonicData ( const HeartIonicData& dataIonic );
68 
69  virtual ~HeartIonicData() {}
70  //@}
71 
72 
73  //! @name Operators
74  //@{
75 
76 
77 
78  HeartIonicData& operator= ( const HeartIonicData& dataIonic );
79 
80  //@}
81 
82  //! @name Methods
83  //@{
84 
85  //! output: show the data used for the simulation
86  void showMe ( std::ostream& output = std::cout );
87 
88  //@}
89 
90 
91  //! @name Set Methods
92  //@{
93 
94  //!external setup: set all the data for the simulation
95  void setup ( const GetPot& dataFile );
96 
97  const Real& RMCParameterA() const
98  {
99  return M_RMCParameterA;
100  }
101 
102  const Real& RMCParameterB() const
103  {
104  return M_RMCParameterB;
105  }
106 
107  const Real& RMCParameterC1() const
108  {
109  return M_RMCParameterC1;
110  }
111 
112  const Real& RMCParameterC2() const
113  {
114  return M_RMCParameterC2;
115  }
116 
117  const Real& RMCParameterD() const
118  {
119  return M_RMCParameterD;
120  }
121 
122  const Real& RMCTimeUnit() const
123  {
124  return M_RMCTimeUnit;
125  }
126 
128  {
130  }
131 
132  const Real& RMCRestPotential() const
133  {
134  return M_RMCRestPotential;
135  }
136 
138  {
140  }
141 
142  const Real& MSTauIn() const
143  {
144  return M_MSTauIn;
145  }
146 
147  const Real& MSTauOut() const
148  {
149  return M_MSTauOut;
150  }
151 
152  const Real& MSTauOpen() const
153  {
154  return M_MSTauOpen;
155  }
156 
157  const Real& MSTauClose() const
158  {
159  return M_MSTauClose;
160  }
161 
162  const Real& MSCriticalPotential() const
163  {
164  return M_MSCriticalPotential;
165  }
166 
167  const Real& MSPotentialMinimum() const
168  {
169  return M_MSPotentialMinimum;
170  }
171 
172  const Real& MSPotentialMaximum() const
173  {
174  return M_MSPotentialMaximum;
175  }
176 
177  const Real& MSReactionAmplitude() const
178  {
179  return M_MSReactionAmplitude;
180  }
181 
182  const Real& MSInitialTime() const
183  {
184  return M_MSInitialTime;
185  }
186 
187  const Real& MSTend() const
188  {
189  return M_MSTend;
190  }
191 
192  const Real& MSBDForder() const
193  {
194  return M_MSBDForder;
195  }
196 
197  const bool& MSHasHeterogeneousTauClose() const
198  {
200  }
201  //@}
202 
203  /*//! End time
204  Real endtime() const;
205 
206  //! FE space order
207  std::string wOrder() const;
208  */
209 
210 
211 private:
212 
213 
214 
217 
219  //! RogersMcCulloch (RMC) 1994 Ionic Model parameters
229 
230  //!Mitchell & Schaeffer (MS)
231  Real M_MSTauIn; // = 0.8
232  Real M_MSTauOut; // = 18.0
233  Real M_MSTauOpen; // = 300.0
234  Real M_MSTauClose;// = 100.0
242 
244 
245 
246 };
247 
248 }
249 #endif
const bool & MSHasHeterogeneousTauClose() const
const Real & RMCTimeUnit() const
const Real & MSPotentialMaximum() const
const Real & RMCInitialRepolarization() const
const Real & MSCriticalPotential() const
const Real & MSReactionAmplitude() const
const Real & RMCParameterA() const
const Real & MSTend() const
const Real & RMCParameterC2() const
const Real & RMCParameterD() const
HeartIonicData & operator=(const HeartIonicData &dataIonic)
const Real & RMCParameterB() const
HeartIonicData()
Constructors.
const Real & MSTauOut() const
const Real & MSInitialTime() const
HeartIonicData(const HeartIonicData &dataIonic)
const Real & MSPotentialMinimum() const
const Real & MSTauClose() const
Real M_RMCParameterA
RogersMcCulloch (RMC) 1994 Ionic Model parameters.
MeshData - class for handling spatial discretization.
Definition: MeshData.hpp:72
const Real & RMCParameterC1() const
Real M_MSTauIn
Mitchell & Schaeffer (MS)
double Real
Generic real data.
Definition: LifeV.hpp:175
HeartIonicData(const GetPot &dataFile)
Constructors.
const Real & RMCRestPotential() const
void setup(const GetPot &dataFile)
external setup: set all the data for the simulation
const Real & MSTauIn() const
const Real & MSTauOpen() const
void showMe(std::ostream &output=std::cout)
output: show the data used for the simulation
const Real & RMCPotentialAmplitude() const
uint32_type UInt
generic unsigned integer (used mainly for addressing)
Definition: LifeV.hpp:191
const Real & MSBDForder() const