LifeV
MultiscaleGlobalData.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 the Multiscale Physical Data
30  *
31  * @date 09-09-2009
32  * @author Cristiano Malossi <cristiano.malossi@epfl.ch>
33  *
34  * @maintainer Cristiano Malossi <cristiano.malossi@epfl.ch>
35  */
36 
37 #ifndef MultiscaleGlobalData_H
38 #define MultiscaleGlobalData_H 1
39 
40 
41 // Boost classes
42 #include <boost/shared_ptr.hpp>
43 
44 
45 #include <lifev/core/LifeV.hpp>
46 #include <lifev/core/filter/GetPot.hpp>
47 #include <lifev/core/fem/TimeData.hpp>
48 
49 namespace LifeV
50 {
51 namespace Multiscale
52 {
53 
54 //! MultiscaleGlobalData - Global data container for the physical quantities of the problem
55 /*!
56  * @author Cristiano Malossi
57  *
58  * @see Full description of the Geometrical Multiscale Framework: \cite Malossi-Thesis
59  * @see Methodology: \cite Malossi2011Algorithms \cite Malossi2011Algorithms1D \cite Malossi2011Algorithms3D1DFSI \cite BlancoMalossi2012
60  * @see Applications: \cite Malossi2011Algorithms3D1DFSIAortaIliac \cite LassilaMalossi2012IdealLeftVentricle \cite BonnemainMalossi2012LVAD
61  *
62  * At the present time the global container has the following parameters:
63  * <ul>
64  * <li> Fluid density
65  * <li> Fluid viscosity
66  * <li> Fluid venous pressure
67  * <li> Solid external pressure
68  * <li> Solid density
69  * <li> Solid Young's modulus
70  * <li> Solid Poisson's ratio
71  * <li> ScalingFactor Resistance
72  * <li> ScalingFactor Compliance
73  * </ul>
74  */
76 {
77 public:
78 
79  //! @name Type definitions
80  //@{
81 
84 
85  //@}
86 
87 
88  //! @name Constructors & Destructor
89  //@{
90 
91  //! Constructor
92  explicit MultiscaleGlobalData();
93 
94  //! Copy constructor
95  /*!
96  * @param PhysicalData MultiscaleGlobalData
97  */
98  explicit MultiscaleGlobalData ( const MultiscaleGlobalData& data );
99 
100  //! Destructor
101  virtual ~MultiscaleGlobalData() {}
102 
103  //@}
104 
105 
106  //! @name Operators
107  //@{
108 
109  //! Operator=
110  /*!
111  * @param PhysicalData MultiscaleGlobalData
112  * @return reference to a copy of the class
113  */
115 
116  //@}
117 
118 
119  //! @name Methods
120  //@{
121 
122  //! Read the physical quantities from a GetPot file
123  /*!
124  * @param dataFile GetPot file
125  */
126  void readData ( const GetPot& dataFile );
127 
128  //! Display some information about the physical quantities
129  void showMe();
130 
131  //@}
132 
133 
134  //! @name Get Methods
135  //@{
136 
137  //! Get the time container.
138  /*!
139  * @return time container
140  */
142  {
143  return M_timeData;
144  }
145 
146  //! Get the global fluid density.
147  /*!
148  * @return density of the fluid.
149  */
150  const Real& fluidDensity() const
151  {
152  return M_fluidDensity;
153  }
154 
155  //! Get the global fluid viscosity.
156  /*!
157  * @return viscosity of the fluid.
158  */
159  const Real& fluidViscosity() const
160  {
161  return M_fluidViscosity;
162  }
163 
164  //! Get the global fluid venous pressure.
165  /*!
166  * @return venous pressure of the fluid.
167  */
168  const Real& fluidVenousPressure() const
169  {
170  return M_fluidVenousPressure;
171  }
172 
173  //! Get the global fluid reference pressure (used by 1D model).
174  /*!
175  * @return reference pressure of the fluid.
176  */
178  {
180  }
181 
182  //! Get the global structural Poisson coefficient.
183  /*!
184  * @return Poisson coefficient of the solid.
185  */
186  const Real& solidDensity() const
187  {
188  return M_solidDensity;
189  }
190 
191  //! Get the global structural density.
192  /*!
193  * @return density of the solid.
194  */
196  {
198  }
199 
200  // //! Get the global structural thickness.
201  // /*!
202  // * @return thickness of the solid.
203  // */
204  // const Real& solidThickness() const { return M_structureThickness; }
205 
206  //! Get the global structural Young modulus.
207  /*!
208  * @return Young modulus of the solid.
209  */
210  const Real& solidYoungModulus() const
211  {
212  return M_solidYoungModulus;
213  }
214 
215  //! Get the global resistance scaling factor.
216  /*!
217  * @return resistance scaling factor.
218  */
220  {
222  }
223 
224  //! Get the global compliance scaling factor.
225  /*!
226  * @return compliance scaling factor.
227  */
229  {
231  }
232 
233  //@}
234 
235 private:
236 
238 
242 
246  // Real M_structureThickness;
248 
251 
252 };
253 
254 } // Namespace Multiscale
255 } // Namespace LifeV
256 
257 #endif /* MultiscaleGlobalData_H */
const Real & scalingFactorCompliance() const
Get the global compliance scaling factor.
const Real & solidDensity() const
Get the global structural Poisson coefficient.
void showMe()
Display some information about the physical quantities.
const Real & fluidDensity() const
Get the global fluid density.
MultiscaleGlobalData(const MultiscaleGlobalData &data)
Copy constructor.
void readData(const GetPot &dataFile)
Read the physical quantities from a GetPot file.
void updateInverseJacobian(const UInt &iQuadPt)
const Real & solidPoissonCoefficient() const
Get the global structural density.
MultiscaleGlobalData - Global data container for the physical quantities of the problem.
MultiscaleGlobalData & operator=(const MultiscaleGlobalData &data)
Operator=.
const Real & solidYoungModulus() const
Get the global structural Young modulus.
const Real & fluidViscosity() const
Get the global fluid viscosity.
double Real
Generic real data.
Definition: LifeV.hpp:175
const Real & scalingFactorResistance() const
Get the global resistance scaling factor.
timePtr_Type dataTime() const
Get the time container.
const Real & fluidVenousPressure() const
Get the global fluid venous pressure.
const Real & solidExternalPressure() const
Get the global fluid reference pressure (used by 1D model).
TimeData - Class for handling temporal discretization.
Definition: TimeData.hpp:61