Loading [MathJax]/extensions/TeX/newcommand.js
 Reference documentation for deal.II version 9.4.1
\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\}}
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
vector_tools_project.h
Go to the documentation of this file.
1// ---------------------------------------------------------------------
2//
3// Copyright (C) 1998 - 2021 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
27template <typename number>
29template <int dim, int spacedim>
30class DoFHandler;
31template <int dim, typename Number>
32class Function;
33template <int dim, int spacedim>
34class Mapping;
35template <int dim, typename number, typename VectorizedArrayType>
36class MatrixFree;
37template <int dim>
38class Quadrature;
39template <int dim>
40class QGauss;
41template <typename Number, std::size_t width>
42class VectorizedArray;
43namespace hp
44{
45 template <int dim, int spacedim>
46 class MappingCollection;
47 template <int dim>
48 class QCollection;
49} // namespace hp
50
51
52namespace VectorTools
53{
58
140 template <int dim, typename VectorType, int spacedim>
141 void
143 const DoFHandler<dim, spacedim> & dof,
145 const Quadrature<dim> & quadrature,
147 VectorType & vec,
148 const bool enforce_zero_boundary = false,
149 const Quadrature<dim - 1> &q_boundary = (dim > 1 ?
150 QGauss<dim - 1>(2) :
152 const bool project_to_boundary_first = false);
153
158 template <int dim, typename VectorType, int spacedim>
159 void
162 const Quadrature<dim> & quadrature,
164 VectorType & vec,
165 const bool enforce_zero_boundary = false,
166 const Quadrature<dim - 1> &q_boundary = (dim > 1 ?
167 QGauss<dim - 1>(2) :
169 const bool project_to_boundary_first = false);
170
174 template <int dim, typename VectorType, int spacedim>
175 void
177 const DoFHandler<dim, spacedim> & dof,
179 const hp::QCollection<dim> & quadrature,
181 VectorType & vec,
182 const bool enforce_zero_boundary = false,
184 dim > 1 ? QGauss<dim - 1>(2) : Quadrature<dim - 1>(0)),
185 const bool project_to_boundary_first = false);
186
191 template <int dim, typename VectorType, int spacedim>
192 void
195 const hp::QCollection<dim> & quadrature,
197 VectorType & vec,
198 const bool enforce_zero_boundary = false,
200 dim > 1 ? QGauss<dim - 1>(2) : Quadrature<dim - 1>(0)),
201 const bool project_to_boundary_first = false);
202
227 template <int dim, typename VectorType, int spacedim>
228 void
230 const DoFHandler<dim, spacedim> & dof,
232 const Quadrature<dim> & quadrature,
233 const std::function<typename VectorType::value_type(
235 const unsigned int)> & func,
236 VectorType & vec_result);
237
266 template <int dim, typename VectorType>
267 void
269 std::shared_ptr<
270 const MatrixFree<dim,
271 typename VectorType::value_type,
274 const unsigned int n_q_points_1d,
276 const unsigned int,
277 const unsigned int)> & func,
278 VectorType & vec_result,
279 const unsigned int fe_component = 0);
280
285 template <int dim, typename VectorType>
286 void
288 std::shared_ptr<
289 const MatrixFree<dim,
290 typename VectorType::value_type,
294 const unsigned int,
295 const unsigned int)> & func,
296 VectorType & vec_result,
297 const unsigned int fe_component = 0);
298
299 // @}
300
301} // namespace VectorTools
302
304
305#endif // dealii_vector_tools_project_h
Abstract base class for mapping classes.
Definition: mapping.h:311
#define DEAL_II_NAMESPACE_OPEN
Definition: config.h:442
#define DEAL_II_NAMESPACE_CLOSE
Definition: config.h:443
typename ActiveSelector::active_cell_iterator active_cell_iterator
Definition: dof_handler.h:438
void project(const Mapping< dim, spacedim > &mapping, const DoFHandler< dim, spacedim > &dof, const AffineConstraints< typename VectorType::value_type > &constraints, const Quadrature< dim > &quadrature, const Function< spacedim, typename VectorType::value_type > &function, VectorType &vec, const bool enforce_zero_boundary=false, const Quadrature< dim - 1 > &q_boundary=(dim > 1 ? QGauss< dim - 1 >(2) :Quadrature< dim - 1 >(0)), const bool project_to_boundary_first=false)
Definition: hp.h:118