Hermes2D  2.0
Hermes::Hermes2D::RefinementSelectors::OrderPermutator Class Reference

Hermes::Order permutator. Generates all permutations of orders from a set defined by a range of orders. More...

#include <order_permutator.h>

Public Member Functions

 OrderPermutator (int start_quad_order=0, int end_quad_order=0, bool iso_p=false, int *tgt_quad_order=NULL)
 Constructor. More...
 
bool next ()
 Moves to the next permutation of orders. More...
 
void reset ()
 Resets permutator to the starting order.
 
int get_order_h () const
 Returns the current horizontal order. More...
 
int get_order_v () const
 Returns the current vertical order. More...
 
int get_quad_order () const
 Returns the current order in an encoded form. More...
 
int get_start_quad_order () const
 Returns the starting order in an encoded form. More...
 
int get_end_quad_order () const
 Returns the ending order in an encoded form. More...
 

Protected Attributes

int order_h
 The current horizontal order.
 
int order_v
 The current verical order.
 
int start_order_h
 The starting horizontal order.
 
int start_order_v
 The starting vertical order.
 
int end_order_h
 The ending horizontal order.
 
int end_order_v
 The ending vertical order.
 
bool iso_p
 True if orders is incresed in both the horizontal order and the vertical order are increased simultaneously.
 
int * tgt_quad_order
 A pointer to which a current order is stored in encoded form. Ignored if NULL.
 

Detailed Description

Hermes::Order permutator. Generates all permutations of orders from a set defined by a range of orders.

Used to generate all possible generation of horizontal and vertical orders bettween

the starting order and the ending order. Both the starting order and the ending order are included.

Suggested Use
OrderPermutator order_perm(start_order, end_order, false);
do {
int order_h = order_perm.get_order_h();
} while (order_perm.next());

Definition at line 34 of file order_permutator.h.

Constructor & Destructor Documentation

Hermes::Hermes2D::RefinementSelectors::OrderPermutator::OrderPermutator ( int  start_quad_order = 0,
int  end_quad_order = 0,
bool  iso_p = false,
int *  tgt_quad_order = NULL 
)

Constructor.

Parameters
[in]start_quad_orderThe starting order in an encoded form.
[in]end_quad_orderThe ending order in an encoded form.
[in]iso_pTrue if both orders (i.e. horizontal and vertical) should be increased simultaneously.
[in]tgt_quad_orderA point to a location to which a current orders (i.e. horizontal and vertical) are stored in an encoded form. Ignored if NULL.

Definition at line 23 of file order_permutator.cpp.

Member Function Documentation

int Hermes::Hermes2D::RefinementSelectors::OrderPermutator::get_end_quad_order ( ) const

Returns the ending order in an encoded form.

Returns
The ending order in an encoded form.

Definition at line 87 of file order_permutator.cpp.

int Hermes::Hermes2D::RefinementSelectors::OrderPermutator::get_order_h ( ) const

Returns the current horizontal order.

Returns
The current horizontal order.

Definition at line 67 of file order_permutator.cpp.

Referenced by Hermes::Hermes2D::RefinementSelectors::ProjBasedSelector< Scalar >::calc_error_cand_element().

int Hermes::Hermes2D::RefinementSelectors::OrderPermutator::get_order_v ( ) const

Returns the current vertical order.

Returns
The current vertical order.

Definition at line 72 of file order_permutator.cpp.

Referenced by Hermes::Hermes2D::RefinementSelectors::ProjBasedSelector< Scalar >::calc_error_cand_element().

int Hermes::Hermes2D::RefinementSelectors::OrderPermutator::get_quad_order ( ) const

Returns the current order in an encoded form.

Returns
The current order in an encoded form.

Definition at line 77 of file order_permutator.cpp.

Referenced by Hermes::Hermes2D::RefinementSelectors::ProjBasedSelector< Scalar >::calc_error_cand_element().

int Hermes::Hermes2D::RefinementSelectors::OrderPermutator::get_start_quad_order ( ) const

Returns the starting order in an encoded form.

Returns
The starting order in an encoded form.

Definition at line 82 of file order_permutator.cpp.

bool Hermes::Hermes2D::RefinementSelectors::OrderPermutator::next ( )

Moves to the next permutation of orders.

Returns
True if there is a next permutation of orders.

Definition at line 31 of file order_permutator.cpp.

Referenced by Hermes::Hermes2D::RefinementSelectors::ProjBasedSelector< Scalar >::calc_error_cand_element().


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