Reference documentation for deal.II version Git 180c135554 2021-06-23 17:42:41 -0400
\(\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\}}\)
vector_tools_project.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_vector_tools_project_h
17 #define dealii_vector_tools_project_h
18 
19 
20 #include <deal.II/base/config.h>
21 
22 #include <functional>
23 #include <memory>
24 
26 
27 template <typename number>
28 class AffineConstraints;
29 template <int dim, int spacedim>
30 class DoFHandler;
31 template <int dim, typename Number>
32 class Function;
33 template <int dim, int spacedim>
34 class Mapping;
35 template <int dim, typename number, typename VectorizedArrayType>
36 class MatrixFree;
37 template <int dim>
38 class Quadrature;
39 template <int dim>
40 class QGauss;
41 template <typename Number, std::size_t width>
42 class VectorizedArray;
43 namespace hp
44 {
45  template <int dim, int spacedim>
46  class MappingCollection;
47  template <int dim>
48  class QCollection;
49 } // namespace hp
50 
51 
52 namespace VectorTools
53 {
58 
139  template <int dim, typename VectorType, int spacedim>
140  void
141  project(const Mapping<dim, spacedim> & mapping,
142  const DoFHandler<dim, spacedim> & dof,
144  const Quadrature<dim> & quadrature,
146  VectorType & vec,
147  const bool enforce_zero_boundary = false,
148  const Quadrature<dim - 1> &q_boundary = (dim > 1 ?
149  QGauss<dim - 1>(2) :
151  const bool project_to_boundary_first = false);
152 
157  template <int dim, typename VectorType, int spacedim>
158  void
161  const Quadrature<dim> & quadrature,
163  VectorType & vec,
164  const bool enforce_zero_boundary = false,
165  const Quadrature<dim - 1> &q_boundary = (dim > 1 ?
166  QGauss<dim - 1>(2) :
168  const bool project_to_boundary_first = false);
169 
173  template <int dim, typename VectorType, int spacedim>
174  void
176  const DoFHandler<dim, spacedim> & dof,
178  const hp::QCollection<dim> & quadrature,
180  VectorType & vec,
181  const bool enforce_zero_boundary = false,
183  dim > 1 ? QGauss<dim - 1>(2) : Quadrature<dim - 1>(0)),
184  const bool project_to_boundary_first = false);
185 
190  template <int dim, typename VectorType, int spacedim>
191  void
194  const hp::QCollection<dim> & quadrature,
196  VectorType & vec,
197  const bool enforce_zero_boundary = false,
199  dim > 1 ? QGauss<dim - 1>(2) : Quadrature<dim - 1>(0)),
200  const bool project_to_boundary_first = false);
201 
226  template <int dim, typename VectorType, int spacedim>
227  void
228  project(const Mapping<dim, spacedim> & mapping,
229  const DoFHandler<dim, spacedim> & dof,
231  const Quadrature<dim> & quadrature,
232  const std::function<typename VectorType::value_type(
234  const unsigned int)> & func,
235  VectorType & vec_result);
236 
265  template <int dim, typename VectorType>
266  void
267  project(
268  std::shared_ptr<
269  const MatrixFree<dim,
270  typename VectorType::value_type,
273  const unsigned int n_q_points_1d,
275  const unsigned int,
276  const unsigned int)> & func,
277  VectorType & vec_result,
278  const unsigned int fe_component = 0);
279 
284  template <int dim, typename VectorType>
285  void
286  project(
287  std::shared_ptr<
288  const MatrixFree<dim,
289  typename VectorType::value_type,
293  const unsigned int,
294  const unsigned int)> & func,
295  VectorType & vec_result,
296  const unsigned int fe_component = 0);
297 
298  // @}
299 
300 } // namespace VectorTools
301 
303 
304 #endif // dealii_vector_tools_project_h
Abstract base class for mapping classes.
Definition: mapping.h:303
#define DEAL_II_NAMESPACE_CLOSE
Definition: config.h:399
void project(std::shared_ptr< const MatrixFree< dim, typename VectorType::value_type, VectorizedArray< typename VectorType::value_type >>> data, const AffineConstraints< typename VectorType::value_type > &constraints, const std::function< VectorizedArray< typename VectorType::value_type >(const unsigned int, const unsigned int)> &func, VectorType &vec_result, const unsigned int fe_component=0)
Definition: hp.h:117
#define DEAL_II_NAMESPACE_OPEN
Definition: config.h:398
typename ActiveSelector::active_cell_iterator active_cell_iterator
Definition: dof_handler.h:438