16 #ifndef __H2D_REFINEMENT_SELECTOR_H
17 #define __H2D_REFINEMENT_SELECTOR_H
19 #include "element_to_refine.h"
20 #include "../mesh/mesh.h"
21 #include "adapt/error_calculator.h"
52 namespace RefinementSelectors
59 template<
typename Scalar>
60 class HERMES_API Selector :
public Hermes::Mixins::Loggable,
public Hermes::Mixins::TimeMeasurable
63 virtual ~Selector() {};
71 virtual bool select_refinement(Element* element,
int quad_order, MeshFunction<Scalar>* rsln, ElementToRefine& refinement) = 0;
83 template<
typename T>
friend class Adapt;
88 template<
typename Scalar>
89 class HERMES_API HOnlySelector :
public Selector < Scalar > {
98 template<
typename T>
friend class Adapt;
103 template<
typename Scalar>
104 class HERMES_API POnlySelector :
public Selector < Scalar > {
106 const int order_h_inc;
108 const int order_v_inc;
114 POnlySelector(
int max_order =
H2DRS_DEFAULT_ORDER,
int order_h_inc = 1,
int order_v_inc = 1);
121 template<
typename T>
friend class Adapt;
Stores one element of a mesh.
const int min_order
A minimum allowed order.
Represents a function defined on a mesh.
const int max_order
A maximum allowed order.
HOnlySelector()
Constructor.
A parent of all refinement selectors. Abstract class.
#define H2DRS_DEFAULT_ORDER
A default order. Used to indicate an unkonwn order or a maximum support order.
Selector(int min_order=1, int max_order=H2DRS_DEFAULT_ORDER)
Constructor.