Inherited from NULL
Inherited by NULL
Friend class NULL
Description
ResultIndexMap封装了面向结果数据的网格索引映射表,它的作用是在构建显示结果的视图数据时,优化节点和单元的顺序并将该顺序以成员变量(RID)的形式固定下来,使程序在切换结果的时候可以以最快的速度从结果缓冲区中取出相应的结果。这么做的原因是由于结果模型的网格并不保证是自然顺序排序,XT为了提高性能,结果数据会按照节点和单元的顺序保存到结果缓冲区中,结果缓冲区根据需要可保存到硬盘上或者从硬盘上读取。 XT对节点的重排顺序为:
对单元的重排顺序为:
对于节点结果,按照节点排序即可;对于单元结果按照单元排序即可;对于积分点结果,需要另外一个数组按单元的顺序记录每个单元的结果位置偏移量,下一个结果的位置偏移量与前一个结果的位置偏移量相减即可得到单元的积分点数;对于单元节点结果,需要另外一个数组按单元的顺序记录每个单元的结果位置偏移量,下一个结果的位置偏移量与前一个结果的位置偏移量相减即可得到单元的节点数。
需要强调的是结果索引映射表是与模型相关的,不同模型节点数一般不同,单元数一般不同,板壳杆梁实体等属性分类也不尽相同,因此不同的模型需要构建不同的映射表。
Members
Public interface
Private interface
XArray<int> m_ElemNodeRIDs
XArray<int> m_ElemNodeIndex
XArray<int> m_ElemIntegralPointIndex
XArray<int> m_NodeIndex
MeshCount m_MCount
bool m_bHasBeam
bool m_bHasShell
bool m_bHasSolid
XModel * m_pMdl
ResultIndexMap(XModel * mdl)
~ResultIndexMap()
void setModel(XModel * mdl)
XModel * getModel()
void clear()
ErrorCode read(H5IO * io, H5Obj * grp)
void write(H5IO * io, H5Obj * grp)
void build()
void matchFaceResult(XResult * rlt, int comp)
void matchEdgeResult(XResult * rlt, int comp)
void reset(int nodal_cnt)
MeshCount & getMeshCount()
bool hasBeam() const
bool hasShell() const
bool hasSolid() const
int * getElementIntegralPointIndexData()
int getElementIntegralPointIndexBegin(const XElement * el)
int getElementIntegralPointIndexEnd(const XElement * el)
int getTotalIntegralPointCount() const
int getShellIntegralPointCount() const
int getBeamIntegralPointCount() const
void setElementIntegralPointIndex(const int * indexArr, int size)
int * getElementNodeIndexData()
int getElementNodeIndexBegin(const XElement *el)
int getElementNodeIndexEnd(const XElement *el)
const int * getElementNodeRIDData() const
void exportIndex(const char *fname)
int getNodeIDByRID(int rid)
void reindexMesh(XModel * mdl)