17 #ifndef __deal2__gradient_estimator_h
18 #define __deal2__gradient_estimator_h
20 #include <deal.II/base/config.h>
22 #include <deal.II/base/std_cxx1x/tuple.h>
23 #include <deal.II/base/synchronous_iterator.h>
24 #include <deal.II/fe/fe_update_flags.h>
25 #include <deal.II/fe/mapping.h>
26 #include <deal.II/lac/vector.h>
27 #include <deal.II/grid/filtered_iterator.h>
31 DEAL_II_NAMESPACE_OPEN
206 template <
int dim,
template <
int,
int>
class DH,
class InputVector,
int spacedim>
209 const DH<dim,spacedim> &dof,
210 const InputVector &solution,
212 const unsigned int component = 0);
218 template <
int dim,
template <
int,
int>
class DH,
class InputVector,
int spacedim>
221 const InputVector &solution,
223 const unsigned int component = 0);
242 template <
int dim,
template <
int,
int>
class DH,
class InputVector,
int spacedim>
245 const DH<dim,spacedim> &dof,
246 const InputVector &solution,
248 const unsigned int component = 0);
254 template <
int dim,
template <
int,
int>
class DH,
class InputVector,
int spacedim>
257 const InputVector &solution,
259 const unsigned int component = 0);
275 template <
int dim,
template <
int,
int>
class DH,
class InputVector,
int order,
int spacedim>
278 const DH<dim,spacedim> &dof,
279 const InputVector &solution,
280 const typename DH<dim,spacedim>::active_cell_iterator &cell,
282 const unsigned int component = 0);
288 template <
int dim,
template <
int,
int>
class DH,
class InputVector,
int order,
int spacedim>
291 const InputVector &solution,
292 const typename DH<dim,spacedim>::active_cell_iterator &cell,
294 const unsigned int component = 0);
299 template <
int dim,
int order>
308 <<
"Vector has length " << arg1 <<
", but should have "
353 template <
class InputVector,
int spacedim>
356 const InputVector &solution,
357 const unsigned int component);
413 template <
class InputVector,
int spacedim>
416 const InputVector &solution,
417 const unsigned int component);
469 template <
class InputVector,
int spacedim>
472 const InputVector &solution,
473 const unsigned int component);
496 template <
int order,
int dim>
554 template <
class DerivativeDescription,
int dim,
555 template <
int,
int>
class DH,
class InputVector,
int spacedim>
558 const DH<dim,spacedim> &dof,
559 const InputVector &solution,
560 const unsigned int component,
568 template <
class DerivativeDescription,
int dim,
569 template <
int,
int>
class DH,
class InputVector,
int spacedim>
572 Vector<float>::iterator> >
const &cell,
574 const DH<dim,spacedim> &dof,
575 const InputVector &solution,
576 const unsigned int component);
582 template <
class DerivativeDescription,
int dim,
583 template <
int,
int>
class DH,
class InputVector,
int spacedim>
586 const DH<dim,spacedim> &dof,
587 const InputVector &solution,
588 const unsigned int component,
589 const typename DH<dim,spacedim>::active_cell_iterator &cell,
590 typename DerivativeDescription::Derivative &derivative);
609 DEAL_II_NAMESPACE_CLOSE
static void approximate_derivative(const Mapping< dim, spacedim > &mapping, const DH< dim, spacedim > &dof, const InputVector &solution, const unsigned int component, Vector< float > &derivative_norm)
static void approximate(SynchronousIterators< std_cxx1x::tuple< typename DH< dim, spacedim >::active_cell_iterator, Vector< float >::iterator > > const &cell, const Mapping< dim, spacedim > &mapping, const DH< dim, spacedim > &dof, const InputVector &solution, const unsigned int component)
static void symmetrize(Derivative &derivative_tensor)
DeclException2(ExcInvalidVectorLength, int, int,<< "Vector has length "<< arg1<< ", but should have "<< arg2)
std::pair< unsigned int, unsigned int > IndexInterval
DeclException0(ExcInsufficientDirections)
static const UpdateFlags update_flags
Tensor< 2, dim > Derivative
static const UpdateFlags update_flags
static void approximate_cell(const Mapping< dim, spacedim > &mapping, const DH< dim, spacedim > &dof, const InputVector &solution, const unsigned int component, const typename DH< dim, spacedim >::active_cell_iterator &cell, typename DerivativeDescription::Derivative &derivative)
Tensor< 2, dim > ProjectedDerivative
static ProjectedDerivative get_projected_derivative(const FEValues< dim, spacedim > &fe_values, const InputVector &solution, const unsigned int component)
Tensor< 3, dim > Derivative
static void approximate_derivative_tensor(const Mapping< dim, spacedim > &mapping, const DH< dim, spacedim > &dof, const InputVector &solution, const typename DH< dim, spacedim >::active_cell_iterator &cell, Tensor< order, dim > &derivative, const unsigned int component=0)
static void symmetrize(Derivative &derivative_tensor)
static void approximate_gradient(const Mapping< dim, spacedim > &mapping, const DH< dim, spacedim > &dof, const InputVector &solution, Vector< float > &derivative_norm, const unsigned int component=0)
static void approximate_second_derivative(const Mapping< dim, spacedim > &mapping, const DH< dim, spacedim > &dof, const InputVector &solution, Vector< float > &derivative_norm, const unsigned int component=0)
Tensor< 1, dim > ProjectedDerivative
static ProjectedDerivative get_projected_derivative(const FEValues< dim, spacedim > &fe_values, const InputVector &solution, const unsigned int component)
static void symmetrize(Derivative &derivative_tensor)
static double derivative_norm(const Tensor< order, dim > &derivative)
static double derivative_norm(const Derivative &d)
Tensor< 1, dim > Derivative
static const UpdateFlags update_flags
static ProjectedDerivative get_projected_derivative(const FEValues< dim, spacedim > &fe_values, const InputVector &solution, const unsigned int component)
static double derivative_norm(const Derivative &d)
static double derivative_norm(const Derivative &d)
double ProjectedDerivative