Reference documentation for deal.II version GIT 368e8637aa 2023-09-27 11:20: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\}}\)
mapping_related_data.cc
Go to the documentation of this file.
1 // ---------------------------------------------------------------------
2 //
3 // Copyright (C) 1998 - 2022 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 
17 #include <deal.II/base/numbers.h>
19 
21 
23 
24 namespace internal
25 {
26  namespace FEValuesImplementation
27  {
28  template <int dim, int spacedim>
29  void
31  const unsigned int n_quadrature_points,
32  const UpdateFlags flags)
33  {
34  if (flags & update_quadrature_points)
35  this->quadrature_points.resize(
36  n_quadrature_points,
38 
39  if (flags & update_JxW_values)
40  this->JxW_values.resize(n_quadrature_points,
41  numbers::signaling_nan<double>());
42 
43  if (flags & update_jacobians)
44  this->jacobians.resize(
45  n_quadrature_points,
47 
48  if (flags & update_jacobian_grads)
49  this->jacobian_grads.resize(
50  n_quadrature_points,
52 
54  this->jacobian_pushed_forward_grads.resize(
55  n_quadrature_points, numbers::signaling_nan<Tensor<3, spacedim>>());
56 
58  this->jacobian_2nd_derivatives.resize(
59  n_quadrature_points,
61 
63  this->jacobian_pushed_forward_2nd_derivatives.resize(
64  n_quadrature_points, numbers::signaling_nan<Tensor<4, spacedim>>());
65 
67  this->jacobian_3rd_derivatives.resize(n_quadrature_points);
68 
70  this->jacobian_pushed_forward_3rd_derivatives.resize(
71  n_quadrature_points, numbers::signaling_nan<Tensor<5, spacedim>>());
72 
73  if (flags & update_inverse_jacobians)
74  this->inverse_jacobians.resize(
75  n_quadrature_points,
77 
78  if (flags & update_boundary_forms)
79  this->boundary_forms.resize(
80  n_quadrature_points, numbers::signaling_nan<Tensor<1, spacedim>>());
81 
82  if (flags & update_normal_vectors)
83  this->normal_vectors.resize(
84  n_quadrature_points, numbers::signaling_nan<Tensor<1, spacedim>>());
85  }
86 
87 
88 
89  template <int dim, int spacedim>
90  std::size_t
92  {
93  return (
97  MemoryConsumption::memory_consumption(jacobian_pushed_forward_grads) +
98  MemoryConsumption::memory_consumption(jacobian_2nd_derivatives) +
100  jacobian_pushed_forward_2nd_derivatives) +
101  MemoryConsumption::memory_consumption(jacobian_3rd_derivatives) +
103  jacobian_pushed_forward_3rd_derivatives) +
104  MemoryConsumption::memory_consumption(inverse_jacobians) +
106  MemoryConsumption::memory_consumption(normal_vectors) +
107  MemoryConsumption::memory_consumption(boundary_forms));
108  }
109  } // namespace FEValuesImplementation
110 } // namespace internal
111 
112 #include "mapping_related_data.inst"
113 
void initialize(const unsigned int n_quadrature_points, const UpdateFlags flags)
#define DEAL_II_NAMESPACE_OPEN
Definition: config.h:477
#define DEAL_II_NAMESPACE_CLOSE
Definition: config.h:478
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)
void quadrature_points(const Triangulation< dim, spacedim > &triangulation, const Quadrature< dim > &quadrature, const std::vector< std::vector< BoundingBox< spacedim >>> &global_bounding_boxes, ParticleHandler< dim, spacedim > &particle_handler, const Mapping< dim, spacedim > &mapping=(ReferenceCells::get_hypercube< dim >() .template get_default_linear_mapping< dim, spacedim >()), const std::vector< std::vector< double >> &properties={})
Definition: generators.cc:490
T signaling_nan()