Reference documentation for deal.II version 9.0.0
fe_values_extractors.h
1 // ---------------------------------------------------------------------
2 //
3 // Copyright (C) 1998 - 2018 by the deal.II authors
4 //
5 // This file is part of the deal.II library.
6 //
7 // The deal.II library is free software; you can use it, redistribute
8 // it, and/or modify it under the terms of the GNU Lesser General
9 // Public License as published by the Free Software Foundation; either
10 // version 2.1 of the License, or (at your option) any later version.
11 // The full text of the license can be found in the file LICENSE at
12 // the top level of the deal.II distribution.
13 //
14 // ---------------------------------------------------------------------
15 
16 #ifndef dealii_fe_values_extractors_h
17 #define dealii_fe_values_extractors_h
18 
19 
20 #include <deal.II/base/config.h>
21 
22 DEAL_II_NAMESPACE_OPEN
23 
24 
42 {
54  struct Scalar
55  {
59  unsigned int component;
60 
68  Scalar ();
69 
73  Scalar (const unsigned int component);
74  };
75 
76 
103  struct Vector
104  {
109 
117  Vector ();
118 
123  Vector (const unsigned int first_vector_component);
124  };
125 
126 
145  template <int rank>
147  {
152 
160  SymmetricTensor ();
161 
166  SymmetricTensor (const unsigned int first_tensor_component);
167  };
168 
169 
188  template <int rank>
189  struct Tensor
190  {
195 
203  Tensor ();
204 
209  Tensor (const unsigned int first_tensor_component);
210  };
211 }
212 
213 
214 /*------------------------ Inline functions: namespace FEValuesExtractors --------*/
215 
216 namespace FEValuesExtractors
217 {
218  inline
220  :
221  component (numbers::invalid_unsigned_int)
222  {}
223 
224 
225 
226  inline
227  Scalar::Scalar (const unsigned int component)
228  :
229  component (component)
230  {}
231 
232 
233 
234  inline
236  :
237  first_vector_component (numbers::invalid_unsigned_int)
238  {}
239 
240 
241  inline
242  Vector::Vector (const unsigned int first_vector_component)
243  :
244  first_vector_component (first_vector_component)
245  {}
246 
247 
248  template <int rank>
249  inline
251  :
252  first_tensor_component(numbers::invalid_unsigned_int)
253  {}
254 
255 
256  template <int rank>
257  inline
258  SymmetricTensor<rank>::SymmetricTensor (const unsigned int first_tensor_component)
259  :
260  first_tensor_component (first_tensor_component)
261  {}
262 
263 
264  template <int rank>
265  inline
267  :
268  first_tensor_component(numbers::invalid_unsigned_int)
269  {}
270 
271 
272  template <int rank>
273  inline
274  Tensor<rank>::Tensor (const unsigned int first_tensor_component)
275  :
276  first_tensor_component (first_tensor_component)
277  {}
278 }
279 
280 
281 
282 
283 DEAL_II_NAMESPACE_CLOSE
284 
285 #endif