Reference documentation for deal.II version GIT relicensing-239-g45f302f98c 2024-03-29 07:10: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\}}\)
Loading...
Searching...
No Matches
mapping_related_data.cc
Go to the documentation of this file.
1// ------------------------------------------------------------------------
2//
3// SPDX-License-Identifier: LGPL-2.1-or-later
4// Copyright (C) 2022 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
18
20
22
23namespace internal
24{
25 namespace FEValuesImplementation
26 {
27 template <int dim, int spacedim>
28 void
30 const unsigned int n_quadrature_points,
31 const UpdateFlags flags)
32 {
33 if (flags & update_quadrature_points)
34 this->quadrature_points.resize(
35 n_quadrature_points,
37
38 if (flags & update_JxW_values)
39 this->JxW_values.resize(n_quadrature_points,
40 numbers::signaling_nan<double>());
41
42 if (flags & update_jacobians)
43 this->jacobians.resize(
44 n_quadrature_points,
46
47 if (flags & update_jacobian_grads)
48 this->jacobian_grads.resize(
49 n_quadrature_points,
51
53 this->jacobian_pushed_forward_grads.resize(
54 n_quadrature_points, numbers::signaling_nan<Tensor<3, spacedim>>());
55
57 this->jacobian_2nd_derivatives.resize(
58 n_quadrature_points,
60
62 this->jacobian_pushed_forward_2nd_derivatives.resize(
63 n_quadrature_points, numbers::signaling_nan<Tensor<4, spacedim>>());
64
66 this->jacobian_3rd_derivatives.resize(n_quadrature_points);
67
69 this->jacobian_pushed_forward_3rd_derivatives.resize(
70 n_quadrature_points, numbers::signaling_nan<Tensor<5, spacedim>>());
71
72 if (flags & update_inverse_jacobians)
73 this->inverse_jacobians.resize(
74 n_quadrature_points,
76
77 if (flags & update_boundary_forms)
78 this->boundary_forms.resize(
79 n_quadrature_points, numbers::signaling_nan<Tensor<1, spacedim>>());
80
81 if (flags & update_normal_vectors)
82 this->normal_vectors.resize(
83 n_quadrature_points, numbers::signaling_nan<Tensor<1, spacedim>>());
84 }
85
86
87
88 template <int dim, int spacedim>
89 std::size_t
91 {
92 return (
96 MemoryConsumption::memory_consumption(jacobian_pushed_forward_grads) +
97 MemoryConsumption::memory_consumption(jacobian_2nd_derivatives) +
99 jacobian_pushed_forward_2nd_derivatives) +
100 MemoryConsumption::memory_consumption(jacobian_3rd_derivatives) +
102 jacobian_pushed_forward_3rd_derivatives) +
103 MemoryConsumption::memory_consumption(inverse_jacobians) +
104 MemoryConsumption::memory_consumption(quadrature_points) +
107 }
108 } // namespace FEValuesImplementation
109} // namespace internal
110
111#include "mapping_related_data.inst"
112
Definition point.h:111
void initialize(const unsigned int n_quadrature_points, const UpdateFlags flags)
#define DEAL_II_NAMESPACE_OPEN
Definition config.h:502
#define DEAL_II_NAMESPACE_CLOSE
Definition config.h:503
UpdateFlags
@ update_jacobian_pushed_forward_2nd_derivatives
@ update_jacobian_pushed_forward_grads
@ update_jacobian_3rd_derivatives
@ update_jacobian_grads
Gradient of volume element.
@ update_normal_vectors
Normal vectors.
@ update_JxW_values
Transformed quadrature weights.
@ update_jacobians
Volume element.
@ update_inverse_jacobians
Volume element.
@ update_quadrature_points
Transformed quadrature points.
@ update_jacobian_pushed_forward_3rd_derivatives
@ update_boundary_forms
Outer normal vector, not normalized.
@ update_jacobian_2nd_derivatives
std::enable_if_t< std::is_fundamental_v< T >, std::size_t > memory_consumption(const T &t)
T signaling_nan()