Reference documentation for deal.II version GIT f6a5d312c9 2023-10-04 08:50:02+00:00
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
fe_values_extractors.h
Go to the documentation of this file.
1 // ---------------------------------------------------------------------
2 //
3 // Copyright (C) 1998 - 2020 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.md at
12 // the top level directory of deal.II.
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 
23 
24 
83 {
95  struct Scalar
96  {
100  unsigned int component;
101 
109  Scalar();
110 
114  Scalar(const unsigned int component);
115 
119  std::string
120  get_name() const;
121  };
122 
123 
150  struct Vector
151  {
156 
164  Vector();
165 
170  Vector(const unsigned int first_vector_component);
171 
175  std::string
176  get_name() const;
177  };
178 
179 
196  template <int rank>
198  {
203 
211  SymmetricTensor();
212 
217  SymmetricTensor(const unsigned int first_tensor_component);
218 
222  std::string
223  get_name() const;
224  };
225 
226 
243  template <int rank>
244  struct Tensor
245  {
250 
258  Tensor();
259 
264  Tensor(const unsigned int first_tensor_component);
265 
269  std::string
270  get_name() const;
271  };
272 } // namespace FEValuesExtractors
273 
274 
275 /*-------------- Inline functions: namespace FEValuesExtractors -------------*/
276 
277 namespace FEValuesExtractors
278 {
279  inline Scalar::Scalar()
280  : component(numbers::invalid_unsigned_int)
281  {}
282 
283 
284 
285  inline Scalar::Scalar(const unsigned int component)
286  : component(component)
287  {}
288 
289 
290 
291  inline Vector::Vector()
292  : first_vector_component(numbers::invalid_unsigned_int)
293  {}
294 
295 
296  inline Vector::Vector(const unsigned int first_vector_component)
297  : first_vector_component(first_vector_component)
298  {}
299 
300 
301  template <int rank>
303  : first_tensor_component(numbers::invalid_unsigned_int)
304  {}
305 
306 
307  template <int rank>
309  const unsigned int first_tensor_component)
310  : first_tensor_component(first_tensor_component)
311  {}
312 
313 
314  template <int rank>
316  : first_tensor_component(numbers::invalid_unsigned_int)
317  {}
318 
319 
320  template <int rank>
321  inline Tensor<rank>::Tensor(const unsigned int first_tensor_component)
322  : first_tensor_component(first_tensor_component)
323  {}
324 } // namespace FEValuesExtractors
325 
326 
327 
329 
330 #endif
#define DEAL_II_NAMESPACE_OPEN
Definition: config.h:477
#define DEAL_II_NAMESPACE_CLOSE
Definition: config.h:478
static const unsigned int invalid_unsigned_int
Definition: types.h:213