AFEPack
公有类型 | 公有成员 | 保护类型 | 保护成员 | 私有属性 | 友元
IrregularMesh< DIM, DOW >模板类参考

#include <HGeometry.h>

所有成员的列表。

公有类型

enum  { dim = DIM, dow = DOW }
typedef RegularMesh< DIM, DOWmesh_t
typedef HGeometryTree< DIM, DOWtree_t
typedef IrregularMesh< DIM, DOWir_mesh_t
typedef _Deref_iterator
< typename
container_t::iterator,
element_t
RootIterator
typedef _Deref_iterator
< typename
container_t::const_iterator,
const element_t
ConstRootIterator
typedef
RootFirstElementIterator< DIM,
DOW
RootFirstIterator
typedef ActiveElementIterator
< DIM, DOW
ActiveIterator

公有成员

 IrregularMesh ()
 IrregularMesh (tree_t &)
 IrregularMesh (const ir_mesh_t &)
virtual ~IrregularMesh ()
void clear ()
ir_mesh_toperator= (const ir_mesh_t &)
RootIterator beginRootElement ()
RootIterator endRootElement ()
ConstRootIterator beginRootElement () const
ConstRootIterator endRootElement () const
RootFirstIterator beginRootFirstElement ()
RootFirstIterator endRootFirstElement ()
ActiveIterator beginActiveElement ()
ActiveIterator endActiveElement ()
void reinit (tree_t &htree, bool is_bare=false)
tree_tgeometryTree () const
container_trootElement ()
mesh_tregularMesh ()
const mesh_tregularMesh () const
virtual void semiregularize ()
void regularize (bool renumerate=true)
void globalRefine (unsigned int i=1)
void randomRefine (double percent=50.0)
void writeFormatted (const std::string &)
void copyTree (const ir_mesh_t &)
void copyNonnegtiveSubtree (const ir_mesh_t &)
void copyTree (const element_t *, element_t *)
void copyNonnegtiveSubtree (const element_t *, element_t *)
void deleteTree (element_t *)
template<>
void regularize (bool renumerate)
template<>
void regularize (bool renumerate)

保护类型

typedef HGeometry< DIM, DOWh_element_t
typedef HElement< DIM, DOWelement_t
typedef std::list< element_t * > container_t
typedef HTools Tools

保护成员

void checkIntegrity ()
void setGeometryTree (tree_t *)
void semiregularizeHelper (bool &, int &)
void semiregularizeHelper (bool &, element_t &, int &)
void prepareSemiregularize ()
void prepareSemiregularizeHelper (h_element_t *)
void renumerateElement ()
void refineElement (element_t &h_ele)

私有属性

tree_tgeometry_tree
container_t root_element
mesh_tregular_mesh

友元

class IrregularMeshPair< DIM, DOW >
class RegularMesh< DIM, DOW >
std::ostream & operator<< (std::ostream &, IrregularMesh< DIM, DOW > &)

详细描述

template<int DIM, int DOW = DIM>
class IrregularMesh< DIM, DOW >

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.


成员类型定义文档

template<int DIM, int DOW = DIM>
typedef ActiveElementIterator<DIM, DOW> IrregularMesh< DIM, DOW >::ActiveIterator
template<int DIM, int DOW = DIM>
typedef _Deref_iterator<typename container_t::const_iterator, const element_t> IrregularMesh< DIM, DOW >::ConstRootIterator
template<int DIM, int DOW = DIM>
typedef std::list<element_t *> IrregularMesh< DIM, DOW >::container_t [protected]
template<int DIM, int DOW = DIM>
typedef HElement<DIM,DOW> IrregularMesh< DIM, DOW >::element_t [protected]
template<int DIM, int DOW = DIM>
typedef HGeometry<DIM,DOW> IrregularMesh< DIM, DOW >::h_element_t [protected]
template<int DIM, int DOW = DIM>
typedef IrregularMesh<DIM,DOW> IrregularMesh< DIM, DOW >::ir_mesh_t
template<int DIM, int DOW = DIM>
typedef RegularMesh<DIM,DOW> IrregularMesh< DIM, DOW >::mesh_t
template<int DIM, int DOW = DIM>
typedef RootFirstElementIterator<DIM, DOW> IrregularMesh< DIM, DOW >::RootFirstIterator
template<int DIM, int DOW = DIM>
typedef _Deref_iterator<typename container_t::iterator, element_t> IrregularMesh< DIM, DOW >::RootIterator
template<int DIM, int DOW = DIM>
typedef HTools IrregularMesh< DIM, DOW >::Tools [protected]
template<int DIM, int DOW = DIM>
typedef HGeometryTree<DIM,DOW> IrregularMesh< DIM, DOW >::tree_t

