LifeV
OperationSmallCubicRoot.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 the LifeV library
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
21  License along with this library; if not, see <http://www.gnu.org/licenses/>
22 
23 
24 *******************************************************************************
25 */
26 //@HEADER
27 
28 /*!
29  * @file
30  @brief This file contains information about the addition operation between *Small classes.
31 
32  @date 07/2011
33  @author Samuel Quinodoz <samuel.quinodoz@epfl.ch>
34  */
35 
36 #ifndef OPERATION_SMALL_CUBICROOT_HPP
37 #define OPERATION_SMALL_CUBICROOT_HPP
38 
39 #include <lifev/core/LifeV.hpp>
40 
41 namespace LifeV
42 {
43 //! class OperationSmallAddition Class containing information about the power operation between the *Small classes.
44 
45 /*!
46  @author Samuel Quinodoz <samuel.quinodoz@epfl.ch>
47 
48  This class only contains information that can be usefull in a templated framework (such as the
49  one for assembling the algebraic systems via expressions).
50 
51  It cannot be instanciated, neither the generic definition nor the specializations (private constructors
52  and destructor only).
53 
54  The only information stored in this class is the type of the result. For example, as the addition
55  of a LifeV::Real with a LifeV::Real is a LifeV::Real as well, the specialization
56  LifeV::OperationSmallAddition<LifeV::Real,LifeV::Real> contains the typedef result_Type that aliases
57  the LifeV::Real type.
58 
59 */
60 template <typename Argument>
62 {
63 private:
64  //! @name Constructors and destructors
65  //@{
66 
67  //! No default constructor
69 
70  //! No destructor
72 
73  //@}
74 };
75 
76 //! \cond
77 
78 template <>
80 {
81 public:
82 
83  //! @name Public Types
84  //@{
85 
86  typedef Real result_Type;
87 
88  //@}
89 
90 private:
91  //! @name Constructors and destructors
92  //@{
93 
94  //! No default constructor
95  OperationSmallCubicRoot();
96 
97  //! No destructor
98  ~OperationSmallCubicRoot();
99 
100  //@}
101 };
102 
103  /*
104  Specialization for the structure module to have fast computation of
105  the isochoric change of variable used in the structure module
106  */
107 template <typename Argument>
108 class OperationSmallIsochoricChangeOfVariable
109 {
110 private:
111  //! @name Constructors and destructors
112  //@{
113 
114  //! No default constructor
115  OperationSmallIsochoricChangeOfVariable();
116 
117  //! No destructor
118  ~OperationSmallIsochoricChangeOfVariable();
119 
120  //@}
121 };
122 
123 //! \cond
124 
125 template <>
126 class OperationSmallIsochoricChangeOfVariable<Real>
127 {
128 public:
129 
130  //! @name Public Types
131  //@{
132 
133  typedef Real result_Type;
134 
135  //@}
136 
137 private:
138  //! @name Constructors and destructors
139  //@{
140 
141  //! No default constructor
142  OperationSmallIsochoricChangeOfVariable();
143 
144  //! No destructor
145  ~OperationSmallIsochoricChangeOfVariable();
146 
147  //@}
148 };
149 
150 //! \endcond
151 
152 } // namespace LifeV
153 
154 
155 #endif
OperationSmallCubicRoot()
No default constructor.
~OperationSmallCubicRoot()
No destructor.
void updateInverseJacobian(const UInt &iQuadPt)
class OperationSmallAddition Class containing information about the power operation between the *Smal...
double Real
Generic real data.
Definition: LifeV.hpp:175