Hermes2D  2.0
Hermes::Hermes2D::RefinementSelectors::Selector< Scalar > Class Template Referenceabstract

A parent of all refinement selectors. Abstract class. More...

#include <selector.h>

+ Inheritance diagram for Hermes::Hermes2D::RefinementSelectors::Selector< Scalar >:

Protected Member Functions

 Selector (int max_order=H2DRS_DEFAULT_ORDER)
 Constructor. More...
 
virtual Selector< Scalar > * clone ()=0
 Cloning for paralelism.
 
virtual bool select_refinement (Element *element, int quad_order, Solution< Scalar > *rsln, ElementToRefine &refinement)=0
 Selects a refinement. More...
 
virtual void generate_shared_mesh_orders (const Element *element, const int orig_quad_order, const int refinement, int tgt_quad_orders[H2D_MAX_ELEMENT_SONS], const int *suggested_quad_orders)=0
 Generates orders of elements which will be created due to a proposed refinement in another component that shares the same a mesh. More...
 

Protected Attributes

const int max_order
 
bool isAClone
 Internal.
 

Friends

template<typename T >
class Adapt
 
template<typename T >
class KellyTypeAdapt
 

Detailed Description

template<typename Scalar>
class Hermes::Hermes2D::RefinementSelectors::Selector< Scalar >

A parent of all refinement selectors. Abstract class.

All refinement selectors have to derive from this class or its children. The interface of the class provides methods for:

  • selecting a refinement based on a reference soution,
  • updating orders of a mesh shared among components.

Definition at line 30 of file function.h.

Constructor & Destructor Documentation

template<typename Scalar>
Hermes::Hermes2D::RefinementSelectors::Selector< Scalar >::Selector ( int  max_order = H2DRS_DEFAULT_ORDER)
inlineprotected

Constructor.

Parameters
[in]max_orderA maximum order used by this selector. If it is H2DRS_DEFAULT_ORDER, a maximum supported order is used.

Definition at line 83 of file selector.h.

Member Function Documentation

template<typename Scalar>
virtual void Hermes::Hermes2D::RefinementSelectors::Selector< Scalar >::generate_shared_mesh_orders ( const Element element,
const int  orig_quad_order,
const int  refinement,
int  tgt_quad_orders[H2D_MAX_ELEMENT_SONS],
const int *  suggested_quad_orders 
)
protectedpure virtual

Generates orders of elements which will be created due to a proposed refinement in another component that shares the same a mesh.

Parameters
[in]elementAn element which is about the be refined.
[in]orig_quad_orderAn encoded order of the element.
[in]refinementA refinement of the element in the mesh. Possible values are defined by the enum RefinementType.
[out]tgt_quad_ordersGenerated encoded orders.
[in]suggested_quad_ordersSuggested encoded orders. If not NULL, the method should copy them to the output. If NULL, the method have to calculate orders.

Implemented in Hermes::Hermes2D::RefinementSelectors::OptimumSelector< Scalar >, Hermes::Hermes2D::RefinementSelectors::POnlySelector< Scalar >, and Hermes::Hermes2D::RefinementSelectors::HOnlySelector< Scalar >.

Referenced by Hermes::Hermes2D::Adapt< Scalar >::fix_shared_mesh_refinements().

template<typename Scalar>
virtual bool Hermes::Hermes2D::RefinementSelectors::Selector< Scalar >::select_refinement ( Element element,
int  quad_order,
Solution< Scalar > *  rsln,
ElementToRefine refinement 
)
protectedpure virtual

Selects a refinement.

This methods has to be implemented.

Parameters
[in]elementAn element which is being refined.
[in]quad_orderAn encoded order of the element.
[in]rslnA reference solution which is used to select a refinement.
[out]refinementA selected refinement. It contains a valid contents if and only if the method returns true.
Returns
True if a refinement was proposed. False if the selector is unable to select a refinement or it suggest that the element should not be refined.

Implemented in Hermes::Hermes2D::RefinementSelectors::OptimumSelector< Scalar >, Hermes::Hermes2D::RefinementSelectors::POnlySelector< Scalar >, and Hermes::Hermes2D::RefinementSelectors::HOnlySelector< Scalar >.

Referenced by Hermes::Hermes2D::Adapt< Scalar >::adapt().

Member Data Documentation

template<typename Scalar>
const int Hermes::Hermes2D::RefinementSelectors::Selector< Scalar >::max_order
protected

A maximum allowed order.

Definition at line 78 of file selector.h.


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