XAnalysis

Inherited from NItem,

Inherited by NULL

Friend class NULL

Description

XAnalysis从NItem继承,是分析设定的基类,建好的模型在求解之前需要完成分析设定并按照分析设定输出为求解器所能解析的文本文件或二进制文件,不同的求解器所需要的分析设定并不一样,XAnalysis为它们提供了统一的访问接口。一个分析必须应用在一套网格模型上,至少包含一个工况设定,用户可以添加更多的工况构建多工况序列,这些工况仅可以加入对应求解器所支持的材料属性、边界载荷约束等设定,对于给定的求解器来说,一般会根据不同应用场景设置不同的分析类型,如静力分析、模态分析、热分析等。

XAnalysis封装了分析设定的各种参数,基类已经提供了不同的求解类型,可以通过接口getSolutionType访问和setSolutionType设置,预置的求解类型列举如下:

枚举量 说明
Analysis_Struct_Static 1 静力分析
Analysis_Struct_Transient 2 瞬态分析
Analysis_Struct_Modal 3 模态分析
Analysis_Thermal_SteadyState 7 热力学稳态分析
Analysis_Thermal_Transient 8 热力学瞬态分析

分析的求解须通过XJob调度才能执行。

Members

Public interface


const XJob * m_pJob

ulong m_SolutionType

XModel * m_pMeshMdl

const XLoadCase * m_pFront = 0, *m_pBack = 0

ulong m_ulCount = 0


XAnalysis(ulong id, int type)

virtual ~XAnalysis()

static const char * getSolutionTypeString(AnalysisSolutionType type)

AnalysisSolutionType getSolutionType() const

void setSolutionType(AnalysisSolutionType t)

virtual bool isConditionSupported(const XCondition * cnd) const

XModel * getMesh() const

void setMesh(XModel * mdl)

void addCase(XLoadCase * lc, XManager * lcMgr)

void removeCase(XLoadCase * lc, XManager * lcMgr)

int getCaseCount() const

int getCaseIndex(const XLoadCase * lc) const

const XLoadCase * getCase(int index = 0) const

void bindCaseIterator(OrderItemIterator<XLoadCase> * hIter) const

void clear()

virtual void write(XBinaryIO * io)

virtual ErrorCode read(XBinaryIO * io, ModelManager* meshMgr, LoadCaseManager * lcMgr)

virtual bool checkDataCompleteness() const

virtual void setAttribute(const XAttribute * atb)

void instantiateCondition(ConditionInstanceManager * ciMgr) const

virtual void listProperty(vector<ObjPropertyEntry> * prpSheet) const

virtual bool isResultOutput(TypeID rtype) const

virtual const TypeID * getOutputOptions() const

virtual int countOutputOptions() const