成员枚举类型文档

template<int DIM, int DOW = DIM>
anonymous enum
枚举值:
dim 
dow 

构造及析构函数文档

template<int DIM, int DOW = DIM>
IrregularMesh< DIM, DOW >::IrregularMesh ( )
template<int DIM, int DOW = DIM>
IrregularMesh< DIM, DOW >::IrregularMesh ( tree_t ) [explicit]
template<int DIM, int DOW = DIM>
IrregularMesh< DIM, DOW >::IrregularMesh ( const ir_mesh_t )
template<int DIM, int DOW = DIM>
virtual IrregularMesh< DIM, DOW >::~IrregularMesh ( ) [virtual]

成员函数文档

template<int DIM, int DOW = DIM>
ActiveIterator IrregularMesh< DIM, DOW >::beginActiveElement ( )
template<int DIM, int DOW = DIM>
RootIterator IrregularMesh< DIM, DOW >::beginRootElement ( ) [inline]
template<int DIM, int DOW = DIM>
ConstRootIterator IrregularMesh< DIM, DOW >::beginRootElement ( ) const [inline]
template<int DIM, int DOW = DIM>
RootFirstIterator IrregularMesh< DIM, DOW >::beginRootFirstElement ( )
template<int DIM, int DOW = DIM>
void IrregularMesh< DIM, DOW >::checkIntegrity ( ) [protected]
template<int DIM, int DOW = DIM>
void IrregularMesh< DIM, DOW >::clear ( )
template<int DIM, int DOW = DIM>
void IrregularMesh< DIM, DOW >::copyNonnegtiveSubtree ( const ir_mesh_t )
template<int DIM, int DOW = DIM>
void IrregularMesh< DIM, DOW >::copyNonnegtiveSubtree ( const element_t ,
element_t  
)
template<int DIM, int DOW = DIM>
void IrregularMesh< DIM, DOW >::copyTree ( const ir_mesh_t )
template<int DIM, int DOW = DIM>
void IrregularMesh< DIM, DOW >::copyTree ( const element_t ,
element_t  
)
template<int DIM, int DOW = DIM>
void IrregularMesh< DIM, DOW >::deleteTree ( element_t )
template<int DIM, int DOW = DIM>
ActiveIterator IrregularMesh< DIM, DOW >::endActiveElement ( )
template<int DIM, int DOW = DIM>
RootIterator IrregularMesh< DIM, DOW >::endRootElement ( ) [inline]
template<int DIM, int DOW = DIM>
ConstRootIterator IrregularMesh< DIM, DOW >::endRootElement ( ) const [inline]
template<int DIM, int DOW = DIM>
RootFirstIterator IrregularMesh< DIM, DOW >::endRootFirstElement ( )
template<int DIM, int DOW = DIM>
tree_t& IrregularMesh< DIM, DOW >::geometryTree ( ) const [inline]
template<int DIM, int DOW = DIM>
void IrregularMesh< DIM, DOW >::globalRefine ( unsigned int  i = 1)
template<int DIM, int DOW = DIM>
ir_mesh_t& IrregularMesh< DIM, DOW >::operator= ( const ir_mesh_t )
template<int DIM, int DOW = DIM>
void IrregularMesh< DIM, DOW >::prepareSemiregularize ( ) [protected]
template<int DIM, int DOW = DIM>
void IrregularMesh< DIM, DOW >::prepareSemiregularizeHelper ( h_element_t ) [protected]
template<int DIM, int DOW = DIM>
void IrregularMesh< DIM, DOW >::randomRefine ( double  percent = 50.0)
template<int DIM, int DOW = DIM>
void IrregularMesh< DIM, DOW >::refineElement ( element_t h_ele) [protected]
template<>
void IrregularMesh< 2, DOW >::regularize ( bool  renumerate)

