16 #ifndef dealii_derivative_approximation_h 17 #define dealii_derivative_approximation_h 178 template <
int,
int>
class DoFHandlerType,
183 const DoFHandlerType<dim, spacedim> &dof,
184 const InputVector & solution,
186 const unsigned int component = 0);
192 template <
int,
int>
class DoFHandlerType,
197 const InputVector & solution,
198 Vector<float> & derivative_norm,
199 const unsigned int component = 0);
219 template <
int,
int>
class DoFHandlerType,
224 const DoFHandlerType<dim, spacedim> &dof,
225 const InputVector & solution,
226 Vector<float> & derivative_norm,
227 const unsigned int component = 0);
233 template <
int,
int>
class DoFHandlerType,
238 const InputVector & solution,
239 Vector<float> & derivative_norm,
240 const unsigned int component = 0);
255 template <
typename DoFHandlerType,
class InputVector,
int order>
260 const DoFHandlerType &dof,
261 const InputVector & solution,
263 const typename DoFHandlerType::active_cell_iterator &cell,
269 const unsigned int component = 0);
274 template <
typename DoFHandlerType,
class InputVector,
int order>
277 const DoFHandlerType &dof,
278 const InputVector & solution,
280 const typename DoFHandlerType::active_cell_iterator &cell,
286 const unsigned int component = 0);
291 template <
int dim,
int order>
301 <<
"The output vector needs to have a size equal " 302 "to the number of active cells of your triangulation " 304 << arg1 <<
"There are " << arg2
305 <<
" active cells in your triangulation.");
310 "While computing a finite difference approximation to " 311 "derivatives, the algorithm encountered a cell on which " 312 "the number of linearly " 313 "independent directions that span the matrix Y (discussed " 314 "in the documentation of the DerivativeApproximation " 315 "class) is not equal to dim. The matrix Y then is " 316 "rank deficient and can not be inverted. A common reason " 317 "why this might be happening is if a cell has neither " 318 "left/right (or up/down, or front/back) neighbors, for " 319 "example because the mesh is too coarse.");
static ::ExceptionBase & ExcInsufficientDirections()
#define DeclException2(Exception2, type1, type2, outsequence)
Abstract base class for mapping classes.
#define DeclExceptionMsg(Exception, defaulttext)
#define DEAL_II_NAMESPACE_CLOSE
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)
#define DEAL_II_NAMESPACE_OPEN
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)