Refinement Selectors

Refinement selectors allows to select a refinement according to an error of a candidate. More...

Classes

class  RefinementSelectors::H1ProjBasedSelector
 A projection-based selector for H1 space. More...
class  RefinementSelectors::L2ProjBasedSelector
 A projection-based selector for L2 space. More...
class  RefinementSelectors::OptimumSelector
 A selector that chooses an optimal candidates based on a score. More...
class  RefinementSelectors::OrderPermutator
 Order permutator. Generates all permutations of orders from a set defined by a range of orders. More...
class  RefinementSelectors::ProjBasedSelector
 A general projection-based selector. More...
class  RefinementSelectors::Selector
 A parent of all refinement selectors. Abstract class. More...
class  RefinementSelectors::HOnlySelector
 A selector that selects H-refinements only. More...
class  RefinementSelectors::POnlySelector
 A selector that increases order (i.e., it selects P-refinements only). More...

Namespaces

namespace  RefinementSelectors
 

Namespace which encapsulates all refinement selectors.


Defines

#define H2DRS_ASSUMED_MAX_CANDS   512
 An estimated maximum number of candidates. Used for purpose of reserving space.
#define H2DRS_INTR_GIP_ORDER   20
 An integration order used to integrate while evaluating a candidate.
#define H2DRS_MAX_ORDER_INC   2
 Maximum increase of an order in candidates.
#define H2DRS_SCORE_DIFF_ZERO   1E-13
 A threshold of difference between scores. Anything below this values is considered zero.
#define H2DRS_ORDER_ANY   -1
 Any order. Used as a wildcard to indicate that a given order can by any valid order.
#define H2DRS_DEFAULT_ERR_WEIGHT_H   2.0
 A default multiplicative coefficient of an error of a H-candidate.
#define H2DRS_DEFAULT_ERR_WEIGHT_P   1.0
 A default multiplicative coefficient of an error of a P-candidate.
#define H2DRS_DEFAULT_ERR_WEIGHT_ANISO   1.414214
 A default multiplicative coefficient of an error of a ANISO-candidate.
#define H2DRS_VALCACHE_INVALID   0
 State of value cache: item contains undefined or invalid value.
#define H2DRS_VALCACHE_VALID   1
 State of value cache: item contains a valid value.
#define H2DRS_VALCACHE_USER   2
 State of value cache: the first state ID which can be used by the user. An item of a value cache.
#define H2DRS_DEFAULT_ORDER   -1
 A default order. Used to indicate an unkonwn order or a maximum support order.
#define H2DRS_MAX_ORDER   9
 A maximum order suported by refinement selectors.

Typedefs

typedef double RefinementSelectors::CandElemProjError [H2DRS_MAX_ORDER+2][H2DRS_MAX_ORDER+2]
 Error of an element of a candidate for various permutations of orders.

Enumerations

enum  RefinementSelectors::CandList {
  RefinementSelectors::H2D_P_ISO, RefinementSelectors::H2D_P_ANISO, RefinementSelectors::H2D_H_ISO, RefinementSelectors::H2D_H_ANISO,
  RefinementSelectors::H2D_HP_ISO, RefinementSelectors::H2D_HP_ANISO_H, RefinementSelectors::H2D_HP_ANISO_P, RefinementSelectors::H2D_HP_ANISO
}
 

Predefined list of candidates.

More...
enum  RefinementSelectors::SelOption { RefinementSelectors::H2D_PREFER_SYMMETRIC_MESH, RefinementSelectors::H2D_APPLY_CONV_EXP_DOF }
 

Options of the selector.

More...

Functions

H2D_API const char * RefinementSelectors::get_cand_list_str (const CandList cand_list)
 Returns a string representation of a predefined candidate list.
H2D_API bool RefinementSelectors::is_hp (const CandList cand_list)
 Returns true if a predefined candidate list may contain candidates that are HP.
H2D_API bool RefinementSelectors::is_p_aniso (const CandList cand_list)
 Returns true if a predefined candidate list may contain candidates with an anisotropic change of orders.
H2D_API std::ostream & RefinementSelectors::operator<< (std::ostream &stream, const OptimumSelector::Cand &cand)
 Operator. Flushes contents of a candidate to a string stream. Useful for debug messages.

Detailed Description

Refinement selectors allows to select a refinement according to an error of a candidate.

The error is calculate by comparing a candidate projected to a reference solution with the reference solution. All selectors has to be derived from the class Selector. An instance of a selector should be created outside the adaptivity loop in order to save initialization time.

