Reference documentation for deal.II version 9.0.0
derivative_approximation.h
1 // ---------------------------------------------------------------------
2 //
3 // Copyright (C) 2000 - 2018 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 at
12 // the top level of the deal.II distribution.
13 //
14 // ---------------------------------------------------------------------
15 
16 #ifndef dealii_derivative_approximation_h
17 #define dealii_derivative_approximation_h
18 
19 #include <deal.II/base/config.h>
20 #include <deal.II/base/exceptions.h>
21 #include <deal.II/base/synchronous_iterator.h>
22 #include <deal.II/fe/fe_update_flags.h>
23 #include <deal.II/fe/mapping.h>
24 #include <deal.II/lac/vector.h>
25 #include <deal.II/grid/filtered_iterator.h>
26 #ifdef _MSC_VER
27 # include <deal.II/dofs/dof_accessor.h>
28 #endif
29 #include <utility>
30 
31 DEAL_II_NAMESPACE_OPEN
32 
156 {
172  template <int dim, template <int, int> class DoFHandlerType, class InputVector, int spacedim>
173  void
175  const DoFHandlerType<dim,spacedim> &dof,
176  const InputVector &solution,
178  const unsigned int component = 0);
179 
184  template <int dim, template <int, int> class DoFHandlerType, class InputVector, int spacedim>
185  void
186  approximate_gradient (const DoFHandlerType<dim,spacedim> &dof,
187  const InputVector &solution,
189  const unsigned int component = 0);
190 
208  template <int dim, template <int, int> class DoFHandlerType, class InputVector, int spacedim>
209  void
211  const DoFHandlerType<dim,spacedim> &dof,
212  const InputVector &solution,
214  const unsigned int component = 0);
215 
220  template <int dim, template <int, int> class DoFHandlerType, class InputVector, int spacedim>
221  void
222  approximate_second_derivative (const DoFHandlerType<dim,spacedim> &dof,
223  const InputVector &solution,
225  const unsigned int component = 0);
226 
240  template <typename DoFHandlerType, class InputVector, int order>
241  void
244  const DoFHandlerType &dof,
245  const InputVector &solution,
246 #ifndef _MSC_VER
247  const typename DoFHandlerType::active_cell_iterator &cell,
248 #else
250 #endif
252  const unsigned int component = 0);
253 
257  template <typename DoFHandlerType, class InputVector, int order>
258  void
260  (const DoFHandlerType &dof,
261  const InputVector &solution,
262 #ifndef _MSC_VER
263  const typename DoFHandlerType::active_cell_iterator &cell,
264 #else
266 #endif
268  const unsigned int component = 0);
269 
273  template <int dim, int order>
274  double
275  derivative_norm (const Tensor<order,dim> &derivative);
276 
281  int, int,
282  << "The output vector needs to have a size equal "
283  "to the number of active cells of your triangulation "
284  "but has length " << arg1 << "There are "
285  << arg2 << " active cells in your triangulation.");
290  "We have encountered a cell on which the number of linearly "
291  "independent directions that span the matrix Y (discussed "
292  "in the documentation of the DerivativeApproximation "
293  "class) is not equal to dim. The matrix Y then is "
294  "rank deficient and can not be inverted.");
295 }
296 
297 
298 
299 DEAL_II_NAMESPACE_CLOSE
300 
301 #endif
static ::ExceptionBase & ExcInsufficientDirections()
#define DeclException2(Exception2, type1, type2, outsequence)
Definition: exceptions.h:358
Abstract base class for mapping classes.
Definition: dof_tools.h:46
#define DeclExceptionMsg(Exception, defaulttext)
Definition: exceptions.h:335
double derivative_norm(const Tensor< order, dim > &derivative)
void approximate_derivative_tensor(const Mapping< DoFHandlerType::dimension, DoFHandlerType::space_dimension > &mapping, const DoFHandlerType &dof, const InputVector &solution, const typename DoFHandlerType::active_cell_iterator &cell, Tensor< order, DoFHandlerType::dimension > &derivative, const unsigned int component=0)
Definition: mpi.h:53
void approximate_second_derivative(const Mapping< dim, spacedim > &mapping, const DoFHandlerType< dim, spacedim > &dof, const InputVector &solution, Vector< float > &derivative_norm, const unsigned int component=0)
void approximate_gradient(const Mapping< dim, spacedim > &mapping, const DoFHandlerType< dim, spacedim > &dof, const InputVector &solution, Vector< float > &derivative_norm, const unsigned int component=0)
static ::ExceptionBase & ExcVectorLengthVsNActiveCells(int arg1, int arg2)