Reference documentation for deal.II version 9.6.1
 
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Loading...
Searching...
No Matches
KellyErrorEstimator< 1, spacedim > Class Template Reference

#include <deal.II/numerics/error_estimator.h>

Inheritance diagram for KellyErrorEstimator< 1, spacedim >:

Public Types

enum  Strategy { cell_diameter_over_24 = 0 , face_diameter_over_twice_max_degree , cell_diameter }
 
enum  Strategy
 

Static Public Member Functions

template<typename Number>
static void estimate (const Mapping< 1, spacedim > &mapping, const DoFHandler< 1, spacedim > &dof, const Quadrature< 0 > &quadrature, const std::map< types::boundary_id, const Function< spacedim, Number > * > &neumann_bc, const ReadVector< Number > &solution, Vector< float > &error, const ComponentMask &component_mask={}, const Function< spacedim > *coefficient=nullptr, 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)
 
template<typename Number>
static void estimate (const DoFHandler< 1, spacedim > &dof, const Quadrature< 0 > &quadrature, const std::map< types::boundary_id, const Function< spacedim, Number > * > &neumann_bc, const ReadVector< Number > &solution, Vector< float > &error, const ComponentMask &component_mask={}, const Function< spacedim > *coefficients=nullptr, 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)
 
template<typename Number>
static void estimate (const Mapping< 1, spacedim > &mapping, const DoFHandler< 1, spacedim > &dof, const Quadrature< 0 > &quadrature, const std::map< types::boundary_id, const Function< spacedim, Number > * > &neumann_bc, const ArrayView< const ReadVector< Number > * > &solutions, ArrayView< Vector< float > * > &errors, const ComponentMask &component_mask={}, const Function< spacedim > *coefficients=nullptr, 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)
 
template<typename Number>
static void estimate (const DoFHandler< 1, spacedim > &dof, const Quadrature< 0 > &quadrature, const std::map< types::boundary_id, const Function< spacedim, Number > * > &neumann_bc, const ArrayView< const ReadVector< Number > * > &solutions, ArrayView< Vector< float > * > &errors, const ComponentMask &component_mask={}, const Function< spacedim > *coefficients=nullptr, 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)
 
template<typename Number>
static void estimate (const Mapping< 1, spacedim > &mapping, const DoFHandler< 1, spacedim > &dof, const hp::QCollection< 0 > &quadrature, const std::map< types::boundary_id, const Function< spacedim, Number > * > &neumann_bc, const ReadVector< Number > &solution, Vector< float > &error, const ComponentMask &component_mask={}, const Function< spacedim > *coefficients=nullptr, 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)
 
template<typename Number>
static void estimate (const DoFHandler< 1, spacedim > &dof, const hp::QCollection< 0 > &quadrature, const std::map< types::boundary_id, const Function< spacedim, Number > * > &neumann_bc, const ReadVector< Number > &solution, Vector< float > &error, const ComponentMask &component_mask={}, const Function< spacedim > *coefficients=nullptr, 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)
 
template<typename Number>
static void estimate (const Mapping< 1, spacedim > &mapping, const DoFHandler< 1, spacedim > &dof, const hp::QCollection< 0 > &quadrature, const std::map< types::boundary_id, const Function< spacedim, Number > * > &neumann_bc, const ArrayView< const ReadVector< Number > * > &solutions, ArrayView< Vector< float > * > &errors, const ComponentMask &component_mask={}, const Function< spacedim > *coefficients=nullptr, 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)
 
