15#ifndef dealii_derivative_approximation_h
16#define dealii_derivative_approximation_h
177 template <
int dim,
class InputVector,
int spacedim>
181 const InputVector &solution,
183 const unsigned int component = 0);
188 template <
int dim,
class InputVector,
int spacedim>
191 const InputVector &solution,
193 const unsigned int component = 0);
212 template <
int dim,
class InputVector,
int spacedim>
216 const InputVector &solution,
218 const unsigned int component = 0);
223 template <
int dim,
class InputVector,
int spacedim>
226 const InputVector &solution,
228 const unsigned int component = 0);
243 template <
int dim,
int spacedim,
class InputVector,
int order>
248 const InputVector &solution,
256 const unsigned int component = 0);
261 template <
int dim,
int spacedim,
class InputVector,
int order>
265 const InputVector &solution,
273 const unsigned int component = 0);
278 template <
int dim,
int order>
288 <<
"The output vector needs to have a size equal "
289 "to the number of active cells of your triangulation "
291 << arg1 <<
"There are " << arg2
292 <<
" active cells in your triangulation.");
297 "While computing a finite difference approximation to "
298 "derivatives, the algorithm encountered a cell on which "
299 "the number of linearly "
300 "independent directions that span the matrix Y (discussed "
301 "in the documentation of the DerivativeApproximation "
302 "class) is not equal to dim. The matrix Y then is "
303 "rank deficient and can not be inverted. A common reason "
304 "why this might be happening is if a cell has neither "
305 "left/right (or up/down, or front/back) neighbors, for "
306 "example because the mesh is too coarse.");
Abstract base class for mapping classes.
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
static ::ExceptionBase & ExcInsufficientDirections()
static ::ExceptionBase & ExcVectorLengthVsNActiveCells(int arg1, int arg2)
#define DeclException2(Exception2, type1, type2, outsequence)
#define DeclExceptionMsg(Exception, defaulttext)
typename ActiveSelector::active_cell_iterator active_cell_iterator
void approximate_gradient(const Mapping< dim, spacedim > &mapping, const DoFHandler< dim, spacedim > &dof, const InputVector &solution, Vector< float > &derivative_norm, const unsigned int component=0)
double derivative_norm(const Tensor< order, dim > &derivative)
void approximate_derivative_tensor(const Mapping< dim, spacedim > &mapping, const DoFHandler< dim, spacedim > &dof, const InputVector &solution, const typename DoFHandler< dim, spacedim >::active_cell_iterator &cell, Tensor< order, dim > &derivative, const unsigned int component=0)
void approximate_second_derivative(const Mapping< dim, spacedim > &mapping, const DoFHandler< dim, spacedim > &dof, const InputVector &solution, Vector< float > &derivative_norm, const unsigned int component=0)