Inherited from OrderItem,
Inherited by NULL
Friend class XLoadCase,XManager,ConditionInstanceManager,
Description
XConditionInstance是边界条件在分析步中的实例化表达,它封装了边界条件的实例状态以及实例系数,它的类型标识为“CCNDINSTANCE”。XConditionInstance从边界条件的原型构建,属且仅属于一个XLoadCase,它将边界条件应用在分析步所指定的网格上并离散得到可以直接被求解器所使用的数据,当同一个分析步存在多个工况时,各工况所包含的条件实例应按顺序一一对应,且从第二个工况开始,工况所包含的条件实例可参考第一个工况对应实例的网格对象数据(不需要重新离散应用对象),仅需按照实例的设定重新构建条件数据即可,既可以节约内存又可以提高运行速度。
条件实例将边界条件与分析步解耦,解决了边界条件在不同分析步中的耦合问题,尤其是对于单点约束和多点约束可能导致的约束冲突以及局部坐标系的冲突,可在分析步内统一处理,使得多工况多分析步应用可以有更大的弹性空间定制专用的业务流程。
Members
Public interface
const XCondition * m_pProto
实例所对应的边界条件原型
const XConditionInstance * m_pRef
参考条件实例,可以共享参考示例的网格数据
real m_dScale
边界条件的实例系数,默认为1.0
TypeID m_Mode
边界条件的实例状态,默认为激活有效
XArray<ItemPtr> m_pMeshArr[2]
实例的网格数据(单元或者节点)
XArray<double> m_pDataArr[6]
实例的条件数据(在数据场的情况下,不同网格元素的值可能各不相同。
XConditionInstance(ulong id)
void setScale(real scale = 1.0)
real getScale() const
bool isEnabled() const
void setEnabled(bool b)
const XCondition * getPrototype() const
void setPrototype(const XCondition * cnd)
const char * getConditionName() const
const XLoadCase * getCase() const
void setCase(const XLoadCase * cnd)
const XConditionInstance * getRefInstance() const
void setRefInstance(const XConditionInstance * cnd)
void allocArray(int dataSize, int cpNumber = 1, bool bConnection = false)
void resizeMeshArray(int role, int datasize)
XArray<double> * getDataArray(int index = 0)
XArray<ItemPtr> * getNodeArray()
XArray<ItemPtr> * getElemArray()
XArray<ItemPtr> * getMasterArray()
XArray<ItemPtr> * getSlaveArray()
const XArray<double> * getDataArray(int index = 0)const
const XArray<ItemPtr> * getNodeArray() const
const XArray<ItemPtr> * getElemArray()const
const XArray<ItemPtr> * getMasterArray() const
const XArray<ItemPtr> * getSlaveArray() const
void clear()
void write(XH5IO * io, H5Obj * grp) const
bool read(XH5IO * io, H5Obj * grp)
real getDataOnNode(const XNode * n, int dataDim)
real getDataOnElem(const XElement * el, int dataDim)
void write(XBinaryIO * io) const
ErrorCode read(XBinaryIO * io, ConditionManager * cndMgr)