deal.II version GIT relicensing-2581-gae2745de1b 2025-02-07 22:30:00+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\}}\)
Loading...
Searching...
No Matches
fe_values_extractors.h
Go to the documentation of this file.
1// ------------------------------------------------------------------------
2//
3// SPDX-License-Identifier: LGPL-2.1-or-later
4// Copyright (C) 2012 - 2024 by the deal.II authors
5//
6// This file is part of the deal.II library.
7//
8// Part of the source code is dual licensed under Apache-2.0 WITH
9// LLVM-exception OR LGPL-2.1-or-later. Detailed license information
10// governing the source code and code contributions can be found in
11// LICENSE.md and CONTRIBUTING.md at the top level directory of deal.II.
12//
13// ------------------------------------------------------------------------
14
15#ifndef dealii_fe_values_extractors_h
16#define dealii_fe_values_extractors_h
17
18
19#include <deal.II/base/config.h>
20
21#include <deal.II/base/types.h>
22
23#include <string>
24
25
27
28
87{
99 struct Scalar
100 {
104 unsigned int component;
105
113 constexpr Scalar();
114
118 constexpr Scalar(const unsigned int component);
119
123 std::string
124 get_name() const;
125 };
126
127
154 struct Vector
155 {
160
168 constexpr Vector();
169
174 constexpr Vector(const unsigned int first_vector_component);
175
179 std::string
180 get_name() const;
181 };
182
183
200 template <int rank>
202 {
207
215 constexpr SymmetricTensor();
216
221 constexpr SymmetricTensor(const unsigned int first_tensor_component);
222
226 std::string
227 get_name() const;
228 };
229
230
247 template <int rank>
248 struct Tensor
249 {
254
262 constexpr Tensor();
263
268 constexpr Tensor(const unsigned int first_tensor_component);
269
273 std::string
274 get_name() const;
275 };
276
281 template <typename Extractor>
283 {
287 constexpr FirstCoupling(const Extractor &extractor);
288
292 const Extractor extractor;
293 };
294
299 template <typename Extractor>
301 {
305 constexpr SecondCoupling(const Extractor &extractor);
306
310 const Extractor extractor;
311 };
312} // namespace FEValuesExtractors
313
314
315/*-------------- Inline functions: namespace FEValuesExtractors -------------*/
316
317namespace FEValuesExtractors
318{
319 constexpr inline Scalar::Scalar()
320 : component(numbers::invalid_unsigned_int)
321 {}
322
323
324
325 constexpr inline Scalar::Scalar(const unsigned int component)
326 : component(component)
327 {}
328
329
330
331 constexpr inline Vector::Vector()
332 : first_vector_component(numbers::invalid_unsigned_int)
333 {}
334
335
336 constexpr inline Vector::Vector(const unsigned int first_vector_component)
337 : first_vector_component(first_vector_component)
338 {}
339
340
341 template <int rank>
343 : first_tensor_component(numbers::invalid_unsigned_int)
344 {}
345
346
347 template <int rank>
349 const unsigned int first_tensor_component)
350 : first_tensor_component(first_tensor_component)
351 {}
352
353
354 template <int rank>
355 constexpr inline Tensor<rank>::Tensor()
356 : first_tensor_component(numbers::invalid_unsigned_int)
357 {}
358
359
360 template <int rank>
361 constexpr inline Tensor<rank>::Tensor(
362 const unsigned int first_tensor_component)
363 : first_tensor_component(first_tensor_component)
364 {}
365
366
367 template <typename Extractor>
369 const Extractor &extractor)
370 : extractor(extractor)
371 {}
372
373
374 template <typename Extractor>
376 const Extractor &extractor)
377 : extractor(extractor)
378 {}
379} // namespace FEValuesExtractors
380
381
383
384#endif
#define DEAL_II_NAMESPACE_OPEN
Definition config.h:513
#define DEAL_II_NAMESPACE_CLOSE
Definition config.h:514
constexpr FirstCoupling(const Extractor &extractor)
constexpr SecondCoupling(const Extractor &extractor)