13#ifndef dealii_derivative_approximation_h
14#define dealii_derivative_approximation_h
175 template <
int dim,
class InputVector,
int spacedim>
179 const InputVector &solution,
181 const unsigned int component = 0);
186 template <
int dim,
class InputVector,
int spacedim>
189 const InputVector &solution,
191 const unsigned int component = 0);
210 template <
int dim,
class InputVector,
int spacedim>
214 const InputVector &solution,
216 const unsigned int component = 0);
221 template <
int dim,
class InputVector,
int spacedim>
224 const InputVector &solution,
226 const unsigned int component = 0);
241 template <
int dim,
int spacedim,
class InputVector,
int order>
246 const InputVector &solution,
254 const unsigned int component = 0);
259 template <
int dim,
int spacedim,
class InputVector,
int order>
263 const InputVector &solution,
271 const unsigned int component = 0);
276 template <
int dim,
int order>
286 <<
"The output vector needs to have a size equal "
287 "to the number of active cells of your triangulation "
289 << arg1 <<
"There are " << arg2
290 <<
" active cells in your triangulation.");
295 "While computing a finite difference approximation to "
296 "derivatives, the algorithm encountered a cell on which "
297 "the number of linearly "
298 "independent directions that span the matrix Y (discussed "
299 "in the documentation of the DerivativeApproximation "
300 "class) is not equal to dim. The matrix Y then is "
301 "rank deficient and can not be inverted. A common reason "
302 "why this might be happening is if a cell has neither "
303 "left/right (or up/down, or front/back) neighbors, for "
304 "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)