AFEPack
公有类型 | 公有成员 | 私有类型 | 私有成员 | 私有属性
MPI::HGeometryMatcher< FOREST >模板类参考

#include <MPI_HGeometry.h>

所有成员的列表。

公有类型

enum  { dim = FOREST::dim, dow = FOREST::dow }
typedef FOREST forest_t

公有成员

 HGeometryMatcher (forest_t &forest)
bool match_geometry ()
template<int GDIM>
bool is_pack_match_geometry (HGeometry< GDIM, dow > *geo) const
template<int GDIM>
void pack_match_geometry (HGeometry< GDIM, dow > *geo, int remote_rank, AFEPack::ostream<> &os)
template<int GDIM>
void unpack_match_geometry (HGeometry< GDIM, dow > *geo, int remote_rank, AFEPack::istream<> &is)
void set_matcher (const matcher_t &_matcher)
bool sync_is_used ()
template<int GDIM>
void pack_sync_is_used (HGeometry< GDIM, dow > *geo, int remote_rank, AFEPack::ostream<> &os)
template<int GDIM>
void unpack_sync_is_used (HGeometry< GDIM, dow > *geo, int remote_rank, AFEPack::istream<> &is)

私有类型

typedef HGeometryMatcher
< forest_t
this_t
typedef forest_t::matcher_t matcher_t

私有成员

const matcher_tmatcher () const
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 >
Shared_object< GEO > * new_shared_info (GEO &geo) const
template<class GEO >
Shared_object< GEO > * get_shared_info (GEO &geo) const
template<class GEO >
void geometry_reference_point (GEO &geo, afepack::Point< dow > &pnt) const
void geometry_reference_point (HGeometry< 0, dow > &geo, afepack::Point< dow > &pnt) const

私有属性

HTools _tools
forest_t_forest
bool _is_operated

详细描述

template<class FOREST>
class MPI::HGeometryMatcher< FOREST >

HGeometryMatcher 完成不同分区上最主要的数据匹配和交换的工作,这包 括不同分区上的共享几何体的匹配,以及不同分区上几何体上附着的信息 的交换。完成不同分区上共享几何体的匹配的过程中遵循下面的原则:

1. 每个几何体由谁来匹配:

a. 如果一个几何体有父亲几何体,则由其父亲完成匹配,因为有父亲的 几何体的共享结构必定与其父亲相同;

b. 如果一个几何体没有父亲几何体,则由其高一维的几何体完成匹配, 因为对没有父亲的几何体,其共享结构必定与其高一维几何体相同;

c. 对于点几何体,由其所属的线段几何体对其进行匹配,对于自适应 过程中产生的点几何体,其共享结构必定与其所属的线段几何体相 同;

2. 几何体的匹配信息可能发送多次,但是都是完全一致的信息;

下面实现的另一个交换是对几何体上的是否处于 USED 状态进行特定的同步, 使得其中的一个拷贝的成为 USED 状态时,其他的拷贝都会成为 USED 状态。


成员类型定义文档

template<class FOREST >
typedef FOREST MPI::HGeometryMatcher< FOREST >::forest_t
template<class FOREST >
typedef forest_t::matcher_t MPI::HGeometryMatcher< FOREST >::matcher_t [private]
template<class FOREST >
typedef HGeometryMatcher<forest_t> MPI::HGeometryMatcher< FOREST >::this_t [private]

成员枚举类型文档

template<class FOREST >
anonymous enum
枚举值:
dim 
dow 

构造及析构函数文档

template<class FOREST >
MPI::HGeometryMatcher< FOREST >::HGeometryMatcher ( forest_t forest) [inline]

成员函数文档

template<class FOREST >
template<class GEO >
void MPI::HGeometryMatcher< FOREST >::geometry_reference_point ( GEO geo,
afepack::Point< dow > &  pnt 
) const [inline, private]

计算一个几何体做匹配时候的参考坐标点。

template<class FOREST >
void MPI::HGeometryMatcher< FOREST >::geometry_reference_point ( HGeometry< 0, dow > &  geo,
afepack::Point< dow > &  pnt 
) const [inline, private]
template<class FOREST >
template<class GEO >
Shared_object<GEO>* MPI::HGeometryMatcher< FOREST >::get_shared_info ( GEO geo) const [inline, private]
template<class FOREST >
template<int GDIM>
bool MPI::HGeometryMatcher< FOREST >::is_pack_match_geometry ( HGeometry< GDIM, dow > *  geo) const
template<class FOREST >
template<class GEO >
bool MPI::HGeometryMatcher< FOREST >::is_shared_info_sent ( GEO geo) const [inline, private]
template<class FOREST >
bool MPI::HGeometryMatcher< FOREST >::match_geometry ( )

对几何遗传树中的几何体进行匹配,使得几何体的复制品在不同的分区 中具有完全相同的树结构。在树结构被修改了以后需要使用此操作进行 匹配。函数 pack_match_geometry 和 unpack_match_geometry 作为对 此操作中的函数指针的支持。返回是否确实进行了操作。

template<class FOREST >
const matcher_t& MPI::HGeometryMatcher< FOREST >::matcher ( ) const [inline, private]
template<class FOREST >
template<class GEO >
Shared_object<GEO>* MPI::HGeometryMatcher< FOREST >::new_shared_info ( GEO geo) const [inline, private]
template<class FOREST >
template<int GDIM>
void MPI::HGeometryMatcher< FOREST >::pack_match_geometry ( HGeometry< GDIM, dow > *  geo,
int  remote_rank,
AFEPack::ostream<> &  os 
)
template<class FOREST >
template<int GDIM>
void MPI::HGeometryMatcher< FOREST >::pack_sync_is_used ( HGeometry< GDIM, dow > *  geo,
int  remote_rank,
AFEPack::ostream<> &  os 
)
template<class FOREST >
void MPI::HGeometryMatcher< FOREST >::set_matcher ( const matcher_t _matcher) [inline]

设置点匹配器。

template<class FOREST >
template<class GEO >
void MPI::HGeometryMatcher< FOREST >::set_shared_info_sent ( GEO geo) const [inline, private]
template<class FOREST >
bool MPI::HGeometryMatcher< FOREST >::sync_is_used ( )

对分区间共享的几何体的 index 进行同步化,如果有一个备份的设为了 USED 状态,就将所有备份都设置为 USED 状态。函数 pack_sync_is_used 和 unpack_sync_is_used 作为对 此操作中的函数指 针的支持。

template<class FOREST >
template<int GDIM>
void MPI::HGeometryMatcher< FOREST >::unpack_match_geometry ( HGeometry< GDIM, dow > *  geo,
int  remote_rank,
AFEPack::istream<> &  is 
)
template<class FOREST >
template<int GDIM>
void MPI::HGeometryMatcher< FOREST >::unpack_sync_is_used ( HGeometry< GDIM, dow > *  geo,
int  remote_rank,
AFEPack::istream<> &  is 
)

成员数据文档

template<class FOREST >
forest_t* MPI::HGeometryMatcher< FOREST >::_forest [private]
template<class FOREST >
bool MPI::HGeometryMatcher< FOREST >::_is_operated [private]
template<class FOREST >
HTools MPI::HGeometryMatcher< FOREST >::_tools [private]

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