AFEPack
公有类型 | 公有成员 | 私有类型 | 私有成员 | 私有属性 | 友元
MPI::HGeometryForest< DIM, DOW, MATCHER >模板类参考

#include <MPI_HGeometry.h>

继承图,类MPI::HGeometryForest< DIM, DOW, MATCHER >
HGeometryTree< DIM, DOW >

所有成员的列表。

公有类型

typedef HGeometryTree< DIM, DOW > tree_t
typedef MATCHER matcher_t
typedef BirdView< this_tbirdview_t
typedef BirdViewSet< this_tbirdview_set_t
typedef HLoadBalance< this_tload_balancer_t

公有成员

template<int D>
const Shared_ptr_list
< HGeometry< D, DOW > > & 
get_shared_list () const
template<int GDIM>
bool is_on_primary_rank (const HGeometry< GDIM, DOW > &geo) const
template<int GDIM>
int primary_rank (const HGeometry< GDIM, DOW > &geo) const
template<int GDIM>
bool is_primary_geometry (const HGeometry< GDIM, DOW > &geo) const
bool is_geometry_shared (const RegularMesh< DIM, DOW > &mesh, int dim, int idx) const
const matcher_tmatcher () const
matcher_tmatcher ()
OBJ * get_shared_info (const GEO &geo) const
OBJ * new_shared_info (GEO &geo)
void erase_shared_info (GEO &geo)
OBJ * get_shared_info (const GEO &geo) const
OBJ * new_shared_info (GEO &geo)
void erase_shared_info (GEO &geo)
OBJ * get_shared_info (const GEO &geo) const
OBJ * new_shared_info (GEO &geo)
void erase_shared_info (GEO &geo)
OBJ * get_shared_info (const GEO &geo) const
OBJ * new_shared_info (GEO &geo)
void erase_shared_info (GEO &geo)
bool lock ()
void unlock ()
 HGeometryForest ()
 HGeometryForest (MPI_Comm comm)
virtual ~HGeometryForest ()
void clear ()
void new_property ()
void free_property ()
void set_communicator (MPI_Comm comm)
MPI_Comm communicator () const
int rank () const
int n_rank () const
void readMesh (const std::string &)
void eraseRootElement (u_int level=1)
void renumerateRootElement (void(*f)(double, double, double, double &, double &, double &)=NULL)

私有类型

typedef HGeometryForest< DIM,
DOW, MATCHER > 
this_t

私有成员

template<class GEO >
bool is_shared_info_sent (GEO &geo) const
template<class GEO >
void set_shared_info_sent (GEO &geo) const
template<class GEO >
void clear_shared_info_sent (GEO &geo) const
template<class GEO >
bool is_dummy (GEO &geo) const
template<class GEO >
void dummy (GEO &geo) const
template<class GEO >
void undummy (GEO &geo) const
void eraseRootElementOneLevel ()
template<class GEO >
void nullParent (GEO &geo)
template<class GEO >
void tryDeleteGeometry (GEO *p_geo, const property_id_t< bool > &pid)
template<class GEO >
void deleteGeometry (GEO *p_geo)

私有属性

MPI_Comm _comm
int _rank
int _n_rank
matcher_t _matcher
property_id_t _pid_shared_info_sent
property_id_t _pid_dummy
property_id_t< OBJ > _pid_so_0d
Shared_ptr_list< GEO > _shared_list_0d
property_id_t< OBJ > _pid_so_1d
Shared_ptr_list< GEO > _shared_list_1d
property_id_t< OBJ > _pid_so_2d
Shared_ptr_list< GEO > _shared_list_2d
property_id_t< OBJ > _pid_so_3d
Shared_ptr_list< GEO > _shared_list_3d

友元

class BirdView< this_t >
class HGeometryMatcher< this_t >
class HLoadBalance< this_t >

详细描述

template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
class MPI::HGeometryForest< DIM, DOW, MATCHER >

HGeometryForest 作为 HGeometryTree 的派生类,并不是一系列的 HGeometryTree 的组合,而只是对 HGeometryTree 作了进一步的包装,使 得其可以完成不同分区之间的数据交换。

其重新实现的 readMesh 函数可以实现对具有分区类型的网格的读入。


成员类型定义文档

template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
typedef BirdViewSet<this_t> MPI::HGeometryForest< DIM, DOW, MATCHER >::birdview_set_t
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
typedef BirdView<this_t> MPI::HGeometryForest< DIM, DOW, MATCHER >::birdview_t
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
typedef HLoadBalance<this_t> MPI::HGeometryForest< DIM, DOW, MATCHER >::load_balancer_t
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
typedef MATCHER MPI::HGeometryForest< DIM, DOW, MATCHER >::matcher_t
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
typedef HGeometryForest<DIM,DOW,MATCHER> MPI::HGeometryForest< DIM, DOW, MATCHER >::this_t [private]
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
typedef HGeometryTree<DIM,DOW> MPI::HGeometryForest< DIM, DOW, MATCHER >::tree_t

