Hermes2D  2.0
Hermes::Hermes2D::BasicKellyAdapt< Scalar > Class Template Reference

Simple Kelly-estimator based adaptivity for elliptic problems. More...

#include <kelly_type_adapt.h>

+ Inheritance diagram for Hermes::Hermes2D::BasicKellyAdapt< Scalar >:

Classes

class  ErrorEstimatorFormKelly
 

Public Member Functions

 BasicKellyAdapt (Hermes::vector< Space< Scalar > * > spaces_, double const_by_laplacian=1.0, Hermes::vector< ProjNormType > norms_=Hermes::vector< ProjNormType >())
 
 BasicKellyAdapt (Space< Scalar > *space_, double const_by_laplacian=1.0, ProjNormType norm_=HERMES_UNSET_NORM)
 
- Public Member Functions inherited from Hermes::Hermes2D::KellyTypeAdapt< Scalar >
 KellyTypeAdapt (Hermes::vector< Space< Scalar > * > spaces, bool ignore_visited_segments=true, Hermes::vector< const InterfaceEstimatorScalingFunction * > interface_scaling_fns_=Hermes::vector< const InterfaceEstimatorScalingFunction * >(), Hermes::vector< ProjNormType > norms_=Hermes::vector< ProjNormType >())
 
 KellyTypeAdapt (Space< Scalar > *space, bool ignore_visited_segments=true, const InterfaceEstimatorScalingFunction *interface_scaling_fn_=NULL, ProjNormType norm_=HERMES_UNSET_NORM)
 
virtual ~KellyTypeAdapt ()
 Destructor.
 
Mesh::ElementMarkersConversion * get_element_markers_conversion ()
 
Mesh::BoundaryMarkersConversion * get_boundary_markers_conversion ()
 
void add_error_estimator_vol (ErrorEstimatorForm *form)
 
void add_error_estimator_surf (ErrorEstimatorForm *form)
 
double calc_err_est (Solution< Scalar > *sln, unsigned int error_flags=HERMES_TOTAL_ERROR_REL|HERMES_ELEMENT_ERROR_REL)
 
double calc_err_est (Hermes::vector< Solution< Scalar > * > slns, Hermes::vector< double > *component_errors=NULL, unsigned int error_flags=HERMES_TOTAL_ERROR_REL|HERMES_ELEMENT_ERROR_REL)
 
bool adapt (double thr, int strat=0, int regularize=-1, double to_be_processed=0.0)
 
void disable_aposteriori_interface_scaling ()
 
void set_volumetric_scaling_const (double C)
 
void set_boundary_scaling_const (double C)
 
- Public Member Functions inherited from Hermes::Hermes2D::Adapt< Scalar >
 Adapt (Hermes::vector< Space< Scalar > * > spaces, Hermes::vector< ProjNormType > proj_norms=Hermes::vector< ProjNormType >())
 
 Adapt (Space< Scalar > *space, ProjNormType proj_norm=HERMES_UNSET_NORM)
 
virtual ~Adapt ()
 Destructor. Deallocates allocated private data.
 
void set_error_form (int i, int j, MatrixFormVolError *form)
 Sets user defined bilinear form which is used to calculate error. More...
 
void set_error_form (MatrixFormVolError *form)
 i = j = 0
 
void set_norm_form (int i, int j, MatrixFormVolError *form)
 
void set_norm_form (MatrixFormVolError *form)
 i = j = 0
 
double calc_err_est (Solution< Scalar > *sln, Solution< Scalar > *rsln, bool solutions_for_adapt=true, unsigned int error_flags=HERMES_TOTAL_ERROR_REL|HERMES_ELEMENT_ERROR_REL)
 
double calc_err_est (Hermes::vector< Solution< Scalar > * > slns, Hermes::vector< Solution< Scalar > * > rslns, Hermes::vector< double > *component_errors=NULL, bool solutions_for_adapt=true, unsigned int error_flags=HERMES_TOTAL_ERROR_REL|HERMES_ELEMENT_ERROR_REL)
 
double calc_err_exact (Solution< Scalar > *sln, Solution< Scalar > *rsln, bool solutions_for_adapt=true, unsigned int error_flags=HERMES_TOTAL_ERROR_REL|HERMES_ELEMENT_ERROR_REL)
 
