LifeV
OperationSmallExtract.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 extraction of a row or component within Small* classes.
31 
32  @date 08/2012
33  @author Samuel Quinodoz <samuel.quinodoz@epfl.ch>
34  */
35 
36 #ifndef OPERATION_SMALL_EXTRACT_HPP
37 #define OPERATION_SMALL_EXTRACT_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 // LifeV namespace.
45 namespace LifeV
46 {
47 //! class OperationSmallExtract Class containing information about the extraction of a row or component within Small* classes.
48 /*!
49  @author Samuel Quinodoz <samuel.quinodoz@epfl.ch>
50 
51  This class only contains information that can be useful in a templated framework (such as the
52  one for assembling the algebraic systems via expressions).
53 
54  It cannot be instanciated, neither the generic definition nor the specializations (private constructors
55  and destructor only).
56 
57  The only information stored in this class is the type of the result, see LifeV::OperationSmallAddition.
58 */
59 template <typename Operand>
60 class OperationSmallExtract1 // one index specified
61 {
62 private:
63  //! @name Constructors and destructors
64  //@{
65 
66  //! No default constructor
68 
69  //! No destructor
71 
72  //@}
73 };
74 
75 //! \cond
76 
77 
78 template <UInt Dim1, UInt Dim2>
79 class OperationSmallExtract1< MatrixSmall<Dim1, Dim2> >
80 {
81 public:
82 
83  //! @name Public Types
84  //@{
85 
86  typedef VectorSmall<Dim2> result_Type;
87 
88  //@}
89 
90 private:
91  //! @name Constructors and destructors
92  //@{
93 
94  //! No default constructor
95  OperationSmallExtract1();
96 
97  //! No destructor
98  ~OperationSmallExtract1();
99 
100  //@}
101 };
102 
103 
104 template <UInt Size>
105 class OperationSmallExtract1< VectorSmall<Size> >
106 {
107 public:
108 
109  //! @name Public Types
110  //@{
111 
112  typedef Real result_Type;
113 
114  //@}
115 
116 private:
117  //! @name Constructors and destructors
118  //@{
119 
120  //! No default constructor
121  OperationSmallExtract1();
122 
123  //! No destructor
124  ~OperationSmallExtract1();
125 
126  //@}
127 };
128 
129 
130 
131 
132 //! \endcond
133 
134 
135 template <typename Operand>
136 class OperationSmallExtract2 // two indexes specified
137 {
138 private:
139  //! @name Constructors and destructors
140  //@{
141 
142  //! No default constructor
144 
145  //! No destructor
147 
148  //@}
149 };
150 
151 //! \cond
152 
153 
154 template <UInt Dim1, UInt Dim2>
155 class OperationSmallExtract2< MatrixSmall<Dim1, Dim2> >
156 {
157 public:
158 
159  //! @name Public Types
160  //@{
161 
162  typedef Real result_Type;
163 
164  //@}
165 
166 private:
167  //! @name Constructors and destructors
168  //@{
169 
170  //! No default constructor
171  OperationSmallExtract2();
172 
173  //! No destructor
174  ~OperationSmallExtract2();
175 
176  //@}
177 };
178 
179 //! \endcond
180 
181 } // namespace LifeV
182 
183 #endif
OperationSmallExtract1()
No default constructor.
void updateInverseJacobian(const UInt &iQuadPt)
~OperationSmallExtract1()
No destructor.
class OperationSmallExtract Class containing information about the extraction of a row or component w...
double Real
Generic real data.
Definition: LifeV.hpp:175
OperationSmallExtract2()
No default constructor.
~OperationSmallExtract2()
No destructor.
uint32_type UInt
generic unsigned integer (used mainly for addressing)
Definition: LifeV.hpp:191