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

#include <MPI_DOF.h>

所有成员的列表。

公有类型

typedef FOREST forest_t
typedef FESPACE fe_space_t

公有成员

 GlobalIndex ()
 GlobalIndex (const forest_t &forest)
 GlobalIndex (const forest_t &forest, const fe_space_t &fe_sp)
 GlobalIndex (const this_t &gi)
this_toperator= (const this_t &gi)
void build ()
void build_primary_index (int *idx_ptr) const
template<class LC , class GC >
void translate (const LC &lc, GC &gc) const
bool is_dof_on_primary_geometry (u_int i) const
 查询一个自由度是否在主几何体上
int dof_primary_rank (u_int i) const
 查询一个自由度的首秩
const forest_tforest () const
void set_forest (const forest_t &forest)
const fe_space_tfe_space () const
void set_fe_space (const fe_space_t &fe_sp)
u_int n_global_dof () const
u_int n_primary_dof () const
u_int n_local_dof () const
int first_index () const
int last_index () const
template<class MAP >
void build_epetra_map (MAP &map) const
template<class MAP , class INVMAP >
void build_epetra_map (MAP &map, INVMAP &inv_map) const
template<class INVEC , class OUTVEC >
void scatter_hypre_vector (INVEC &iv, OUTVEC &ov) const
const int & operator() (u_int i) const
int & operator() (u_int i)
template<int GDIM>
void pack_global_idx (HGeometry< GDIM, fe_space_t::dow > *geo, int remote_rank, AFEPack::ostream<> &os)
template<int GDIM>
void unpack_global_idx (HGeometry< GDIM, fe_space_t::dow > *geo, int remote_rank, AFEPack::istream<> &is)

私有类型

enum  { UNUSED_IDX = -1 }
typedef std::vector< int > base_t
typedef GlobalIndex< forest_t,
fe_space_t
this_t

私有成员

bool _is_dof_on_primary_geometry (u_int i) const
 查询一个自由度是否在主几何体上
void sync_idx ()

私有属性

const forest_t_forest
const fe_space_t_fe_sp
u_int _n_global_dof
u_int _n_primary_dof
int _first_idx
property_id_t< BinaryBuffer<> > _pid_global_idx
std::vector< bool > _idopg
 进程间进行自由度指标同步

template<class FOREST, class FESPACE>
class MPI::DOF::GlobalIndex< FOREST, FESPACE >


成员类型定义文档

template<class FOREST , class FESPACE >
typedef std::vector<int> MPI::DOF::GlobalIndex< FOREST, FESPACE >::base_t [private]
template<class FOREST , class FESPACE >
typedef FESPACE MPI::DOF::GlobalIndex< FOREST, FESPACE >::fe_space_t
template<class FOREST , class FESPACE >
typedef FOREST MPI::DOF::GlobalIndex< FOREST, FESPACE >::forest_t
template<class FOREST , class FESPACE >
typedef GlobalIndex<forest_t,fe_space_t> MPI::DOF::GlobalIndex< FOREST, FESPACE >::this_t [private]

成员枚举类型文档

template<class FOREST , class FESPACE >
anonymous enum [private]
枚举值:
UNUSED_IDX 

构造及析构函数文档

template<class FOREST , class FESPACE >
MPI::DOF::GlobalIndex< FOREST, FESPACE >::GlobalIndex ( ) [inline]
template<class FOREST , class FESPACE >
MPI::DOF::GlobalIndex< FOREST, FESPACE >::GlobalIndex ( const forest_t forest) [inline, explicit]
template<class FOREST , class FESPACE >
MPI::DOF::GlobalIndex< FOREST, FESPACE >::GlobalIndex ( const forest_t forest,
const fe_space_t fe_sp 
) [inline]
template<class FOREST , class FESPACE >
MPI::DOF::GlobalIndex< FOREST, FESPACE >::GlobalIndex ( const this_t gi) [inline]

成员函数文档

template<class FOREST , class FESPACE >
bool MPI::DOF::GlobalIndex< FOREST, FESPACE >::_is_dof_on_primary_geometry ( u_int  i) const [private]

查询一个自由度是否在主几何体上

template<class FOREST , class FESPACE >
void MPI::DOF::GlobalIndex< FOREST, FESPACE >::build ( )

建立全局自由度指标。

template<class FOREST , class FESPACE >
template<class MAP >
void MPI::DOF::GlobalIndex< FOREST, FESPACE >::build_epetra_map ( MAP &  map) const

建立 Trilinos 的 Epetra 的映射。

template<class FOREST , class FESPACE >
template<class MAP , class INVMAP >
void MPI::DOF::GlobalIndex< FOREST, FESPACE >::build_epetra_map ( MAP &  map,
INVMAP &  inv_map 
) const
template<class FOREST , class FESPACE >
void MPI::DOF::GlobalIndex< FOREST, FESPACE >::build_primary_index ( int *  idx_ptr) const

从本地自由度中抽出所有在首秩上的自由度,放入数组 idx_ptr 中。

template<class FOREST , class FESPACE >
int MPI::DOF::GlobalIndex< FOREST, FESPACE >::dof_primary_rank ( u_int  i) const

查询一个自由度的首秩