double calc_err_exact (Hermes::vector< Solution< Scalar > * > slns, Hermes::vector< Solution< Scalar > * > rslns, Hermes::vector< double > *component_errors=NULL, bool solutions_for_adapt=true, unsigned int error_flags=HERMES_TOTAL_ERROR_REL|HERMES_ELEMENT_ERROR_REL)
 
bool adapt (Hermes::vector< RefinementSelectors::Selector< Scalar > * > refinement_selectors, double thr, int strat=0, int regularize=-1, double to_be_processed=0.0)
 Refines elements based on results from calc_err_est(). More...
 
bool adapt (RefinementSelectors::Selector< Scalar > *refinement_selector, double thr, int strat=0, int regularize=-1, double to_be_processed=0.0)
 Refines elements based on results from calc_err_est(). More...
 
double get_element_error_squared (int component, int id) const
 Returns a squared error of an element. More...
 

Additional Inherited Members

- Protected Member Functions inherited from Hermes::Hermes2D::KellyTypeAdapt< Scalar >
double eval_volumetric_estimator (typename KellyTypeAdapt::ErrorEstimatorForm *err_est_form, RefMap *rm)
 
double eval_boundary_estimator (typename KellyTypeAdapt::ErrorEstimatorForm *err_est_form, RefMap *rm, SurfPos *surf_pos)
 
double eval_interface_estimator (typename KellyTypeAdapt::ErrorEstimatorForm *err_est_form, RefMap *rm, SurfPos *surf_pos, LightArray< NeighborSearch< Scalar > * > &neighbor_searches, int neighbor_index)
 
double eval_solution_norm (typename Adapt< Scalar >::MatrixFormVolError *form, RefMap *rm, MeshFunction< Scalar > *sln)
 
virtual double calc_err_internal (Hermes::vector< Solution< Scalar > * > slns, Hermes::vector< double > *component_errors, unsigned int error_flags)
 
- Protected Attributes inherited from Hermes::Hermes2D::KellyTypeAdapt< Scalar >
DiscreteProblem< Scalar > dp
 
Hermes::vector< typename
KellyTypeAdapt::ErrorEstimatorForm * > 
error_estimators_vol
 
Hermes::vector< typename
KellyTypeAdapt::ErrorEstimatorForm * > 
error_estimators_surf
 
Mesh::ElementMarkersConversion element_markers_conversion
 
Mesh::BoundaryMarkersConversion boundary_markers_conversion
 
Hermes::vector< const
InterfaceEstimatorScalingFunction * > 
interface_scaling_fns
 
bool use_aposteriori_interface_scaling
 
double interface_scaling_const
 Constant scaling of the boundary error estimates. More...
 
double volumetric_scaling_const
 Constant scaling of the volumetric error estimates (like the residual norm).
 
double boundary_scaling_const
 Constant scaling of the boundary error estimates.
 
bool ignore_visited_segments
 
- Static Protected Attributes inherited from Hermes::Hermes2D::Adapt< Scalar >
static const unsigned char HERMES_TOTAL_ERROR_MASK = 0x0F
 A mask which masks-out total error type. Used by Adapt::calc_err_internal().
 
static const unsigned char HERMES_ELEMENT_ERROR_MASK = 0xF0
 A mask which masks-out element error type. Used by Adapt::calc_err_internal().
 

Detailed Description

template<typename Scalar>
class Hermes::Hermes2D::BasicKellyAdapt< Scalar >

Simple Kelly-estimator based adaptivity for elliptic problems.

Original error estimator that Kelly et. al. ([1]) derived for the Laplace equation with constant coefficient, approximated on a quadrilateral mesh. The error of each element is estimated by the L2 norm of jumps of gradients across element faces (the contribution of the residual norm is relatively insignificant and is neglected, see[3]). Note that the estimator has been successfully used also for other problems than that for which it had been originally derived.

Todo:
Add handling of boundary conditions.   Currently, the forms for the Neumann and Newton boundary conditions must be specified by   the user, see the example poisson-kelly-adapt.

Definition at line 311 of file kelly_type_adapt.h.

Constructor & Destructor Documentation

template<typename Scalar >
Hermes::Hermes2D::BasicKellyAdapt< Scalar >::BasicKellyAdapt ( Hermes::vector< Space< Scalar > * >  spaces_,
double  const_by_laplacian = 1.0,
Hermes::vector< ProjNormType norms_ = Hermes::vector<ProjNormType>() 
)
inline

Constructor.

For the equation $ -K \Delta u = f $, the argument const_by_laplacian is equal to $ K $.

Definition at line 347 of file kelly_type_adapt.h.


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