deal.II version GIT relicensing-2289-g1e5549a87a 2024-12-21 21: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
22
23
82{
94 struct Scalar
95 {
99 unsigned int component;
100
108 constexpr Scalar();
109
113 constexpr Scalar(const unsigned int component);
114
118 std::string
119 get_name() const;
120 };
121
122
149 struct Vector
150 {
155
163 constexpr Vector();
164
169 constexpr Vector(const unsigned int first_vector_component);
170
174 std::string
175 get_name() const;
176 };
177
178
195 template <int rank>
197 {
202
210 constexpr SymmetricTensor();
211
216 constexpr SymmetricTensor(const unsigned int first_tensor_component);
217
221 std::string
222 get_name() const;
223 };
224
225
242 template <int rank>
243 struct Tensor
244 {
249
257 constexpr Tensor();
258
263 constexpr Tensor(const unsigned int first_tensor_component);
264
268 std::string
269 get_name() const;
270 };
271
276 template <typename Extractor>
278 {
282 constexpr FirstCoupling(const Extractor &extractor);
283
287 const Extractor extractor;
288 };
289
294 template <typename Extractor>
296 {
300 constexpr SecondCoupling(const Extractor &extractor);
301
305 const Extractor extractor;
306 };
307} // namespace FEValuesExtractors
308
309
310/*-------------- Inline functions: namespace FEValuesExtractors -------------*/
311
312namespace FEValuesExtractors
313{
314 constexpr inline Scalar::Scalar()
315 : component(numbers::invalid_unsigned_int)
316 {}
317
318
319
320 constexpr inline Scalar::Scalar(const unsigned int component)
321 : component(component)
322 {}
323
324
325
326 constexpr inline Vector::Vector()
327 : first_vector_component(numbers::invalid_unsigned_int)
328 {}
329
330
331 constexpr inline Vector::Vector(const unsigned int first_vector_component)
332 : first_vector_component(first_vector_component)
333 {}
334
335
336 template <int rank>
338 : first_tensor_component(numbers::invalid_unsigned_int)
339 {}
340
341
342 template <int rank>
344 const unsigned int first_tensor_component)
345 : first_tensor_component(first_tensor_component)
346 {}
347
348
349 template <int rank>
350 constexpr inline Tensor<rank>::Tensor()
351 : first_tensor_component(numbers::invalid_unsigned_int)
352 {}
353
354
355 template <int rank>
356 constexpr inline Tensor<rank>::Tensor(
357 const unsigned int first_tensor_component)
358 : first_tensor_component(first_tensor_component)
359 {}
360
361
362 template <typename Extractor>
364 const Extractor &extractor)
365 : extractor(extractor)
366 {}
367
368
369 template <typename Extractor>
371 const Extractor &extractor)
372 : extractor(extractor)
373 {}
374} // namespace FEValuesExtractors
375
376
378
379#endif
#define DEAL_II_NAMESPACE_OPEN
Definition config.h:498
#define DEAL_II_NAMESPACE_CLOSE
Definition config.h:499
constexpr FirstCoupling(const Extractor &extractor)
constexpr SecondCoupling(const Extractor &extractor)