16 #ifndef dealii_error_estimator_h 17 #define dealii_error_estimator_h 20 #include <deal.II/base/config.h> 22 #include <deal.II/base/exceptions.h> 23 #include <deal.II/base/function.h> 25 #include <deal.II/dofs/deprecated_function_map.h> 27 #include <deal.II/fe/component_mask.h> 31 DEAL_II_NAMESPACE_OPEN
258 template <
int dim,
int spacedim = dim>
269 cell_diameter_over_24 = 0,
337 template <
typename InputVector,
typename DoFHandlerType>
341 const DoFHandlerType & dof,
346 const InputVector & solution,
347 Vector<float> & error,
353 const Strategy strategy = cell_diameter_over_24);
359 template <
typename InputVector,
typename DoFHandlerType>
362 const DoFHandlerType & dof,
367 const InputVector & solution,
368 Vector<float> & error,
374 const Strategy strategy = cell_diameter_over_24);
389 template <
typename InputVector,
typename DoFHandlerType>
393 const DoFHandlerType & dof,
398 const std::vector<const InputVector *> &solutions,
399 std::vector<Vector<float> *> & errors,
405 const Strategy strategy = cell_diameter_over_24);
411 template <
typename InputVector,
typename DoFHandlerType>
414 const DoFHandlerType & dof,
419 const std::vector<const InputVector *> &solutions,
420 std::vector<Vector<float> *> & errors,
426 const Strategy strategy = cell_diameter_over_24);
433 template <
typename InputVector,
typename DoFHandlerType>
437 const DoFHandlerType & dof,
442 const InputVector & solution,
443 Vector<float> & error,
449 const Strategy strategy = cell_diameter_over_24);
456 template <
typename InputVector,
typename DoFHandlerType>
459 const DoFHandlerType & dof,
464 const InputVector & solution,
465 Vector<float> & error,
471 const Strategy strategy = cell_diameter_over_24);
478 template <
typename InputVector,
typename DoFHandlerType>
482 const DoFHandlerType & dof,
487 const std::vector<const InputVector *> &solutions,
488 std::vector<Vector<float> *> & errors,
494 const Strategy strategy = cell_diameter_over_24);
501 template <
typename InputVector,
typename DoFHandlerType>
504 const DoFHandlerType & dof,
509 const std::vector<const InputVector *> &solutions,
510 std::vector<Vector<float> *> & errors,
516 const Strategy strategy = cell_diameter_over_24);
522 "You provided a ComponentMask argument that is invalid. " 523 "Component masks need to be either default constructed " 524 "(in which case they indicate that every component is " 525 "selected) or need to have a length equal to the number " 526 "of vector components of the finite element in use " 527 "by the DoFHandler object. In the latter case, at " 528 "least one component needs to be selected.");
533 ExcInvalidCoefficient,
534 "If you do specify the argument for a (possibly " 535 "spatially variable) coefficient function for this function, " 536 "then it needs to refer to a coefficient that is either " 537 "scalar (has one vector component) or has as many vector " 538 "components as there are in the finite element used by " 539 "the DoFHandler argument.");
547 <<
"You provided a function map that for boundary indicator " 548 << arg1 <<
" specifies a function with " << arg2
549 <<
" vector components. However, the finite " 550 "element in use has " 552 <<
" components, and these two numbers need to match.");
559 <<
"The number of input vectors, " << arg1
560 <<
" needs to be equal to the number of output vectors, " 562 <<
". This is not the case in your call of this function.");
567 "You need to specify at least one solution vector as " 584 template <
int spacedim>
595 cell_diameter_over_24 = 0,
625 template <
typename InputVector,
typename DoFHandlerType>
629 const DoFHandlerType & dof,
634 const InputVector & solution,
635 Vector<float> & error,
641 const Strategy strategy = cell_diameter_over_24);
647 template <
typename InputVector,
typename DoFHandlerType>
650 const DoFHandlerType &dof,
655 const InputVector & solution,
656 Vector<float> & error,
662 const Strategy strategy = cell_diameter_over_24);
677 template <
typename InputVector,
typename DoFHandlerType>
681 const DoFHandlerType & dof,
686 const std::vector<const InputVector *> &solutions,
687 std::vector<Vector<float> *> & errors,
693 const Strategy strategy = cell_diameter_over_24);
699 template <
typename InputVector,
typename DoFHandlerType>
702 const DoFHandlerType &dof,
707 const std::vector<const InputVector *> &solutions,
708 std::vector<Vector<float> *> & errors,
714 const Strategy strategy = cell_diameter_over_24);
721 template <
typename InputVector,
typename DoFHandlerType>
725 const DoFHandlerType & dof,
730 const InputVector & solution,
731 Vector<float> & error,
737 const Strategy strategy = cell_diameter_over_24);
744 template <
typename InputVector,
typename DoFHandlerType>
747 const DoFHandlerType & dof,
752 const InputVector & solution,
753 Vector<float> & error,
759 const Strategy strategy = cell_diameter_over_24);
766 template <
typename InputVector,
typename DoFHandlerType>
770 const DoFHandlerType & dof,
775 const std::vector<const InputVector *> &solutions,
776 std::vector<Vector<float> *> & errors,
782 const Strategy strategy = cell_diameter_over_24);
789 template <
typename InputVector,
typename DoFHandlerType>
792 const DoFHandlerType & dof,
797 const std::vector<const InputVector *> &solutions,
798 std::vector<Vector<float> *> & errors,
804 const Strategy strategy = cell_diameter_over_24);
810 "You provided a ComponentMask argument that is invalid. " 811 "Component masks need to be either default constructed " 812 "(in which case they indicate that every component is " 813 "selected) or need to have a length equal to the number " 814 "of vector components of the finite element in use " 815 "by the DoFHandler object. In the latter case, at " 816 "least one component needs to be selected.");
821 ExcInvalidCoefficient,
822 "If you do specify the argument for a (possibly " 823 "spatially variable) coefficient function for this function, " 824 "then it needs to refer to a coefficient that is either " 825 "scalar (has one vector component) or has as many vector " 826 "components as there are in the finite element used by " 827 "the DoFHandler argument.");
835 <<
"You provided a function map that for boundary indicator " 836 << arg1 <<
" specifies a function with " << arg2
837 <<
" vector components. However, the finite " 838 "element in use has " 840 <<
" components, and these two numbers need to match.");
847 <<
"The number of input vectors, " << arg1
848 <<
" needs to be equal to the number of output vectors, " 850 <<
". This is not the case in your call of this function.");
855 "You need to specify at least one solution vector as " 861 DEAL_II_NAMESPACE_CLOSE
static const unsigned int invalid_unsigned_int
#define DeclException2(Exception2, type1, type2, outsequence)
const types::subdomain_id invalid_subdomain_id
unsigned int subdomain_id
Abstract base class for mapping classes.
#define DeclExceptionMsg(Exception, defaulttext)
#define DeclException3(Exception3, type1, type2, type3, outsequence)
const types::material_id invalid_material_id