LifeV
OperationSmallNormalize.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 transpose operation for Small* classes.
31 
32  @date 08/2012
33  @author Samuel Quinodoz <samuel.quinodoz@epfl.ch>
34  */
35 
36 #ifndef OPERATION_SMALL_NORMALIZE_HPP
37 #define OPERATION_SMALL_NORMALIZE_HPP
38 
39 #include <lifev/core/LifeV.hpp>
40 
41 #include <lifev/core/array/VectorSmall.hpp>
42 #include <lifev/core/array/MatrixSmall.hpp>
43 
44 
45 // LifeV namespace.
46 namespace LifeV
47 {
48 //! class OperationSmallTranspose Class containing information about the transpose operation for Small* classes.
49 /*!
50  @author Samuel Quinodoz <samuel.quinodoz@epfl.ch>
51 
52  This class only contains information that can be useful in a templated framework (such as the
53  one for assembling the algebraic systems via expressions).
54 
55  It cannot be instanciated, neither the generic definition nor the specializations (private constructors
56  and destructor only).
57 
58  The only information stored in this class is the type of the result, see LifeV::OperationSmallAddition.
59 */
60 
61 template <typename Operand >
63 {
64 private:
65  //! @name Constructors and destructors
66  //@{
67 
68  //! No default constructor
70 
71  //! No destructor
73 
74  //@}
75 };
76 
77 //! \cond
78 
79 template <>
81 {
82 public:
83 
84  //! @name Public Types
85  //@{
86 
87  typedef Real result_Type;
88 
89  //@}
90 
91 private:
92  //! @name Constructors and destructors
93  //@{
94 
95  //! No default constructor
96  OperationSmallNormalize();
97 
98  //! No destructor
99  ~OperationSmallNormalize();
100 
101  //@}
102 };
103 
104 
105 template <UInt Dim1>
107 {
108 public:
109 
110  //! @name Public Types
111  //@{
112 
113  typedef VectorSmall<Dim1> result_Type;
114 
115  //@}
116 
117 private:
118  //! @name Constructors and destructors
119  //@{
120 
121  //! No default constructor
122  OperationSmallNormalize();
123 
124  //! No destructor
125  ~OperationSmallNormalize();
126 
127  //@}
128 };
129 
130 
131 template <UInt Dim1, UInt Dim2>
132 class OperationSmallNormalize< MatrixSmall<Dim1, Dim2> >
133 {
134 public:
135 
136  //! @name Public Types
137  //@{
138 
139  typedef MatrixSmall<Dim2, Dim1> result_Type;
140 
141  //@}
142 
143 private:
144  //! @name Constructors and destructors
145  //@{
146 
147  //! No default constructor
148  OperationSmallNormalize();
149 
150  //! No destructor
151  ~OperationSmallNormalize();
152 
153  //@}
154 };
155 
156 //! \endcond
157 
158 } // namespace LifeV
159 
160 #endif
class OperationSmallTranspose Class containing information about the transpose operation for Small* c...
~OperationSmallNormalize()
No destructor.
void updateInverseJacobian(const UInt &iQuadPt)
double Real
Generic real data.
Definition: LifeV.hpp:175
OperationSmallNormalize()
No default constructor.
uint32_type UInt
generic unsigned integer (used mainly for addressing)
Definition: LifeV.hpp:191