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_integrate_difference.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_integrate_difference_h
17 #define dealii_vector_tools_integrate_difference_h
18 
19 
20 #include <deal.II/base/config.h>
21 
23 
25 
26 template <int dim, int spacedim>
27 class DoFHandler;
28 template <int dim, typename Number>
29 class Function;
30 template <int dim, int spacedim>
31 class Mapping;
32 template <int dim>
33 class Quadrature;
34 template <int dim, int spacedim>
35 class Triangulation;
36 namespace hp
37 {
38  template <int dim, int spacedim>
39  class MappingCollection;
40  template <int dim>
41  class QCollection;
42 } // namespace hp
43 
44 
45 namespace VectorTools
46 {
51 
139  template <int dim, class InVector, class OutVector, int spacedim>
140  void
142  const Mapping<dim, spacedim> & mapping,
143  const DoFHandler<dim, spacedim> & dof,
144  const InVector & fe_function,
146  OutVector & difference,
147  const Quadrature<dim> & q,
148  const NormType & norm,
149  const Function<spacedim, double> * weight = nullptr,
150  const double exponent = 2.);
151 
156  template <int dim, class InVector, class OutVector, int spacedim>
157  void
159  const DoFHandler<dim, spacedim> & dof,
160  const InVector & fe_function,
162  OutVector & difference,
163  const Quadrature<dim> & q,
164  const NormType & norm,
165  const Function<spacedim, double> * weight = nullptr,
166  const double exponent = 2.);
167 
171  template <int dim, class InVector, class OutVector, int spacedim>
172  void
174  const hp::MappingCollection<dim, spacedim> & mapping,
175  const DoFHandler<dim, spacedim> & dof,
176  const InVector & fe_function,
178  OutVector & difference,
179  const hp::QCollection<dim> & q,
180  const NormType & norm,
181  const Function<spacedim, double> * weight = nullptr,
182  const double exponent = 2.);
183 
188  template <int dim, class InVector, class OutVector, int spacedim>
189  void
191  const DoFHandler<dim, spacedim> & dof,
192  const InVector & fe_function,
194  OutVector & difference,
195  const hp::QCollection<dim> & q,
196  const NormType & norm,
197  const Function<spacedim, double> * weight = nullptr,
198  const double exponent = 2.);
199 
225  template <int dim, int spacedim, class InVector>
226  double
228  const InVector & cellwise_error,
229  const NormType & norm,
230  const double exponent = 2.);
231 
233 } // namespace VectorTools
234 
236 
237 #endif // dealii_vector_tools_integrate_difference_h
double norm(const FEValuesBase< dim > &fe, const ArrayView< const std::vector< Tensor< 1, dim >>> &Du)
Definition: divergence.h:472
Abstract base class for mapping classes.
Definition: mapping.h:303
#define DEAL_II_NAMESPACE_CLOSE
Definition: config.h:399
Definition: hp.h:117
#define DEAL_II_NAMESPACE_OPEN
Definition: config.h:398
void integrate_difference(const DoFHandler< dim, spacedim > &dof, const InVector &fe_function, const Function< spacedim, typename InVector::value_type > &exact_solution, OutVector &difference, const hp::QCollection< dim > &q, const NormType &norm, const Function< spacedim, double > *weight=nullptr, const double exponent=2.)
double compute_global_error(const Triangulation< dim, spacedim > &tria, const InVector &cellwise_error, const NormType &norm, const double exponent=2.)