====== XMaterialEntry ====== **//Inherited from//** [[class::domain::orderitem|OrderItem]], **//Inherited by//** NULL **//Friend class//** XManager,MaterialEntryManager,MaterialManager,XMaterial, **//Description//** XMaterialEntry将材料子项作为一个数据基类做了封装,它不能被单独创建,它一般作为材料对象(XMaterial)的从属对象创建,每一个材料子项仅从属于一个材料对象。材料子项类型众多,常用的可以分为密度、弹性、塑性、膨胀、热传导、比热、蠕变、阻尼等类型,对于每种类型的材料子项,它可以是各向同性、三维正交各向异性、三维各向异性、二维正交各向异性、二维各向异性、各向同性场、三维正交各向异性场、三维各向异性场、二维正交各向异性场、二维各向异性场中的任意一种选项(option),其中前5种是常量类型,后5种是场类型,比如受温度影响而变化的材料场等, 场类型的材料子项可以根据需要定义一个或多个影响因素,比如温度、坐标等。 相同类型的材料子项不能从属于同一个材料对象,访问材料子项时必须首先访问材料对象。 材料子项遵照一定的原则可以自由扩展,它的参考标识前缀为"CMAT"。材料子项的属性均从MaterialEntryAttrib继承。 **//Members//** * XDataField [[xmaterialentry#m_field|m_Field]] **//Public interface//** * [[xmaterialentry#xmaterialentry1|XMaterialEntry]](ulong id, TypeID tid) * void [[xmaterialentry#setmaterial|setMaterial]](const XMaterial * mat) * const XMaterial * [[xmaterialentry#getmaterial|getMaterial]]() const * virtual const MaterialEntryAttrib * [[xmaterialentry#getattribute|getAttribute]]() const = 0 * virtual void [[xmaterialentry#setattribute|setAttribute]](const MaterialEntryAttrib * pAttr) = 0 * virtual void [[xmaterialentry#savetoxml|saveToXml]](XmlWriter * pWriter, XmlElement * pParent) * virtual void [[xmaterialentry#loadfromxml|loadFromXml]](XmlReader * pReader, XmlElement * pParent) * virtual const double * [[xmaterialentry#data|data]]() const = 0 * virtual int [[xmaterialentry#datacount|dataCount]]() const = 0 * virtual void [[xmaterialentry#write|write]](XBinaryIO * io) * virtual ErrorCode [[xmaterialentry#read|read]](XBinaryIO * io) * const XDataField * [[xmaterialentry#getfield|getField]]() const * XDataField * [[xmaterialentry#getfield|getField]]() * void [[xmaterialentry#setfield|setField]](const XDataField * df) * void [[xmaterialentry#copy|copy]](const XMaterialEntry * from) * virtual [[xmaterialentry#~xmaterialentry|~XMaterialEntry]]() * virtual void [[xmaterialentry#exchangedata|exchangeData]](ParamList * pl, const char * typeStr) = 0 * void [[xmaterialentry#write|write]](XH5IO * io, H5Obj * grp) * bool [[xmaterialentry#read|read]](XH5IO * io, H5Obj * grp) ---- {{anchor:m_field}} **XDataField m_Field** 材料子项数据场 ---- {{anchor:xmaterialentry1}} **XMaterialEntry(ulong id, TypeID tid) ** *function: 构造函数 *parameters: - [i]ulong id: 身份ID - [i] TypeID tid: 子项类型 *return value: 无 {{anchor:setmaterial}} **void setMaterial(const XMaterial * mat)** *function: 绑定从属材料对象 *parameters: - [i]const XMaterial * mat: 材料对象指针 *return value: 无 {{anchor:getmaterial}} **const XMaterial * getMaterial() const** *function: 获取所从属的材料对象 *parameters: NULL *return value: 材料对象指针 {{anchor:getattribute}} **virtual const MaterialEntryAttrib * getAttribute() const = 0** *function: 获取属性 *parameters: NULL *return value: 属性指针 {{anchor:setattribute}} **virtual void setAttribute(const MaterialEntryAttrib * pAttr) = 0** *function: 设置材料子项属性 *parameters: - [i]const MaterialEntryAttrib * pAttr: 属性 *return value: 无 {{anchor:savetoxml}} **virtual void saveToXml(XmlWriter * pWriter, XmlElement * pParent)** *function: 将材料子项数据保存到Xml文件中 *parameters: - [i]XmlWriter * pWriter: xml文件句柄 - [i] XmlElement * pParent: 对应的xml节点 *return value: 无 {{anchor:loadfromxml}} **virtual void loadFromXml(XmlReader * pReader, XmlElement * pParent)** *function: 从xml文件中读取材料子项数据 *parameters: - [i]XmlReader * pReader: xml文件句柄 - [i] XmlElement * pParent: 对应的xml节点 *return value: 无 {{anchor:data}} **virtual const double * data() const = 0** *function: 获取材料子项数据值数组 *parameters: NULL *return value: 材料子项数据值数组首地址 {{anchor:datacount}} **virtual int dataCount() const = 0** *function: 获取材料子项数据值个数 *parameters: NULL *return value: 材料子项数据值个数 {{anchor:write}} **virtual void write(XBinaryIO * io)** *function: 将材料子项数据写入到二进制文件中 *parameters: - [i]XBinaryIO * io: 二进制文件句柄 *return value: 无 {{anchor:read}} **virtual ErrorCode read(XBinaryIO * io)** *function: 从二进制文件中读取材料子项数据 *parameters: - [i]XBinaryIO * io: 二进制文件句柄 *return value: 成功读取返回Error_None,否则返回相应错误码 {{anchor:getfield}} **const XDataField * getField() const** *function: 获取数据场,对于const对象使用 *parameters: NULL *return value: 数据场地址 {{anchor:getfield}} **XDataField * getField()** *function: 获取数据场 *parameters: NULL *return value: 数据场地址 {{anchor:setfield}} **void setField(const XDataField * df)** *function: 设置数据场 *parameters: - [i]const XDataField * df: 数据场对象指针 *return value: 无 {{anchor:copy}} **void copy(const XMaterialEntry * from)** *function: 复制拷贝材料子项 *parameters: - [i]const XMaterialEntry * from: 源材料子项 *return value: 无 {{anchor:~xmaterialentry}} **virtual ~XMaterialEntry()** *function: 析构函数 *parameters: NULL *return value: 无 {{anchor:write}} **void write(XH5IO * io, H5Obj * grp)** *function: 将材料子项数据写入到HDF5文件中 *parameters: - [i]XH5IO * io: HDF5文件句柄 - [i] H5Obj * grp: 对应的HDF5节点 *return value: 无 {{anchor:read}} **bool read(XH5IO * io, H5Obj * grp)** *function: 从HDF5文件中读取材料子项数据 *parameters: - [i]XH5IO * io: HDF5文件句柄 - [i] H5Obj * grp: 对应的HDF5节点 *return value: 成功读取返回true,否则返回false