构造及析构函数文档

template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
MPI::HGeometryForest< DIM, DOW, MATCHER >::HGeometryForest ( ) [inline]
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
MPI::HGeometryForest< DIM, DOW, MATCHER >::HGeometryForest ( MPI_Comm  comm) [inline]
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
virtual MPI::HGeometryForest< DIM, DOW, MATCHER >::~HGeometryForest ( ) [inline, virtual]

成员函数文档

template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
void MPI::HGeometryForest< DIM, DOW, MATCHER >::clear ( ) [inline]
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
template<class GEO >
void MPI::HGeometryForest< DIM, DOW, MATCHER >::clear_shared_info_sent ( GEO &  geo) const [inline, private]
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
MPI_Comm MPI::HGeometryForest< DIM, DOW, MATCHER >::communicator ( ) const [inline]
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
template<class GEO >
void MPI::HGeometryForest< DIM, DOW, MATCHER >::deleteGeometry ( GEO *  p_geo) [inline, private]
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
template<class GEO >
void MPI::HGeometryForest< DIM, DOW, MATCHER >::dummy ( GEO &  geo) const [inline, private]
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
void MPI::HGeometryForest< DIM, DOW, MATCHER >::erase_shared_info ( GEO &  geo) [inline]
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
void MPI::HGeometryForest< DIM, DOW, MATCHER >::erase_shared_info ( GEO &  geo) [inline]
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
void MPI::HGeometryForest< DIM, DOW, MATCHER >::erase_shared_info ( GEO &  geo) [inline]
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
void MPI::HGeometryForest< DIM, DOW, MATCHER >::erase_shared_info ( GEO &  geo) [inline]
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
void MPI::HGeometryForest< DIM, DOW, MATCHER >::eraseRootElement ( u_int  level = 1)
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
void MPI::HGeometryForest< DIM, DOW, MATCHER >::eraseRootElementOneLevel ( ) [private]
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
void MPI::HGeometryForest< DIM, DOW, MATCHER >::free_property ( ) [inline]
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
OBJ* MPI::HGeometryForest< DIM, DOW, MATCHER >::get_shared_info ( const GEO &  geo) const [inline]
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
OBJ* MPI::HGeometryForest< DIM, DOW, MATCHER >::get_shared_info ( const GEO &  geo) const [inline]
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
OBJ* MPI::HGeometryForest< DIM, DOW, MATCHER >::get_shared_info ( const GEO &  geo) const [inline]
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
OBJ* MPI::HGeometryForest< DIM, DOW, MATCHER >::get_shared_info ( const GEO &  geo) const [inline]
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
template<int D>
const Shared_ptr_list<HGeometry<D,DOW> >& MPI::HGeometryForest< DIM, DOW, MATCHER >::get_shared_list ( ) const [inline]
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
template<class GEO >
bool MPI::HGeometryForest< DIM, DOW, MATCHER >::is_dummy ( GEO &  geo) const [inline, private]
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
bool MPI::HGeometryForest< DIM, DOW, MATCHER >::is_geometry_shared ( const RegularMesh< DIM, DOW > &  mesh,
int  dim,
int  idx 
) const [inline]

作为来源于本几何遗传树的正则网格 mesh,返回其 dim 维的第 idx 个几 何体是否是共享的几何体。

template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
template<int GDIM>
bool MPI::HGeometryForest< DIM, DOW, MATCHER >::is_on_primary_rank ( const HGeometry< GDIM, DOW > &  geo) const [inline]

