AFEPack
|
#include <HGeometry.h>
公有类型 | |
enum | { dim = DIM, dow = DOW } |
typedef IrregularMesh< DIM, DOW > | ir_mesh_t |
typedef Indicator< DIM, DOW > | indicator_t |
公有成员 | |
MeshAdaptor () | |
MeshAdaptor (ir_mesh_t &f) | |
MeshAdaptor (ir_mesh_t &f, ir_mesh_t &t) | |
~MeshAdaptor () | |
void | reinit (ir_mesh_t &f) |
void | reinit (ir_mesh_t &f, ir_mesh_t &t) |
const ir_mesh_t & | fromMesh () const |
void | setFromMesh (ir_mesh_t &f) |
const ir_mesh_t & | toMesh () const |
void | setToMesh (ir_mesh_t &t) |
const indicator_t & | indicator () const |
const double & | indicator (const int &i) const |
double & | indicator (const int &i) |
void | setIndicator (indicator_t &i) |
const double & | tolerence () const |
double & | tolerence () |
const double & | convergenceOrder () const |
double & | convergenceOrder () |
const int & | refineStep () const |
int & | refineStep () |
const double & | refineThreshold () const |
double & | refineThreshold () |
const double & | coarseThreshold () const |
double & | coarseThreshold () |
bool | is_refine_only () const |
bool & | is_refine_only () |
bool | is_indicator_underflow (double ind) const |
bool | is_indicator_overflow (double ind) const |
bool | is_indicator_overflow (double ind, double convergence_coefficient) const |
void | globalRefine (unsigned int i=1) |
void | randomRefine (double percent=50.0) |
void | adapt () |
私有成员 | |
void | collectIndicator (HElement< DIM, DOW > &, double) |
void | collectIndicator () |
void | prepareToMesh () |
void | implementAdaption () |
void | adaptElement (HElement< DIM, DOW > &, double, int) |
私有属性 | |
ir_mesh_t * | from_mesh |
ir_mesh_t * | to_mesh |
indicator_t * | ind |
double | tol |
double | convergence_order |
int | refine_step |
double | refine_threshold |
double | coarse_threshold |
bool | _is_refine_only |
MeshAdaptor is the class used to implement mesh adaptation. It is designed to applied on two mesh - to adapt one({from mesh}) according the indicator and store the result into another mesh(
{to mesh}). If the
{from mesh} is the same as the
{to mesh}, the class then will adapt the mesh itself. The adaptation operation is divided into three steps: (1) prepare the
{to mesh}, in fact copy the
{from mesh} to the
{to mesh} if they are different; (2) collect the indicator, it colloect the indicator from the leaf nodes of the mesh to those non-leaf nodes according the
{convergence order}; (3) adapt the mesh adaptation, by getting a irregular mesh at first and then adopt the semiregularization to the irregular mesh to obtain a semiregular mesh. This class also provide a facility to global refine a mesh.
typedef Indicator<DIM,DOW> MeshAdaptor< DIM, DOW >::indicator_t |
typedef IrregularMesh<DIM,DOW> MeshAdaptor< DIM, DOW >::ir_mesh_t |
MeshAdaptor< DIM, DOW >::MeshAdaptor | ( | ) |
MeshAdaptor< DIM, DOW >::MeshAdaptor | ( | ir_mesh_t & | f | ) | [explicit] |
MeshAdaptor< DIM, DOW >::MeshAdaptor | ( | ir_mesh_t & | f, |
ir_mesh_t & | t | ||
) |
MeshAdaptor< DIM, DOW >::~MeshAdaptor | ( | ) |
void MeshAdaptor< DIM, DOW >::adapt | ( | ) |
void MeshAdaptor< DIM, DOW >::adaptElement | ( | HElement< DIM, DOW > & | , |
double | , | ||
int | |||
) | [private] |
const double& MeshAdaptor< DIM, DOW >::coarseThreshold | ( | ) | const [inline] |
double& MeshAdaptor< DIM, DOW >::coarseThreshold | ( | ) | [inline] |
void MeshAdaptor< DIM, DOW >::collectIndicator | ( | HElement< DIM, DOW > & | , |
double | |||
) | [private] |
void MeshAdaptor< DIM, DOW >::collectIndicator | ( | ) | [private] |
const double& MeshAdaptor< DIM, DOW >::convergenceOrder | ( | ) | const [inline] |
double& MeshAdaptor< DIM, DOW >::convergenceOrder | ( | ) | [inline] |
const ir_mesh_t& MeshAdaptor< DIM, DOW >::fromMesh | ( | ) | const [inline] |
void MeshAdaptor< DIM, DOW >::globalRefine | ( | unsigned int | i = 1 | ) |
void MeshAdaptor< DIM, DOW >::implementAdaption | ( | ) | [private] |
const indicator_t& MeshAdaptor< DIM, DOW >::indicator | ( | ) | const [inline] |
const double& MeshAdaptor< DIM, DOW >::indicator | ( | const int & | i | ) | const [inline] |
double& MeshAdaptor< DIM, DOW >::indicator | ( | const int & | i | ) | [inline] |
bool MeshAdaptor< DIM, DOW >::is_indicator_overflow | ( | double | ind | ) | const [inline] |
bool MeshAdaptor< DIM, DOW >::is_indicator_overflow | ( | double | ind, |
double | convergence_coefficient | ||
) | const [inline] |
bool MeshAdaptor< DIM, DOW >::is_indicator_underflow | ( | double | ind | ) | const [inline] |
bool MeshAdaptor< DIM, DOW >::is_refine_only | ( | ) | const [inline] |
bool& MeshAdaptor< DIM, DOW >::is_refine_only | ( | ) | [inline] |
void MeshAdaptor< DIM, DOW >::prepareToMesh | ( | ) | [private] |
void MeshAdaptor< DIM, DOW >::randomRefine | ( | double | percent = 50.0 | ) |
const int& MeshAdaptor< DIM, DOW >::refineStep | ( | ) | const [inline] |
int& MeshAdaptor< DIM, DOW >::refineStep | ( | ) | [inline] |
const double& MeshAdaptor< DIM, DOW >::refineThreshold | ( | ) | const [inline] |
double& MeshAdaptor< DIM, DOW >::refineThreshold | ( | ) | [inline] |
void MeshAdaptor< DIM, DOW >::reinit | ( | ir_mesh_t & | f | ) | [inline] |
void MeshAdaptor< DIM, DOW >::reinit | ( | ir_mesh_t & | f, |
ir_mesh_t & | t | ||
) | [inline] |
void MeshAdaptor< DIM, DOW >::setFromMesh | ( | ir_mesh_t & | f | ) | [inline] |
void MeshAdaptor< DIM, DOW >::setIndicator | ( | indicator_t & | i | ) | [inline] |
void MeshAdaptor< DIM, DOW >::setToMesh | ( | ir_mesh_t & | t | ) | [inline] |
const double& MeshAdaptor< DIM, DOW >::tolerence | ( | ) | const [inline] |
double& MeshAdaptor< DIM, DOW >::tolerence | ( | ) | [inline] |
const ir_mesh_t& MeshAdaptor< DIM, DOW >::toMesh | ( | ) | const [inline] |
bool MeshAdaptor< DIM, DOW >::_is_refine_only [private] |
double MeshAdaptor< DIM, DOW >::coarse_threshold [private] |
double MeshAdaptor< DIM, DOW >::convergence_order [private] |
ir_mesh_t* MeshAdaptor< DIM, DOW >::from_mesh [private] |
indicator_t* MeshAdaptor< DIM, DOW >::ind [private] |
int MeshAdaptor< DIM, DOW >::refine_step [private] |
double MeshAdaptor< DIM, DOW >::refine_threshold [private] |
ir_mesh_t* MeshAdaptor< DIM, DOW >::to_mesh [private] |
double MeshAdaptor< DIM, DOW >::tol [private] |