16#ifndef dealii_derivative_approximation_h
17#define dealii_derivative_approximation_h
178 template <
int dim,
class InputVector,
int spacedim>
182 const InputVector & solution,
184 const unsigned int component = 0);
189 template <
int dim,
class InputVector,
int spacedim>
192 const InputVector & solution,
194 const unsigned int component = 0);
213 template <
int dim,
class InputVector,
int spacedim>
217 const InputVector & solution,
219 const unsigned int component = 0);
224 template <
int dim,
class InputVector,
int spacedim>
227 const InputVector & solution,
229 const unsigned int component = 0);
244 template <
int dim,
int spacedim,
class InputVector,
int order>
249 const InputVector & solution,
257 const unsigned int component = 0);
262 template <
int dim,
int spacedim,
class InputVector,
int order>
266 const InputVector & solution,
274 const unsigned int component = 0);
279 template <
int dim,
int order>
289 <<
"The output vector needs to have a size equal "
290 "to the number of active cells of your triangulation "
292 << arg1 <<
"There are " << arg2
293 <<
" active cells in your triangulation.");
298 "While computing a finite difference approximation to "
299 "derivatives, the algorithm encountered a cell on which "
300 "the number of linearly "
301 "independent directions that span the matrix Y (discussed "
302 "in the documentation of the DerivativeApproximation "
303 "class) is not equal to dim. The matrix Y then is "
304 "rank deficient and can not be inverted. A common reason "
305 "why this might be happening is if a cell has neither "
306 "left/right (or up/down, or front/back) neighbors, for "
307 "example because the mesh is too coarse.");
#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)
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)