====== XT Property ====== 对于几何域,需要设定材料及单元属性(如果几何被划分网格)。材料在仿真分析中是一个宏大的主题,它表征了仿真分析中仿真对象所使用的材料本构模型,在不同应用领域中都有各自独特的材料本构模型。材料本构包含的数据复杂多样,不同分析所需要的数据有很大差异,因此XT将材料数据细分为密度、弹性、塑性、膨胀、热传导、比热等不同类别的子项(XMaterialEntry),将材料对象设计为若干材料子项的容器,用户可以根据需要添加相应的材料子项,每种类型的材料子项至多包含一个。XT系统内置了密度、弹性、塑性、膨胀、热传导、比热等子项,开发者可以[[reference:materialentryextension|自由扩展]]定制专用的材料子项。 对于每一种材料子项它又细分为不同的具体本构类型,在任何一个时刻,每一种材料子项只能对应一种本构类型(Constitutive Model),每一种本构类型都有一个字符串名标识,在一个材料子项内,不同本构类型字符串名不能重名,但是他们都共用相同的内存空间,材料子项内部切换本构类型不需要删除旧的本构模型再创建新的本构模型,直接修改本构类型即可,使用起来非常方便。开发者需要为每一种本构模型声明定义本构模型处理句柄,它被用来解释本构模型所有的参数在内存空间如何布局(即属性参数变量的类型与顺序)并且提供接口用于访问其参数及实现文件IO。这样设计的目的是为了保证开发人员在不修改框架库的前提下可以任意扩展定制开发自己需要的材料子项及它所支持的本构模型。\\ 根据应用场景的需要,可以将需要特定本构类型的材料子项组合在一起形成本构材料组合,这种方式将细节封装在底层,用户使用起来直观,也方便定制化实现。 XProperty是封装了单元属性信息的数据基类,它支持各种类型的单元属性,并提供一种通用的、可扩展的属性结构,此外,它还提供一组易于使用和维护的API,使用户可以轻松创建、修改和查询单元属性。对于大多数仿真分析(如有限元分析、流体分析),几何模型需要被离散成网格微元,单元属性可以求解器知道该单元使用何种本构关系,如何构建微分方程在单元上的求解矩阵。对于结构分析来说,单元属性分为实体、板壳、杆梁以及集中点从三维到0维的四类属性,单元属性一般需要选择应用对象(单元集合)并绑定材料数据,其中板壳还需要补充厚度信息,杆梁需要补充截面(XSection)信息。 由于不同求解器所需要的属性不尽一致,因此XT引入了属性扩展(XPrpExtension)用于扩展定制不同求解器的专有属性,一个单元属性对象里面至多可以添加一个属于指定求解器的扩展,可以添加多个属于不同求解器的扩展。 单元属性遵照一定的原则可以自由继承扩展,它的参考标识前缀为“CPRP”。它们的属性均从PropertyAttribute 继承,因此可以使用统一的接口访问其属性。 材料对象一般通过单元属性(XProperty)与模型数据建立联系,因此可以建立材料库在多个工程中共享使用。