򻯵ʱԵindexδãÿactiveĵԪؽ г֣ڴ˽Ϊactive״̬

activeĵԪÿߣñ߱ϸ֣Ϊinactive ״̬ȥ˴ͨھǷϸжǵеʱ ӿķӶ޸ΪֱжϱǷѾϸ֡

˫εıʷֵıߡڲеҪﴦ Ӧھķ

е

ı

ԶбţѾŵĶ㽫зǸindexӶ activeоݣʹÿֻDZһΡ

Ŷ

ÿߵıſѾΪıţҲܸñߴinactive ״ֻ̬Ƕactiveоݵı߽бš

ű

ϸֵı

е

Ȼ

ŵԪ

ȼߵе

ıߵ

ԼŴ

template<int DIM, int DOW = DIM>
void IrregularMesh< DIM, DOW >::regularize ( bool  renumerate = true)
template<>
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

˫ûϸֵıߺϸֵıߵӡ

ûϸֵı

ϸֵıߵ

ϸֵıߵе

һϸֹΣǽϸھӼһ ܲһ(ϸֵھӿ)

̬

ϸֵ̬

ԼŴ

template<int DIM, int DOW = DIM>
mesh_t& IrregularMesh< DIM, DOW >::regularMesh ( ) [inline]
template<int DIM, int DOW = DIM>
const mesh_t& IrregularMesh< DIM, DOW >::regularMesh ( ) const [inline]
template<int DIM, int DOW = DIM>
void IrregularMesh< DIM, DOW >::reinit ( tree_t htree,
bool  is_bare = false 
)

使用几何遗传树对非正则网格进行重新初始化。其中第二个参数 is_bare 是新加的,如果 is_bare 为 true,则仅仅设置几何遗传树的指针为 htree 的地址;否则就使用几何遗传树的信息彻底重构所有的信息。一般我 们会使用后一个功能,前一个功能是为了从序列化的文档中读入几何遗传树 和非正则网格的数据后,直接设定几何遗传树的指针而用

参数:
htree几何遗传树
is_bare是否用几何遗传树的信息重构整个非正则网格的数据结构
template<int DIM, int DOW = DIM>
void IrregularMesh< DIM, DOW >::renumerateElement ( ) [protected]
template<int DIM, int DOW = DIM>
container_t& IrregularMesh< DIM, DOW >::rootElement ( ) [inline]
template<int DIM, int DOW = DIM>
virtual void IrregularMesh< DIM, DOW >::semiregularize ( ) [virtual]
template<int DIM, int DOW = DIM>
void IrregularMesh< DIM, DOW >::semiregularizeHelper ( bool &  ,
int &   
) [protected]
template<int DIM, int DOW = DIM>
void IrregularMesh< DIM, DOW >::semiregularizeHelper ( bool &  ,
element_t ,
int &   
) [protected]
template<int DIM, int DOW = DIM>
void IrregularMesh< DIM, DOW >::setGeometryTree ( tree_t ) [protected]
template<int DIM, int DOW = DIM>
void IrregularMesh< DIM, DOW >::writeFormatted ( const std::string &  )

友元及相关函数文档

template<int DIM, int DOW = DIM>
friend class IrregularMeshPair< DIM, DOW > [friend]
template<int DIM, int DOW = DIM>
std::ostream& operator<< ( std::ostream &  os,
IrregularMesh< DIM, DOW > &  mesh 
) [friend]
template<int DIM, int DOW = DIM>
friend class RegularMesh< DIM, DOW > [friend]

成员数据文档

template<int DIM, int DOW = DIM>
tree_t* IrregularMesh< DIM, DOW >::geometry_tree [private]
template<int DIM, int DOW = DIM>
mesh_t* IrregularMesh< DIM, DOW >::regular_mesh [private]
template<int DIM, int DOW = DIM>
container_t IrregularMesh< DIM, DOW >::root_element [private]

该类的文档由以下文件生成: