LifeV
HeartMonodomainData.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 Monodomain 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>
35  @mantainer Simone Rossi <simone.rossi@epfl.ch>
36  */
37 
38 #ifndef _DATAMONODOMAIN_H_
39 #define _DATAMONODOMAIN_H_
40 
41 #include <lifev/core/mesh/MeshData.hpp>
42 #include <lifev/core/fem/TimeData.hpp>
43 #include <lifev/heart/solver/HeartFunctors.hpp>
44 
45 
46 namespace LifeV
47 {
48 /*!
49  \class DataMonodomain
50 
51  Base class which holds usual data for the Monodomain model solvers
52 
53 */
55  public MeshData,
56  public TimeData
57 {
58 public:
59 
60  //! @name Public Types
61  //@{
62 
63 
64  typedef std::function < Real ( Real const& x,
65  Real const& y,
66  Real const& z,
67  Real const& t,
68  ID const& id,
69  Real const&) > region_Type;
70 
71  //@}
72 
73 
74 
75  //! @name Constructor & Destructor
76  //@{
77 
78  //! Constructors
80 
81  HeartMonodomainData ( std::shared_ptr<HeartFunctors> heart);
82 
83  HeartMonodomainData ( const HeartMonodomainData& dataMonodomain );
84 
85  virtual ~HeartMonodomainData() {}
86  //@}
87 
88  //! @name Operators
89  //@{
90 
91  HeartMonodomainData& operator= ( const HeartMonodomainData& dataMonodomain );
92 
93  //@}
94 
95  //! @name Methods
96  //@{
97 
98  //!output: show the data used for the simulation
99  void showMe ( std::ostream& output = std::cout );
100 
101  //@}
102 
103  //! @name Set Methods
104  //@{
105 
106  //! external setup: set all the data for the simulation
107  void setup ( const GetPot& dataFile );
108 
109  //@}
110 
111 
112 
113  //! @name Get Methods
114  //@{
115 
117  {
119  }
120 
122  {
124  }
125 
127  {
129  }
130 
131  //! verbose
132  const UInt& verbose() const
133  {
134  return M_verbose;
135  };
136 
137  //! FE space order
138  std::string uOrder() const
139  {
140  return M_uOrder;
141  }
142 
143  //! Chi
144  const Real& volumeSurfaceRatio() const
145  {
146  return M_volumeSurfaceRatio;
147  }
148 
149  //! lambda, key parameter in the derivation of Monodomain equations
150  const Real& conductivityRatio() const
151  {
152  return M_conductivityRatio;
153  }
154 
155  //! fiber File
157  {
158  return M_fibersFile;
159  }
160 
161  //local change of the diffusivity
162  const Int& heartDiffusionFactor() const
163  {
164  return M_heartDiffusionFactor;
165  }
166 
167  //would you consider the fibers?
168  bool hasFibers() const
169  {
170  return M_hasFibers;
171  }
172 
173  //! sigma_l
175  {
177  }
178 
179  //! sigma_t
181  {
183  }
184 
185  //! Cm
186  const Real& membraneCapacitance() const
187  {
188  return M_membraneCapacitance;
189  }
190 
191  //! D
192  const Real& diffusivity() const
193  {
194  return M_diffusivity;
195  }
196 
197  //! Post_dir
199  {
200  return M_postProcessingDirectory;
201  }
202 
203  //@}
204 
205 
206 
207 
208 
209 
210 
211 private:
212 
216 
218 
220 
222 
229 
234 
235 };
236 
237 }
238 #endif
const region_Type & reducedConductivityBox() const
const Real & volumeSurfaceRatio() const
Chi.
HeartMonodomainData(std::shared_ptr< HeartFunctors > heart)
const region_Type & reducedConductivityCylinder() const
std::string M_uOrder
full name
std::string fibersFile() const
fiber File
const region_Type & reducedConductivitySphere() const
int32_type Int
Generic integer data.
Definition: LifeV.hpp:188
std::string postProcessingDirectory() const
Post_dir.
const UInt & verbose() const
verbose
std::string uOrder() const
FE space order.
MeshData - class for handling spatial discretization.
Definition: MeshData.hpp:72
std::function< Real(Real const &x, Real const &y, Real const &z, Real const &t, ID const &id, Real const &) > region_Type
HeartMonodomainData & operator=(const HeartMonodomainData &dataMonodomain)
void showMe(std::ostream &output=std::cout)
output: show the data used for the simulation
HeartMonodomainData(const HeartMonodomainData &dataMonodomain)
const Real & conductivityRatio() const
lambda, key parameter in the derivation of Monodomain equations
double Real
Generic real data.
Definition: LifeV.hpp:175
const Real & membraneCapacitance() const
Cm.
const Int & heartDiffusionFactor() const
const Real & transversalConductivity() const
sigma_t
const Real & diffusivity() const
D.
const Real & longitudinalConductivity() const
sigma_l
void setup(const GetPot &dataFile)
external setup: set all the data for the simulation
uint32_type UInt
generic unsigned integer (used mainly for addressing)
Definition: LifeV.hpp:191