template<typename Number>
static void estimate (const DoFHandler< 1, spacedim > &dof, const hp::QCollection< 0 > &quadrature, const std::map< types::boundary_id, const Function< spacedim, Number > * > &neumann_bc, const ArrayView< const ReadVector< Number > * > &solutions, ArrayView< Vector< float > * > &errors, const ComponentMask &component_mask={}, const Function< spacedim > *coefficients=nullptr, 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 ::ExceptionBaseExcInvalidComponentMask ()
 
static ::ExceptionBaseExcInvalidCoefficient ()
 
static ::ExceptionBaseExcInvalidBoundaryFunction (types::boundary_id arg1, int arg2, int arg3)
 
static ::ExceptionBaseExcIncompatibleNumberOfElements (int arg1, int arg2)
 
static ::ExceptionBaseExcNoSolutions ()
 
static void estimate (const Mapping< dim, spacedim > &mapping, const DoFHandler< dim, spacedim > &dof, const Quadrature< dim - 1 > &quadrature, const std::map< types::boundary_id, const Function< spacedim, Number > * > &neumann_bc, const ReadVector< Number > &solution, Vector< float > &error, const ComponentMask &component_mask={}, const Function< spacedim > *coefficients=nullptr, 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 void estimate (const DoFHandler< dim, spacedim > &dof, const Quadrature< dim - 1 > &quadrature, const std::map< types::boundary_id, const Function< spacedim, Number > * > &neumann_bc, const ReadVector< Number > &solution, Vector< float > &error, const ComponentMask &component_mask={}, const Function< spacedim > *coefficients=nullptr, 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 void estimate (const Mapping< dim, spacedim > &mapping, const DoFHandler< dim, spacedim > &dof, const Quadrature< dim - 1 > &quadrature, const std::map< types::boundary_id, const Function< spacedim, Number > * > &neumann_bc, const ArrayView< const ReadVector< Number > * > &solutions, ArrayView< Vector< float > * > &errors, const ComponentMask &component_mask={}, const Function< spacedim > *coefficients=nullptr, 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 void estimate (const DoFHandler< dim, spacedim > &dof, const Quadrature< dim - 1 > &quadrature, const std::map< types::boundary_id, const Function< spacedim, Number > * > &neumann_bc, const ArrayView< const ReadVector< Number > * > &solutions, ArrayView< Vector< float > * > &errors, const ComponentMask &component_mask={}, const Function< spacedim > *coefficients=nullptr, 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 void estimate (const Mapping< dim, spacedim > &mapping, const DoFHandler< dim, spacedim > &dof, const hp::QCollection< dim - 1 > &quadrature, const std::map< types::boundary_id, const Function< spacedim, Number > * > &neumann_bc, const ReadVector< Number > &solution, Vector< float > &error, const ComponentMask &component_mask={}, const Function< spacedim > *coefficients=nullptr, 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 void estimate (const DoFHandler< dim, spacedim > &dof, const hp::QCollection< dim - 1 > &quadrature, const std::map< types::boundary_id, const Function< spacedim, Number > * > &neumann_bc, const ReadVector< Number > &solution, Vector< float > &error, const ComponentMask &component_mask={}, const Function< spacedim > *coefficients=nullptr, 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 void estimate (const Mapping< dim, spacedim > &mapping, const DoFHandler< dim, spacedim > &dof, const hp::QCollection< dim - 1 > &quadrature, const std::map< types::boundary_id, const Function< spacedim, Number > * > &neumann_bc, const ArrayView< const ReadVector< Number > * > &solutions, ArrayView< Vector< float > * > &errors, const ComponentMask &component_mask={}, const Function< spacedim > *coefficients=nullptr, 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 void estimate (const DoFHandler< dim, spacedim > &dof, const hp::QCollection< dim - 1 > &quadrature, const std::map< types::boundary_id, const Function< spacedim, Number > * > &neumann_bc, const ArrayView< const ReadVector< Number > * > &solutions, ArrayView< Vector< float > * > &errors, const ComponentMask &component_mask={}, const Function< spacedim > *coefficients=nullptr, 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 ::ExceptionBaseExcInvalidComponentMask ()
 
static ::ExceptionBaseExcInvalidCoefficient ()
 
static ::ExceptionBaseExcInvalidBoundaryFunction (types::boundary_id arg1, int arg2, int arg3)
 
static ::ExceptionBaseExcIncompatibleNumberOfElements (int arg1, int arg2)
 
static ::ExceptionBaseExcNoSolutions ()
 

Detailed Description

template<int spacedim>
class KellyErrorEstimator< 1, spacedim >

This is a specialization of the general template for 1d. The implementation is sufficiently different for 1d to justify this specialization. The basic difference between 1d and all other space dimensions is that in 1d, there are no faces of cells, just the vertices between line segments, so we have to compute the jump terms differently. However, this class offers exactly the same public functions as the general template, so that a user will not see any difference.

Definition at line 578 of file error_estimator.h.

Member Enumeration Documentation

◆ Strategy [1/2]

template<int spacedim>
enum KellyErrorEstimator< 1, spacedim >::Strategy

The enum type given to the class functions to decide on the scaling factors of the face integrals.

Enumerator
cell_diameter_over_24 

Kelly error estimator with the factor $\frac {h_K}{24}$.

face_diameter_over_twice_max_degree 

the boundary residual estimator with the factor $\frac {h_F}{2
max(p^+,p^-)}$.

cell_diameter 

Kelly error estimator with the factor $h_K$.

Definition at line 585 of file error_estimator.h.

◆ Strategy [2/2]

The enum type given to the class functions to decide on the scaling factors of the face integrals.

Definition at line 269 of file error_estimator.h.

Member Function Documentation

◆ estimate() [1/16]

template<int spacedim>
template<typename Number>
void KellyErrorEstimator< 1, spacedim >::estimate ( const Mapping< 1, spacedim > & mapping,
const DoFHandler< 1, spacedim > & dof,
const Quadrature< 0 > & quadrature,
const std::map< types::boundary_id, const Function< spacedim, Number > * > & neumann_bc,
const ReadVector< Number > & solution,
Vector< float > & error,
const ComponentMask & component_mask = {},
const Function< spacedim > * coefficient = nullptr,
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

Implementation of the error estimator described above. You may give a coefficient, but there is a default value which denotes the constant coefficient with value one. The coefficient function may either be a scalar one, in which case it is used for all components of the finite element, or a vector-valued one with as many components as there are in the finite element; in the latter case, each component is weighted by the respective component in the coefficient.

You might give a list of components you want to evaluate, in case the finite element used by the DoFHandler object is vector-valued. You then have to set those entries to true in the bit-vector component_mask for which the respective component is to be used in the error estimator. The default is to use all components, which is done by either providing a bit-vector with all-set entries, or an empty bit-vector. All the other parameters are as in the general case used for 2d and higher.

The parameter n_threads is no longer used and will be ignored. Multithreading is not presently implemented for 1d, but we retain the respective parameter for compatibility with the function signature in the general case.

Definition at line 59 of file error_estimator_1d.cc.

◆ estimate() [2/16]

template<int spacedim>
template<typename Number>
void KellyErrorEstimator< 1, spacedim >::estimate ( const DoFHandler< 1, spacedim > & dof,
const Quadrature< 0 > & quadrature,
const std::map< types::boundary_id, const Function< spacedim, Number > * > & neumann_bc,
const ReadVector< Number > & solution,
Vector< float > & error,
const ComponentMask & component_mask = {},
const Function< spacedim > * coefficients = nullptr,
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

Call the estimate function, see above, with mapping=MappingQ1<1>().

Definition at line 97 of file error_estimator_1d.cc.

◆ estimate() [3/16]

template<int spacedim>
template<typename Number>
void KellyErrorEstimator< 1, spacedim >::estimate ( const Mapping< 1, spacedim > & mapping,
const DoFHandler< 1, spacedim > & dof,
const Quadrature< 0 > & quadrature,
const std::map< types::boundary_id, const Function< spacedim, Number > * > & neumann_bc,
const ArrayView< const ReadVector< Number > * > & solutions,
ArrayView< Vector< float > * > & errors,
const ComponentMask & component_mask = {},
const Function< spacedim > * coefficients = nullptr,
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

Same function as above, but accepts more than one solution vectors and returns one error vector for each solution vector. For the reason of existence of this function, see the general documentation of this class.

Since we do not want to force the user of this function to copy around their solution vectors, the vector of solution vectors takes pointers to the solutions, rather than being a vector of vectors. This makes it simpler to have the solution vectors somewhere in memory, rather than to have them collected somewhere special. (Note that it is not possible to construct of vector of references, so we had to use a vector of pointers.)

Definition at line 528 of file error_estimator_1d.cc.

◆ estimate() [4/16]

template<int spacedim>
template<typename Number>
void KellyErrorEstimator< 1, spacedim >::estimate ( const DoFHandler< 1, spacedim > & dof,
const Quadrature< 0 > & quadrature,
const std::map< types::boundary_id, const Function< spacedim, Number > * > & neumann_bc,
const ArrayView< const ReadVector< Number > * > & solutions,
ArrayView< Vector< float > * > & errors,
const ComponentMask & component_mask = {},
const Function< spacedim > * coefficients = nullptr,
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

Call the estimate function, see above, with mapping=MappingQ1<1>().

Definition at line 131 of file error_estimator_1d.cc.

◆ estimate() [5/16]

template<int spacedim>
template<typename Number>
void KellyErrorEstimator< 1, spacedim >::estimate ( const Mapping< 1, spacedim > & mapping,
const DoFHandler< 1, spacedim > & dof,
const hp::QCollection< 0 > & quadrature,
const std::map< types::boundary_id, const Function< spacedim, Number > * > & neumann_bc,
const ReadVector< Number > & solution,
Vector< float > & error,
const ComponentMask & component_mask = {},
const Function< spacedim > * coefficients = nullptr,
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

Equivalent to the set of functions above, except that this one takes a quadrature collection for hp-finite element dof handlers.

Definition at line 165 of file error_estimator_1d.cc.

◆ estimate() [6/16]

template<int spacedim>
template<typename Number>
void KellyErrorEstimator< 1, spacedim >::estimate ( const DoFHandler< 1, spacedim > & dof,
const hp::QCollection< 0 > & quadrature,
const std::map< types::boundary_id, const Function< spacedim, Number > * > & neumann_bc,
const ReadVector< Number > & solution,
Vector< float > & error,
const ComponentMask & component_mask = {},
const Function< spacedim > * coefficients = nullptr,
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

Equivalent to the set of functions above, except that this one takes a quadrature collection for hp-finite element dof handlers.

Definition at line 203 of file error_estimator_1d.cc.

◆ estimate() [7/16]

template<int spacedim>
template<typename Number>
void KellyErrorEstimator< 1, spacedim >::estimate ( const Mapping< 1, spacedim > & mapping,
const DoFHandler< 1, spacedim > & dof,
const hp::QCollection< 0 > & quadrature,
const std::map< types::boundary_id, const Function< spacedim, Number > * > & neumann_bc,
const ArrayView< const ReadVector< Number > * > & solutions,
ArrayView< Vector< float > * > & errors,
const ComponentMask & component_mask = {},
const Function< spacedim > * coefficients = nullptr,
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

Equivalent to the set of functions above, except that this one takes a quadrature collection for hp-finite element dof handlers.

Definition at line 271 of file error_estimator_1d.cc.

◆ estimate() [8/16]

template<int spacedim>
template<typename Number>
void KellyErrorEstimator< 1, spacedim >::estimate ( const DoFHandler< 1, spacedim > & dof,
const hp::QCollection< 0 > & quadrature,
const std::map< types::boundary_id, const Function< spacedim, Number > * > & neumann_bc,
const ArrayView< const ReadVector< Number > * > & solutions,
ArrayView< Vector< float > * > & errors,
const ComponentMask & component_mask = {},
const Function< spacedim > * coefficients = nullptr,
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

Equivalent to the set of functions above, except that this one takes a quadrature collection for hp-finite element dof handlers.

Definition at line 237 of file error_estimator_1d.cc.

◆ estimate() [9/16]

static void KellyErrorEstimator< dim, spacedim >::estimate ( const Mapping< dim, spacedim > & mapping,
const DoFHandler< dim, spacedim > & dof,
const Quadrature< dim - 1 > & quadrature,
const std::map< types::boundary_id, const Function< spacedim, Number > * > & neumann_bc,
const ReadVector< Number > & solution,
Vector< float > & error,
const ComponentMask & component_mask = {},
const Function< spacedim > * coefficients = nullptr,
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

Implementation of the error estimator described above. You may give a coefficient, but there is a default value which denotes the constant coefficient with value one. The coefficient function may either be a scalar one, in which case it is used for all components of the finite element, or a vector-valued one with as many components as there are in the finite element; in the latter case, each component is weighted by the respective component in the coefficient.

You might give a list of components you want to evaluate, in case the finite element used by the DoFHandler object is vector-valued. You then have to set those entries to true in the bit-vector component_mask (see GlossComponentMask ) for which the respective component is to be used in the error estimator. The default is to use all components, which is done by either providing a bit-vector with all-set entries, or an empty bit-vector.

The subdomain_id parameter indicates whether we shall compute indicators for all cells (in case its value is the default, numbers::invalid_unsigned_int), or only for the cells belonging to a certain subdomain with the given indicator. The latter case is used for parallel computations where all processor nodes have the global grid stored, and could well compute all the indicators for all cells themselves, but where it is more efficient to have each process compute only indicators for the cells it owns, and have them exchange the resulting information afterwards. This is in particular true for the case where meshes are very large and computing indicators for every cell is too expensive, while computing indicators for only local cells is acceptable. Note that if you only ask for the indicators of a certain subdomain to be computed, you must nevertheless make sure that this function has access to the correct node values of all degrees of freedom. This is since the function needs to access DoF values on neighboring cells as well, even if they belong to a different subdomain.

The material_id parameter has a similar meaning: if not set to its default value (which is numbers::invalid_material_id), it means that indicators will only be computed for cells with this particular material id.

The n_threads parameter used to indicate the number of threads to be used to compute the error estimator. This parameter is now ignored, with the number of threads determined automatically. The parameter is retained for compatibility with old versions of the library.

The strategy parameter is used to choose the scaling factor for the integral over cell's faces.

Note
If the DoFHandler object given as an argument to this function builds on a parallel::distributed::Triangulation, this function skips computations on all cells that are not locally owned. In that case, the only valid value for the subdomain_id argument (besides the invalid value) is the subdomain id that is associated with the currently processor, as reported by parallel::distributed::Triangulation::locally_owned_subdomain(). Even though nothing is computed on cells that we don't locally own, the error indicator vector must still have a length equal to the number of active cell in the mesh as reported by parallel::distributed::Triangulation::n_locally_owned_active_cells().

◆ estimate() [10/16]

static void KellyErrorEstimator< dim, spacedim >::estimate ( const DoFHandler< dim, spacedim > & dof,
const Quadrature< dim - 1 > & quadrature,
const std::map< types::boundary_id, const Function< spacedim, Number > * > & neumann_bc,
const ReadVector< Number > & solution,
Vector< float > & error,
const ComponentMask & component_mask = {},
const Function< spacedim > * coefficients = nullptr,
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

Call the estimate function, see above, with mapping=MappingQ<dim>(1).

◆ estimate() [11/16]

static void KellyErrorEstimator< dim, spacedim >::estimate ( const Mapping< dim, spacedim > & mapping,
const DoFHandler< dim, spacedim > & dof,
const Quadrature< dim - 1 > & quadrature,
const std::map< types::boundary_id, const Function< spacedim, Number > * > & neumann_bc,
const ArrayView< const ReadVector< Number > * > & solutions,
ArrayView< Vector< float > * > & errors,
const ComponentMask & component_mask = {},
const Function< spacedim > * coefficients = nullptr,
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

Same function as above, but accepts more than one solution vector and returns one error vector for each solution vector. For the reason of existence of this function, see the general documentation of this class.

Since we do not want to force the user of this function to copy around their solution vectors, the ArrayView of solution vectors takes pointers to the solutions, rather than being a vector of vectors. This makes it simpler to have the solution vectors somewhere in memory, rather than to have them collected somewhere special. (Note that it is not possible to construct of vector of references, so we had to use a vector of pointers.)

◆ estimate() [12/16]

static void KellyErrorEstimator< dim, spacedim >::estimate ( const DoFHandler< dim, spacedim > & dof,
const Quadrature< dim - 1 > & quadrature,
const std::map< types::boundary_id, const Function< spacedim, Number > * > & neumann_bc,
const ArrayView< const ReadVector< Number > * > & solutions,
ArrayView< Vector< float > * > & errors,
const ComponentMask & component_mask = {},
const Function< spacedim > * coefficients = nullptr,
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

Call the estimate function, see above, with mapping=MappingQ<dim>(1).

◆ estimate() [13/16]

static void KellyErrorEstimator< dim, spacedim >::estimate ( const Mapping< dim, spacedim > & mapping,
const DoFHandler< dim, spacedim > & dof,
const hp::QCollection< dim - 1 > & quadrature,
const std::map< types::boundary_id, const Function< spacedim, Number > * > & neumann_bc,
const ReadVector< Number > & solution,
Vector< float > & error,
const ComponentMask & component_mask = {},
const Function< spacedim > * coefficients = nullptr,
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

Equivalent to the set of functions above, except that this one takes a quadrature collection for hp-finite element dof handlers.

◆ estimate() [14/16]

static void KellyErrorEstimator< dim, spacedim >::estimate ( const DoFHandler< dim, spacedim > & dof,
const hp::QCollection< dim - 1 > & quadrature,
const std::map< types::boundary_id, const Function< spacedim, Number > * > & neumann_bc,
const ReadVector< Number > & solution,
Vector< float > & error,
const ComponentMask & component_mask = {},
const Function< spacedim > * coefficients = nullptr,
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

Equivalent to the set of functions above, except that this one takes a quadrature collection for hp-finite element dof handlers.

◆ estimate() [15/16]

static void KellyErrorEstimator< dim, spacedim >::estimate ( const Mapping< dim, spacedim > & mapping,
const DoFHandler< dim, spacedim > & dof,
const hp::QCollection< dim - 1 > & quadrature,
const std::map< types::boundary_id, const Function< spacedim, Number > * > & neumann_bc,
const ArrayView< const ReadVector< Number > * > & solutions,
ArrayView< Vector< float > * > & errors,
const ComponentMask & component_mask = {},
const Function< spacedim > * coefficients = nullptr,
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

Equivalent to the set of functions above, except that this one takes a quadrature collection for hp-finite element dof handlers.

◆ estimate() [16/16]

static void KellyErrorEstimator< dim, spacedim >::estimate ( const DoFHandler< dim, spacedim > & dof,
const hp::QCollection< dim - 1 > & quadrature,
const std::map< types::boundary_id, const Function< spacedim, Number > * > & neumann_bc,
const ArrayView< const ReadVector< Number > * > & solutions,
ArrayView< Vector< float > * > & errors,
const ComponentMask & component_mask = {},
const Function< spacedim > * coefficients = nullptr,
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

Equivalent to the set of functions above, except that this one takes a quadrature collection for hp-finite element dof handlers.

◆ ExcInvalidComponentMask()

static ::ExceptionBase & KellyErrorEstimator< dim, spacedim >::ExcInvalidComponentMask ( )
static

Exception

Note
The message that will be printed by this exception reads:
"You provided a ComponentMask argument that is invalid. " "Component masks need to be either default constructed " "(in which case they indicate that every component is " "selected) or need to have a length equal to the number " "of vector components of the finite element in use " "by the DoFHandler object. In the latter case, at " "least one component needs to be selected."

◆ ExcInvalidCoefficient()

static ::ExceptionBase & KellyErrorEstimator< dim, spacedim >::ExcInvalidCoefficient ( )
static

Exception

Note
The message that will be printed by this exception reads:
"If you do specify the argument for a (possibly " "spatially variable) coefficient function for this function, " "then it needs to refer to a coefficient that is either " "scalar (has one vector component) or has as many vector " "components as there are in the finite element used by " "the DoFHandler argument."

◆ ExcInvalidBoundaryFunction()

static ::ExceptionBase & KellyErrorEstimator< dim, spacedim >::ExcInvalidBoundaryFunction ( types::boundary_id arg1,
int arg2,
int arg3 )
static

Exception

Note
The message that will be printed by this exception reads:
<< "You provided a function map that for boundary indicator " << arg1 << " specifies a function with " << arg2 << " vector components. However, the finite " "element in use has " << arg3 << " components, and these two numbers need to match."

◆ ExcIncompatibleNumberOfElements()

static ::ExceptionBase & KellyErrorEstimator< dim, spacedim >::ExcIncompatibleNumberOfElements ( int arg1,
int arg2 )
static

Exception

Note
The message that will be printed by this exception reads:
<< "The number of input vectors, " << arg1 << " needs to be equal to the number of output vectors, " << arg2 << ". This is not the case in your call of this function."

◆ ExcNoSolutions()

static ::ExceptionBase & KellyErrorEstimator< dim, spacedim >::ExcNoSolutions ( )
static

Exception

Note
The message that will be printed by this exception reads:
"You need to specify at least one solution vector as " "input."

The documentation for this class was generated from the following files: