AFEPack
|
#include <HGeometry.h>
IrregularMesh is a image of a complete subtree of the hierarchy element geometry tree. It's related with the hierarchy tree and a regular mesh which is generated from itself to used by finite element space. It mainly provides many iterator to used by other routines to access all those elements, or certain selective elements in the mesh. It provides the most important operation to make the irregular mesh a semi-regular mesh -- semiregularize, and the operation to construct the related regular mesh -- regularize. The mesh adaptation are mainly depended on those operations.
typedef ActiveElementIterator<DIM, DOW> IrregularMesh< DIM, DOW >::ActiveIterator |
typedef _Deref_iterator<typename container_t::const_iterator, const element_t> IrregularMesh< DIM, DOW >::ConstRootIterator |
typedef std::list<element_t *> IrregularMesh< DIM, DOW >::container_t [protected] |
typedef HElement<DIM,DOW> IrregularMesh< DIM, DOW >::element_t [protected] |
typedef HGeometry<DIM,DOW> IrregularMesh< DIM, DOW >::h_element_t [protected] |
typedef IrregularMesh<DIM,DOW> IrregularMesh< DIM, DOW >::ir_mesh_t |
typedef RegularMesh<DIM,DOW> IrregularMesh< DIM, DOW >::mesh_t |
typedef RootFirstElementIterator<DIM, DOW> IrregularMesh< DIM, DOW >::RootFirstIterator |
typedef _Deref_iterator<typename container_t::iterator, element_t> IrregularMesh< DIM, DOW >::RootIterator |
typedef HTools IrregularMesh< DIM, DOW >::Tools [protected] |
typedef HGeometryTree<DIM,DOW> IrregularMesh< DIM, DOW >::tree_t |
IrregularMesh< DIM, DOW >::IrregularMesh | ( | ) |
IrregularMesh< DIM, DOW >::IrregularMesh | ( | tree_t & | ) | [explicit] |
IrregularMesh< DIM, DOW >::IrregularMesh | ( | const ir_mesh_t & | ) |
virtual IrregularMesh< DIM, DOW >::~IrregularMesh | ( | ) | [virtual] |
ActiveIterator IrregularMesh< DIM, DOW >::beginActiveElement | ( | ) |
RootIterator IrregularMesh< DIM, DOW >::beginRootElement | ( | ) | [inline] |
ConstRootIterator IrregularMesh< DIM, DOW >::beginRootElement | ( | ) | const [inline] |
RootFirstIterator IrregularMesh< DIM, DOW >::beginRootFirstElement | ( | ) |
void IrregularMesh< DIM, DOW >::checkIntegrity | ( | ) | [protected] |
void IrregularMesh< DIM, DOW >::clear | ( | ) |
void IrregularMesh< DIM, DOW >::copyNonnegtiveSubtree | ( | const ir_mesh_t & | ) |
void IrregularMesh< DIM, DOW >::copyNonnegtiveSubtree | ( | const element_t * | , |
element_t * | |||
) |
void IrregularMesh< DIM, DOW >::copyTree | ( | const ir_mesh_t & | ) |
void IrregularMesh< DIM, DOW >::copyTree | ( | const element_t * | , |
element_t * | |||
) |
void IrregularMesh< DIM, DOW >::deleteTree | ( | element_t * | ) |
ActiveIterator IrregularMesh< DIM, DOW >::endActiveElement | ( | ) |
RootIterator IrregularMesh< DIM, DOW >::endRootElement | ( | ) | [inline] |
ConstRootIterator IrregularMesh< DIM, DOW >::endRootElement | ( | ) | const [inline] |
RootFirstIterator IrregularMesh< DIM, DOW >::endRootFirstElement | ( | ) |
tree_t& IrregularMesh< DIM, DOW >::geometryTree | ( | ) | const [inline] |
void IrregularMesh< DIM, DOW >::globalRefine | ( | unsigned int | i = 1 | ) |
ir_mesh_t& IrregularMesh< DIM, DOW >::operator= | ( | const ir_mesh_t & | ) |
void IrregularMesh< DIM, DOW >::prepareSemiregularize | ( | ) | [protected] |
void IrregularMesh< DIM, DOW >::prepareSemiregularizeHelper | ( | h_element_t * | ) | [protected] |
void IrregularMesh< DIM, DOW >::randomRefine | ( | double | percent = 50.0 | ) |
void IrregularMesh< DIM, DOW >::refineElement | ( | element_t & | h_ele | ) | [protected] |
void IrregularMesh< 2, DOW >::regularize | ( | bool | renumerate | ) |
ʱԵindexδãÿactiveĵԪؽ г֣ڴ˽Ϊactive״̬
activeĵԪÿߣñ߱ϸ֣Ϊinactive ״̬ȥ˴ͨھǷϸжǵеʱ ӿķӶΪֱжϱǷѾϸ֡
˫εıʷֵıߡڲеҪﴦ Ӧھķ
е
ı
ԶбţѾŵĶ㽫зǸindexӶ activeоݣʹÿֻDZһΡ
Ŷ
ÿߵıſѾΪıţҲܸñߴinactive ״ֻ̬Ƕactiveоݵı߽бš
ű
ϸֵı
е
Ȼ
ŵԪ
ȼߵе
ıߵ
ԼŴ
void IrregularMesh< DIM, DOW >::regularize | ( | bool | renumerate = true | ) |
void IrregularMesh< 3, DOW >::regularize | ( | bool | renumerate | ) |
ֱͨӼDzDZϸȷǷУ ԭȰ汾ļھDzͬģʹóڷ״ ̬ȷΪھϣ˴д жϡԱߵжҲͬķʽ
ϸֹ
ӵΪactive
кΪactive
Ϊactive
һδΪ˲еϵġڴе£϶ һͨλὫ edge ĺΪһߣDzеʱ ͨολˣܲһܹ һͨλὫ edge ĺΪһߡ
£ǼߵӺе㡣
е
һλ˫Σ˫ ΣͽϸֵǸ refined_edge СҴ˼ѭ ʱkֵ HGeometry<2, DOW>::n_boundary ҪС Σ k==HGeometry<2, DOW>::n_boundary
˫ûϸֵıߺϸֵıߵӡ
ûϸֵı
ϸֵıߵ
ϸֵıߵе
һϸֹΣǽϸھӼһ ܲһ(ϸֵھӿ)
̬
ϸֵ̬
ԼŴ
mesh_t& IrregularMesh< DIM, DOW >::regularMesh | ( | ) | [inline] |
const mesh_t& IrregularMesh< DIM, DOW >::regularMesh | ( | ) | const [inline] |
void IrregularMesh< DIM, DOW >::reinit | ( | tree_t & | htree, |
bool | is_bare = false |
||
) |
使用几何遗传树对非正则网格进行重新初始化。其中第二个参数 is_bare 是新加的,如果 is_bare 为 true,则仅仅设置几何遗传树的指针为 htree 的地址;否则就使用几何遗传树的信息彻底重构所有的信息。一般我 们会使用后一个功能,前一个功能是为了从序列化的文档中读入几何遗传树 和非正则网格的数据后,直接设定几何遗传树的指针而用
htree | 几何遗传树 |
is_bare | 是否用几何遗传树的信息重构整个非正则网格的数据结构 |
void IrregularMesh< DIM, DOW >::renumerateElement | ( | ) | [protected] |
container_t& IrregularMesh< DIM, DOW >::rootElement | ( | ) | [inline] |
virtual void IrregularMesh< DIM, DOW >::semiregularize | ( | ) | [virtual] |
void IrregularMesh< DIM, DOW >::semiregularizeHelper | ( | bool & | , |
int & | |||
) | [protected] |
void IrregularMesh< DIM, DOW >::semiregularizeHelper | ( | bool & | , |
element_t & | , | ||
int & | |||
) | [protected] |
void IrregularMesh< DIM, DOW >::setGeometryTree | ( | tree_t * | ) | [protected] |
void IrregularMesh< DIM, DOW >::writeFormatted | ( | const std::string & | ) |
friend class IrregularMeshPair< DIM, DOW > [friend] |
std::ostream& operator<< | ( | std::ostream & | os, |
IrregularMesh< DIM, DOW > & | mesh | ||
) | [friend] |
friend class RegularMesh< DIM, DOW > [friend] |
tree_t* IrregularMesh< DIM, DOW >::geometry_tree [private] |
mesh_t* IrregularMesh< DIM, DOW >::regular_mesh [private] |
container_t IrregularMesh< DIM, DOW >::root_element [private] |