LifeV
NavierStokesEthierSteinman.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 NavierStokesEthierSteinman.hpp
29  @brief Navier-Stokes cavity problem
30 
31  @author Gwenol Grandperrin <gwenol.grandperrin@epfl.ch>
32  @date 19-08-2011
33  */
34 
35 #ifndef NAVIERSTOKESETHIERSTEINMAN_HPP
36 #define NAVIERSTOKESETHIERSTEINMAN_HPP
37 
38 #include <lifev/core/mesh/RegionMesh.hpp>
39 #include <lifev/navier_stokes/solver/NavierStokesSolver/NavierStokesProblem.hpp>
40 
41 namespace LifeV
42 {
43 
44 namespace
45 {
47 }
48 
50 {
51 
52 private:
53 
54  // Walls
55  static const Int LEFTWALL;
56  static const Int RIGHTWALL;
57  static const Int FRONTWALL;
58  static const Int BACKWALL;
59  static const Int TOPWALL;
60  static const Int BOTTOMWALL;
61  // Edges
62  static const Int BOTTOMEDGE1;
63  static const Int BOTTOMEDGE2;
64  static const Int BOTTOMEDGE3;
65  static const Int BOTTOMEDGE4;
66  static const Int SIDEEDGE1;
67  static const Int SIDEEDGE2;
68  static const Int SIDEEDGE3;
69  static const Int SIDEEDGE4;
70  static const Int TOPEDGE1;
71  static const Int TOPEDGE2;
72  static const Int TOPEDGE3;
73  static const Int TOPEDGE4;
74  // Corners
75  static const Int BOTTOMCORNER1;
76  static const Int BOTTOMCORNER2;
77  static const Int BOTTOMCORNER3;
78  static const Int BOTTOMCORNER4;
79  static const Int TOPCORNER1;
80  static const Int TOPCORNER2;
81  static const Int TOPCORNER3;
82  static const Int TOPCORNER4;
83 
84 public:
85 
86  //! @name Constructors, destructor
87  //@{
88 
89  //! Empty constructor
91 
92  //! Destructor
93  virtual ~NavierStokesEthierSteinman();
94 
95  //@}
96 
97  //! @name Methods
98  //@{
99 
100  //! Returns true if the problem has an exact solution
101  bool hasExactSolution() const;
102 
103  //! Returns the value of the exact solution
105 
106  //! Returns the value of the exact solution (velocity components only)
108 
109  //! Returns the value of the derivative of the exact solution with respect to the time (velocity components only)
111 
112  //! Returns the value of the exact solution (pressure component only)
114 
115  //! Display general information about the problem
116  /*!
117  @param output specify the output stream (std::cout by default)
118  */
119  void showMe ( std::ostream& output = std::cout ) const;
120 
121  //@}
122 
123  //! @name Set Methods
124  //@{
125 
126  //! Setup the boundary conditions in the provided BCHandler
127  /*!
128  @param bcHandler shared pointer on a BCHandler object
129  */
130  void setBoundaryConditions ( std::shared_ptr<BCHandler> bcHandler ) const;
131 
132  //! Set the viscosity of the fluid
133  /*!
134  @param viscosity viscosity of the fluid
135  */
136  void setViscosity ( const Real& viscosity );
137 
138  //! Set the density of the fluid
139  /*!
140  @param density density of the fluid
141  */
142  void setDensity ( const Real& density );
143 
144  //@}
145 
146  //! @name Get Methods
147  //@{
148 
149  //! Getter for the problem mesh
150  void mesh ( std::shared_ptr< esMesh_Type >& meshPart ) const;
151 
152  //! Getter for the boundary conditions in the provided BCHandler
153  /*!
154  @param bcHandler shared pointer on a BCHandler object
155  */
156  void boundaryConditions ( std::shared_ptr<BCHandler> bcHandler ) const;
157 
158  //! Returns the name of the problem
159  std::string name() const;
160 
161  //@}
162 
163 };
164 
165 } // namespace LifeV
166 
167 #endif /* NAVIERSTOKESETHIERSTEINMAN_HPP */
std::string name() const
Returns the name of the problem.
NavierStokesProblem< esMesh_Type >::function_Type uderexact()
Returns the value of the derivative of the exact solution with respect to the time (velocity componen...
NavierStokesProblem< esMesh_Type >::function_Type xexact()
Returns the value of the exact solution.
int32_type Int
Generic integer data.
Definition: LifeV.hpp:188
void boundaryConditions(std::shared_ptr< BCHandler > bcHandler) const
Getter for the boundary conditions in the provided BCHandler.
void updateInverseJacobian(const UInt &iQuadPt)
NavierStokesProblem< esMesh_Type >::function_Type uexact()
Returns the value of the exact solution (velocity components only)
bool hasExactSolution() const
Returns true if the problem has an exact solution.
void mesh(std::shared_ptr< esMesh_Type > &meshPart) const
Getter for the problem mesh.
void setBoundaryConditions(std::shared_ptr< BCHandler > bcHandler) const
Setup the boundary conditions in the provided BCHandler.
double Real
Generic real data.
Definition: LifeV.hpp:175
void setDensity(const Real &density)
Set the density of the fluid.
void showMe(std::ostream &output=std::cout) const
Display general information about the problem.
void setViscosity(const Real &viscosity)
Set the viscosity of the fluid.
NavierStokesProblem< esMesh_Type >::function_Type pexact()
Returns the value of the exact solution (pressure component only)