Currently available selectors:


Define Documentation

#define H2DRS_ASSUMED_MAX_CANDS   512

An estimated maximum number of candidates. Used for purpose of reserving space.

For internal use only.

#define H2DRS_DEFAULT_ERR_WEIGHT_ANISO   1.414214

A default multiplicative coefficient of an error of a ANISO-candidate.

#define H2DRS_DEFAULT_ERR_WEIGHT_H   2.0

A default multiplicative coefficient of an error of a H-candidate.

#define H2DRS_DEFAULT_ERR_WEIGHT_P   1.0

A default multiplicative coefficient of an error of a P-candidate.

#define H2DRS_DEFAULT_ORDER   -1

A default order. Used to indicate an unkonwn order or a maximum support order.

#define H2DRS_INTR_GIP_ORDER   20

An integration order used to integrate while evaluating a candidate.

For internal use only.

#define H2DRS_MAX_ORDER   9

A maximum order suported by refinement selectors.

#define H2DRS_MAX_ORDER_INC   2

Maximum increase of an order in candidates.

#define H2DRS_ORDER_ANY   -1

Any order. Used as a wildcard to indicate that a given order can by any valid order.

For internal use only.

#define H2DRS_SCORE_DIFF_ZERO   1E-13

A threshold of difference between scores. Anything below this values is considered zero.

For internal use only.

#define H2DRS_VALCACHE_INVALID   0

State of value cache: item contains undefined or invalid value.

#define H2DRS_VALCACHE_USER   2

State of value cache: the first state ID which can be used by the user. An item of a value cache.

#define H2DRS_VALCACHE_VALID   1

State of value cache: item contains a valid value.


Typedef Documentation

typedef double RefinementSelectors::CandElemProjError[H2DRS_MAX_ORDER+2][H2DRS_MAX_ORDER+2]

Error of an element of a candidate for various permutations of orders.

If not noted otherwise, the first index is the horizontal order, the second index is the vertical order. The maximum allowed order is H2DRS_MAX_ORDER + 1.


Enumeration Type Documentation

Predefined list of candidates.

Enumerator:
H2D_P_ISO 

P-candidates only. Orders are modified uniformly.

H2D_P_ANISO 

P-candidates only. Orders are modified non-uniformly.

H2D_H_ISO 

H-candidates only. Orders are not modified.

H2D_H_ANISO 

H- and ANISO-candidates only. Orders are not modified.

H2D_HP_ISO 

H- and P-candidates only. Orders are modified uniformly.

H2D_HP_ANISO_H 

H-, ANISO- and P-candidates. Orders are modified uniformly.

H2D_HP_ANISO_P 

H- and P-candidates only. Orders are modified non-uniformly.

H2D_HP_ANISO 

H-, ANISO- and P-candidates. Orders are modified non-uniformly.

Options of the selector.

Enumerator:
H2D_PREFER_SYMMETRIC_MESH 

Prefer symmetric mesh when selection of the best candidate is done. If two or more candiates has the same score, they are skipped. This option is set by default.

H2D_APPLY_CONV_EXP_DOF 

Use $d^c - d_0^c$, where $c$ is the convergence exponent, instead of $(d - d_0)^c$ to evaluate the score in the method OptimumSelector::evaluate_cands_score(). This option is not set by default.


Function Documentation

H2D_API const char * RefinementSelectors::get_cand_list_str ( const CandList  cand_list  ) 

Returns a string representation of a predefined candidate list.

Used for debugging and output purposes.

Parameters:
cand_list A predefined list of candidates.
Returns:
A string representation of the enum value.
H2D_API bool RefinementSelectors::is_hp ( const CandList  cand_list  ) 

Returns true if a predefined candidate list may contain candidates that are HP.

Parameters:
cand_list A predefined list of candidates.
Returns:
True if a predefined candidate list may contain candidates that are HP.
H2D_API bool RefinementSelectors::is_p_aniso ( const CandList  cand_list  ) 

Returns true if a predefined candidate list may contain candidates with an anisotropic change of orders.

Parameters:
cand_list A predefined list of candidates.
Returns:
True if a predefined candidate list may contain candidates with an anisotropic change of orders.
H2D_API std::ostream & RefinementSelectors::operator<< ( std::ostream &  stream,
const OptimumSelector::Cand &  cand 
)

Operator. Flushes contents of a candidate to a string stream. Useful for debug messages.

Generated on Sat Jun 5 15:17:43 2010 for Hermes2D Library: Real Version by  doxygen 1.6.3