template<class FOREST , class FESPACE >
const fe_space_t& MPI::DOF::GlobalIndex< FOREST, FESPACE >::fe_space ( ) const [inline]

取有限元空间。

template<class FOREST , class FESPACE >
int MPI::DOF::GlobalIndex< FOREST, FESPACE >::first_index ( ) const [inline]
template<class FOREST , class FESPACE >
const forest_t& MPI::DOF::GlobalIndex< FOREST, FESPACE >::forest ( ) const [inline]

取森林。

template<class FOREST , class FESPACE >
bool MPI::DOF::GlobalIndex< FOREST, FESPACE >::is_dof_on_primary_geometry ( u_int  i) const

查询一个自由度是否在主几何体上

template<class FOREST , class FESPACE >
int MPI::DOF::GlobalIndex< FOREST, FESPACE >::last_index ( ) const [inline]
template<class FOREST , class FESPACE >
u_int MPI::DOF::GlobalIndex< FOREST, FESPACE >::n_global_dof ( ) const [inline]

取全局自由度个数,局部的在首秩上的自由度个数,局部的自由度个数, 以及第一个在首秩上的自由度的全局指标。

template<class FOREST , class FESPACE >
u_int MPI::DOF::GlobalIndex< FOREST, FESPACE >::n_local_dof ( ) const [inline]
template<class FOREST , class FESPACE >
u_int MPI::DOF::GlobalIndex< FOREST, FESPACE >::n_primary_dof ( ) const [inline]
template<class FOREST , class FESPACE >
const int& MPI::DOF::GlobalIndex< FOREST, FESPACE >::operator() ( u_int  i) const [inline]

取局部的第 i 个自由度的全局指标。

template<class FOREST , class FESPACE >
int& MPI::DOF::GlobalIndex< FOREST, FESPACE >::operator() ( u_int  i) [inline]
template<class FOREST , class FESPACE >
this_t& MPI::DOF::GlobalIndex< FOREST, FESPACE >::operator= ( const this_t gi) [inline]
template<class FOREST , class FESPACE >
template<int GDIM>
void MPI::DOF::GlobalIndex< FOREST, FESPACE >::pack_global_idx ( HGeometry< GDIM, fe_space_t::dow > *  geo,
int  remote_rank,
AFEPack::ostream<> &  os 
)

内部使用。在建立全局指标时打包和解包数据。

template<class FOREST , class FESPACE >
template<class INVEC , class OUTVEC >
void MPI::DOF::GlobalIndex< FOREST, FESPACE >::scatter_hypre_vector ( INVEC &  iv,
OUTVEC &  ov 
) const

将 Hypre 的全局向量分发为局部向量。

Hypre 的全局向量仅仅能够读出在本进程上的元素,而分布式的有限元 函数需要部分远程的元素才能够构建完整的信息。本函数将 Hypre 的向 量中的元素进行一些分发,使得分布式的有限元函数能够获得其需要的 远程元素的值,从而其能够被 AFEPack 的内部使用。

模板参数 INVEC 需为 HYPRE_IJVector, OUTVEC 需为 Vector<double> 或者其派生类。

template<class FOREST , class FESPACE >
void MPI::DOF::GlobalIndex< FOREST, FESPACE >::set_fe_space ( const fe_space_t fe_sp) [inline]
template<class FOREST , class FESPACE >
void MPI::DOF::GlobalIndex< FOREST, FESPACE >::set_forest ( const forest_t forest) [inline]
template<class FOREST , class FESPACE >
void MPI::DOF::GlobalIndex< FOREST, FESPACE >::sync_idx ( ) [private]
template<class FOREST , class FESPACE >
template<class LC , class GC >
void MPI::DOF::GlobalIndex< FOREST, FESPACE >::translate ( const LC &  lc,
GC &  gc 
) const

从本地到全局指标数组的转换。

template<class FOREST , class FESPACE >
template<int GDIM>
void MPI::DOF::GlobalIndex< FOREST, FESPACE >::unpack_global_idx ( HGeometry< GDIM, fe_space_t::dow > *  geo,
int  remote_rank,
AFEPack::istream<> &  is 
)

成员数据文档

template<class FOREST , class FESPACE >
const fe_space_t* MPI::DOF::GlobalIndex< FOREST, FESPACE >::_fe_sp [private]
template<class FOREST , class FESPACE >
int MPI::DOF::GlobalIndex< FOREST, FESPACE >::_first_idx [private]
template<class FOREST , class FESPACE >
const forest_t* MPI::DOF::GlobalIndex< FOREST, FESPACE >::_forest [private]
template<class FOREST , class FESPACE >
std::vector<bool> MPI::DOF::GlobalIndex< FOREST, FESPACE >::_idopg [private]

进程间进行自由度指标同步

template<class FOREST , class FESPACE >
u_int MPI::DOF::GlobalIndex< FOREST, FESPACE >::_n_global_dof [private]
template<class FOREST , class FESPACE >
u_int MPI::DOF::GlobalIndex< FOREST, FESPACE >::_n_primary_dof [private]
template<class FOREST , class FESPACE >
property_id_t<BinaryBuffer<> > MPI::DOF::GlobalIndex< FOREST, FESPACE >::_pid_global_idx [private]

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