XConditionInstance

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)