一个几何体的多份拷贝中,其中部分拷贝所在的进程的秩是所有拷贝中最 小的,这些拷贝所在的秩我们称为`首秩'(primary rank)。此函数返回一 个几何体是否是在首秩上。GEO 需要为 HGeometry 类型。

template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
template<int GDIM>
bool MPI::HGeometryForest< DIM, DOW, MATCHER >::is_primary_geometry ( const HGeometry< GDIM, DOW > &  geo) const [inline]

判断一个几何体是否是主对象。

template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
template<class GEO >
bool MPI::HGeometryForest< DIM, DOW, MATCHER >::is_shared_info_sent ( GEO &  geo) const [inline, private]
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
bool MPI::HGeometryForest< DIM, DOW, MATCHER >::lock ( ) [inline]
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
const matcher_t& MPI::HGeometryForest< DIM, DOW, MATCHER >::matcher ( ) const [inline]
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
matcher_t& MPI::HGeometryForest< DIM, DOW, MATCHER >::matcher ( ) [inline]
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
int MPI::HGeometryForest< DIM, DOW, MATCHER >::n_rank ( ) const [inline]
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
void MPI::HGeometryForest< DIM, DOW, MATCHER >::new_property ( ) [inline]
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
OBJ* MPI::HGeometryForest< DIM, DOW, MATCHER >::new_shared_info ( GEO &  geo) [inline]
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
OBJ* MPI::HGeometryForest< DIM, DOW, MATCHER >::new_shared_info ( GEO &  geo) [inline]
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
OBJ* MPI::HGeometryForest< DIM, DOW, MATCHER >::new_shared_info ( GEO &  geo) [inline]
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
OBJ* MPI::HGeometryForest< DIM, DOW, MATCHER >::new_shared_info ( GEO &  geo) [inline]
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
template<class GEO >
void MPI::HGeometryForest< DIM, DOW, MATCHER >::nullParent ( GEO &  geo) [inline, private]
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
template<int GDIM>
int MPI::HGeometryForest< DIM, DOW, MATCHER >::primary_rank ( const HGeometry< GDIM, DOW > &  geo) const [inline]

返回一个几何体的首秩。

template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
int MPI::HGeometryForest< DIM, DOW, MATCHER >::rank ( ) const [inline]
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
void MPI::HGeometryForest< DIM, DOW, MATCHER >::readMesh ( const std::string &  )

This is the routine used to read in the mesh data in the internal data format.

重载HGeometryTree< DIM, DOW >

template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
void MPI::HGeometryForest< DIM, DOW, MATCHER >::renumerateRootElement ( void(*)(double, double, double, double &, double &, double &)  f = NULL)
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
void MPI::HGeometryForest< DIM, DOW, MATCHER >::set_communicator ( MPI_Comm  comm) [inline]
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
template<class GEO >
void MPI::HGeometryForest< DIM, DOW, MATCHER >::set_shared_info_sent ( GEO &  geo) const [inline, private]
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
template<class GEO >
void MPI::HGeometryForest< DIM, DOW, MATCHER >::tryDeleteGeometry ( GEO *  p_geo,
const property_id_t< bool > &  pid 
) [inline, private]

顺手将其共享信息列表中入口删除

template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
template<class GEO >
void MPI::HGeometryForest< DIM, DOW, MATCHER >::undummy ( GEO &  geo) const [inline, private]
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
void MPI::HGeometryForest< DIM, DOW, MATCHER >::unlock ( ) [inline]

友元及相关函数文档

template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
friend class BirdView< this_t > [friend]
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
friend class HGeometryMatcher< this_t > [friend]
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
friend class HLoadBalance< this_t > [friend]

成员数据文档

template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
MPI_Comm MPI::HGeometryForest< DIM, DOW, MATCHER >::_comm [private]
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
matcher_t MPI::HGeometryForest< DIM, DOW, MATCHER >::_matcher [private]
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
int MPI::HGeometryForest< DIM, DOW, MATCHER >::_n_rank [private]
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
property_id_t MPI::HGeometryForest< DIM, DOW, MATCHER >::_pid_dummy [private]

在使用不是基于最初背景单元的负载平衡的时候,有些几何体会在分区上存 储为哑几何体。所谓哑几何体,我们定义其为将不可能会在分区的网格中出 现的几何体,包括根单元的前辈几何体和根单元的那些不是根单元兄弟,以 及这些哑单元几何体的部分边界和顶点。

template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
property_id_t MPI::HGeometryForest< DIM, DOW, MATCHER >::_pid_shared_info_sent [private]

表示几何体的匹配信息是否已经发送的性质。几何体对所有应该进行匹配 的进程都已经发送了自身的匹配信息之后,此性质将会被设置。函数 is_shared_info_sent 和 set_shared_info_sent 对此性质进行设置和查 询。

template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
property_id_t<OBJ> MPI::HGeometryForest< DIM, DOW, MATCHER >::_pid_so_0d [private]
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
property_id_t<OBJ> MPI::HGeometryForest< DIM, DOW, MATCHER >::_pid_so_1d [private]
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
property_id_t<OBJ> MPI::HGeometryForest< DIM, DOW, MATCHER >::_pid_so_2d [private]
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
property_id_t<OBJ> MPI::HGeometryForest< DIM, DOW, MATCHER >::_pid_so_3d [private]
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
int MPI::HGeometryForest< DIM, DOW, MATCHER >::_rank [private]
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
Shared_ptr_list<GEO> MPI::HGeometryForest< DIM, DOW, MATCHER >::_shared_list_0d [private]
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
Shared_ptr_list<GEO> MPI::HGeometryForest< DIM, DOW, MATCHER >::_shared_list_1d [private]
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
Shared_ptr_list<GEO> MPI::HGeometryForest< DIM, DOW, MATCHER >::_shared_list_2d [private]
template<int DIM, int DOW = DIM, class MATCHER = PointDistance<DOW>>
Shared_ptr_list<GEO> MPI::HGeometryForest< DIM, DOW, MATCHER >::_shared_list_3d [private]

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