16 #ifndef dealii__error_estimator_h 17 #define dealii__error_estimator_h 20 #include <deal.II/base/config.h> 21 #include <deal.II/base/exceptions.h> 22 #include <deal.II/base/function.h> 23 #include <deal.II/dofs/function_map.h> 24 #include <deal.II/fe/component_mask.h> 27 DEAL_II_NAMESPACE_OPEN
30 template <
int,
int>
class Mapping;
35 template <
int>
class QCollection;
250 template <
int dim,
int spacedim=dim>
328 template <
typename InputVector,
typename DoFHandlerType>
331 const DoFHandlerType &dof,
334 const InputVector &solution,
347 template <
typename InputVector,
typename DoFHandlerType>
349 (
const DoFHandlerType &dof,
352 const InputVector &solution,
374 template <
typename InputVector,
typename DoFHandlerType>
377 const DoFHandlerType &dof,
380 const std::vector<const InputVector *> &solutions,
393 template <
typename InputVector,
typename DoFHandlerType>
395 (
const DoFHandlerType &dof,
398 const std::vector<const InputVector *> &solutions,
412 template <
typename InputVector,
typename DoFHandlerType>
415 const DoFHandlerType &dof,
418 const InputVector &solution,
432 template <
typename InputVector,
typename DoFHandlerType>
434 (
const DoFHandlerType &dof,
437 const InputVector &solution,
451 template <
typename InputVector,
typename DoFHandlerType>
454 const DoFHandlerType &dof,
457 const std::vector<const InputVector *> &solutions,
471 template <
typename InputVector,
typename DoFHandlerType>
473 (
const DoFHandlerType &dof,
476 const std::vector<const InputVector *> &solutions,
489 "You provided a ComponentMask argument that is invalid. " 490 "Component masks need to be either default constructed " 491 "(in which case they indicate that every component is " 492 "selected) or need to have a length equal to the number " 493 "of vector components of the finite element in use " 494 "by the DoFHandler object. In the latter case, at " 495 "least one component needs to be selected.");
500 "If you do specify the argument for a (possibly " 501 "spatially variable) coefficient function for this function, " 502 "then it needs to refer to a coefficient that is either " 503 "scalar (has one vector component) or has as many vector " 504 "components as there are in the finite element used by " 505 "the DoFHandler argument.");
513 <<
"You provided a function map that for boundary indicator " 514 << arg1 <<
" specifies a function with " 515 << arg2 <<
" vector components. However, the finite " 516 "element in use has " 517 << arg2 <<
" components, and these two numbers need to match.");
523 <<
"The number of input vectors, " << arg1
524 <<
" needs to be equal to the number of output vectors, " 526 <<
". This is not the case in your call of this function.");
531 "You need to specify at least one solution vector as " 548 template <
int spacedim>
574 template <
typename InputVector,
typename DoFHandlerType>
577 const DoFHandlerType &dof,
580 const InputVector &solution,
592 template <
typename InputVector,
typename DoFHandlerType>
594 (
const DoFHandlerType &dof,
597 const InputVector &solution,
618 template <
typename InputVector,
typename DoFHandlerType>
621 const DoFHandlerType &dof,
624 const std::vector<const InputVector *> &solutions,
636 template <
typename InputVector,
typename DoFHandlerType>
638 (
const DoFHandlerType &dof,
641 const std::vector<const InputVector *> &solutions,
654 template <
typename InputVector,
typename DoFHandlerType>
657 const DoFHandlerType &dof,
660 const InputVector &solution,
673 template <
typename InputVector,
typename DoFHandlerType>
675 (
const DoFHandlerType &dof,
678 const InputVector &solution,
691 template <
typename InputVector,
typename DoFHandlerType>
694 const DoFHandlerType &dof,
697 const std::vector<const InputVector *> &solutions,
710 template <
typename InputVector,
typename DoFHandlerType>
712 (
const DoFHandlerType &dof,
715 const std::vector<const InputVector *> &solutions,
727 "You provided a ComponentMask argument that is invalid. " 728 "Component masks need to be either default constructed " 729 "(in which case they indicate that every component is " 730 "selected) or need to have a length equal to the number " 731 "of vector components of the finite element in use " 732 "by the DoFHandler object. In the latter case, at " 733 "least one component needs to be selected.");
738 "If you do specify the argument for a (possibly " 739 "spatially variable) coefficient function for this function, " 740 "then it needs to refer to a coefficient that is either " 741 "scalar (has one vector component) or has as many vector " 742 "components as there are in the finite element used by " 743 "the DoFHandler argument.");
751 <<
"You provided a function map that for boundary indicator " 752 << arg1 <<
" specifies a function with " 753 << arg2 <<
" vector components. However, the finite " 754 "element in use has " 755 << arg3 <<
" components, and these two numbers need to match.");
761 <<
"The number of input vectors, " << arg1
762 <<
" needs to be equal to the number of output vectors, " 764 <<
". This is not the case in your call of this function.");
769 "You need to specify at least one solution vector as " 775 DEAL_II_NAMESPACE_CLOSE
static ::ExceptionBase & ExcInvalidBoundaryFunction(types::boundary_id arg1, int arg2, int arg3)
static const unsigned int invalid_unsigned_int
#define DeclException2(Exception2, type1, type2, outsequence)
static ::ExceptionBase & ExcInvalidCoefficient()
const types::subdomain_id invalid_subdomain_id
static ::ExceptionBase & ExcInvalidComponentMask()
unsigned char material_id
Abstract base class for mapping classes.
#define DeclExceptionMsg(Exception, defaulttext)
std::map< types::boundary_id, const Function< dim, Number > * > type
static ::ExceptionBase & ExcIncompatibleNumberOfElements(int arg1, int arg2)
unsigned int subdomain_id
the boundary residual estimator with the factor .
Kelly error estimator with the factor .
unsigned char boundary_id
#define DeclException3(Exception3, type1, type2, type3, outsequence)
Kelly error estimator with the factor .
const types::material_id invalid_material_id
static void estimate(const Mapping< dim, spacedim > &mapping, const DoFHandlerType &dof, const Quadrature< dim-1 > &quadrature, const typename FunctionMap< spacedim >::type &neumann_bc, const InputVector &solution, Vector< float > &error, const ComponentMask &component_mask=ComponentMask(), const Function< spacedim > *coefficients=0, const unsigned int n_threads=numbers::invalid_unsigned_int, const types::subdomain_id subdomain_id=numbers::invalid_subdomain_id, const types::material_id material_id=numbers::invalid_material_id, const Strategy strategy=cell_diameter_over_24)
static ::ExceptionBase & ExcNoSolutions()