LifeV
gradUExactFunctor.hpp
Go to the documentation of this file.
1 /* -*- mode: c++ -*-
2 
3  This file is part of the LifeV Applications.
4 
5  Author(s): Christophe Prud'homme <christophe.prudhomme@epfl.ch>
6  Gwenol Grandperrin <gwenol.grandperrin@epfl.ch>
7  Date: 2011-03-09
8 
9  Copyright (C) 2010 EPFL
10 
11  This program is free software; you can redistribute it and/or modify
12  it under the terms of the GNU General Public License as published by
13  the Free Software Foundation; either version 2.1 of the License, or
14  (at your option) any later version.
15 
16  This program is distributed in the hope that it will be useful, but
17  WITHOUT ANY WARRANTY; without even the implied warranty of
18  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19  General Public License for more details.
20 
21  You should have received a copy of the GNU General Public License
22  along with this program; if not, write to the Free Software
23  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
24  USA
25  */
26 /*!
27  @file gradUExactFunctor.hpp
28  @author Davide Forti <davide.forti@epfl.ch>
29  @contributor Claudia Colciago <claudia.colciago@epfl.ch>
30  @date 2014-01-31
31  */
32 
33 #ifndef GRADUEXACTFUNCTOR_H
34 #define GRADUEXACTFUNCTOR_H 1
35 
36 #include <lifev/core/LifeV.hpp>
37 #include <lifev/navier_stokes/function/RossEthierSteinmanDec.hpp>
38 
39 namespace LifeV
40 {
41 
43 {
44 public:
45  typedef MatrixSmall<3,3> return_Type;
46 
47  return_Type operator() ( const Real time, const VectorSmall<3> spaceCoordinates )
48  {
49  MatrixSmall<3,3> gradU;
50  gradU[0][0] = RossEthierSteinmanUnsteadyDec::grad_u( 0, time, spaceCoordinates[0], spaceCoordinates[1], spaceCoordinates[2] , 0 ) ;
51  gradU[1][1] = RossEthierSteinmanUnsteadyDec::grad_u( 1, time, spaceCoordinates[0], spaceCoordinates[1], spaceCoordinates[2] , 1 ) ;
52  gradU[2][2] = RossEthierSteinmanUnsteadyDec::grad_u( 2, time, spaceCoordinates[0], spaceCoordinates[1], spaceCoordinates[2] , 2 ) ;
53  gradU[0][1] = RossEthierSteinmanUnsteadyDec::grad_u( 1, time, spaceCoordinates[0], spaceCoordinates[1], spaceCoordinates[2] , 0 ) ;
54  gradU[0][2] = RossEthierSteinmanUnsteadyDec::grad_u( 2, time, spaceCoordinates[0], spaceCoordinates[1], spaceCoordinates[2] , 0 ) ;
55  gradU[1][0] = RossEthierSteinmanUnsteadyDec::grad_u( 0, time, spaceCoordinates[0], spaceCoordinates[1], spaceCoordinates[2] , 1 ) ;
56  gradU[1][2] = RossEthierSteinmanUnsteadyDec::grad_u( 2, time, spaceCoordinates[0], spaceCoordinates[1], spaceCoordinates[2] , 1 ) ;
57  gradU[2][0] = RossEthierSteinmanUnsteadyDec::grad_u( 0, time, spaceCoordinates[0], spaceCoordinates[1], spaceCoordinates[2] , 2 ) ;
58  gradU[2][1] = RossEthierSteinmanUnsteadyDec::grad_u( 1, time, spaceCoordinates[0], spaceCoordinates[1], spaceCoordinates[2] , 2 ) ;
59 
60 
61  return gradU;
62  }
63 
67 };
68 
69 } // end namespace LifeV
70 
71 #endif // GRADUEXACTFUNCTOR_H
return_Type operator()(const Real time, const VectorSmall< 3 > spaceCoordinates)
void updateInverseJacobian(const UInt &iQuadPt)
MatrixSmall< 3, 3 > return_Type
gradUExactFunctor(const gradUExactFunctor &)
double Real
Generic real data.
Definition: LifeV.hpp:175