材料数据¶
在 FrontISTR 中,“材料”是对赋予单元的材料属性数据进行命名并统一管理的单位。具体而言,它将弹性常数、密度、热导率等物性值,以及弹塑性、黏弹性、蠕变等本构关系参数归并在一个名称下。通过 !SECTION 将材料分配给单元组,并把单元类型(实体、壳、界面等)与材料名称关联起来。材料本身的内容则在网格数据侧的 !MATERIAL 或分析控制数据侧的 !MATERIAL 块中定义。
材料数据的限制由分析类型、单元类型以及输入文件中的指定方式这三个因素决定。下文首先整理可用材料模型与单元、分析类型之间的对应关系(功能概览),随后说明材料模型的选择方法(材料模型的选择),最后依次说明各个模型的规格(从线性弹性开始)。各关键字的格式和默认值请参阅关键字参考。
功能概览¶
材料数据大致可分为结构分析中使用的力学材料模型,以及热传导分析和热应力分析中使用的热物性。结构分析中可根据用途选择线性弹性、超弹性、弹塑性、黏弹性、蠕变或用户定义材料。它们分别是独立的本构关系;弹塑性、黏弹性和蠕变会在同一材料中同时定义线性弹性作为弹性部分(超弹性使用自身的应变能函数,因此不引用线性弹性刚度)。热传导分析中则为单元赋予密度、比热和热导率。
| 分类 | 主要用途 | 输入中的主要关键字 | 主要参考 |
|---|---|---|---|
| 线性弹性 | 小变形线性分析、模态分析、线性动力分析、非线性材料的弹性部分 | !ELASTIC, !MATERIAL ITEM=1 |
!ELASTIC, !MATERIAL(网格数据) |
| 超弹性 | 橡胶类材料等的大变形弹性响应 | !HYPERELASTIC |
!HYPERELASTIC |
| 弹塑性 | 屈服后的永久应变、金属塑性、岩土材料 | !PLASTIC |
!PLASTIC |
| 黏弹性 | 伴随松弛或延迟的时间相关响应 | !VISCOELASTIC, !TRS |
!VISCOELASTIC, !TRS |
| 蠕变 | 在应力作用下随时间发展的变形 | !CREEP |
!CREEP |
| 热物性 | 热传导分析、热应力分析 | !MATERIAL ITEM=1〜3, !EXPANSION_COEFF |
!EXPANSION_COEFF |
| 用户定义材料 | 用户实现的本构关系 | !USER_MATERIAL, !ELASTIC TYPE=USER, !HYPERELASTIC TYPE=USER, !PLASTIC YIELD=USER |
!USER_MATERIAL |
在结构分析中,如果网格数据和分析控制数据中都定义了同名材料,则优先采用分析控制数据侧的定义。不过,网格数据侧的材料定义本身仍然是必需的;当分析控制数据侧定义了同名材料时,网格数据侧的值不会被引用,因此可以使用占位值。另一方面,热传导分析不支持在分析控制数据中指定材料,而是直接使用网格数据中指定的值。
各分析类型的支持情况可整理如下。线性静力分析、模态分析和线性动力分析使用线性弹性。使用三维连续体实体单元的非线性静力分析和非线性动力分析,可以在线性弹性的基础上使用超弹性、弹塑性、黏弹性、蠕变和用户定义材料。热传导分析使用密度、比热和热导率,而不是结构材料模型。有关分析类型的整体情况,请参阅分析类型。
不同单元类型也存在支持限制。三维连续体实体单元可使用结构分析用的非线性材料模型。平面应力单元、平面应变单元和轴对称单元以线性弹性为基本材料模型,这些二维类单元不支持弹塑性、超弹性、黏弹性和蠕变。壳单元支持线性弹性,可指定单层或层合、各向同性或各向异性。壳单元不支持弹塑性、超弹性、黏弹性和蠕变。界面单元用于在热传导分析中处理间隙传热和辐射,其间隙参数不是通过材料数据,而是在 !SECTION 的数据行中指定。关于与单元组的关联方式及层合输入示例,也请参阅单元库。
下面列出各单元类型对材料模型的支持情况。
| 单元类型 | 线性弹性(各向同性) | 线性弹性(正交各向异性・层合) | 超弹性 | 弹塑性 | 黏弹性 | 蠕变 | 热物性 |
|---|---|---|---|---|---|---|---|
| 三维实体 | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
| 平面应力・平面应变・轴对称 | ○ | — | — | — | — | — | ○ |
| 壳(单层・层合) | ○ | ○ | — | — | — | — | — |
| 梁・桁架 | ○ | — | — | — | — | — | — |
| 界面 | — | — | — | — | — | — | ○ |
(符号:○ 可用/— 不支持)。界面单元的间隙传热和辐射热物性通过 !SECTION 指定。
材料定义有两条途径。在网格数据中,通过 !SECTION 关联单元组和材料名称,并使用 !MATERIAL 与 !ITEM 定义物性。在分析控制数据中,在 !MATERIAL 块内放置 !ELASTIC、!HYPERELASTIC、!PLASTIC 等来定义材料模型。如果在分析控制数据侧定义了 !MATERIAL,则采用该定义,而不是网格数据中同名材料的定义。有关网格数据侧 !SECTION 和 !MATERIAL 的详细说明,请参阅 !SECTION(网格数据) 与 !MATERIAL(网格数据)。分析控制数据侧的材料块请参阅 !MATERIAL(分析控制数据)。
材料模型的选择¶
选择材料模型时,首先判断线性弹性是否足够。如果变形较小、应力不超过屈服点,并且无需考虑随时间变化的松弛或蠕变,则使用线性弹性。处理大变形下的弹性响应时选择超弹性,处理屈服后的塑性应变时选择弹塑性,处理具有松弛时间的材料时选择黏弹性,处理长期保持载荷时逐渐发展的变形时选择蠕变。
| 问题特征 | 候选材料模型 | 判断依据 |
|---|---|---|
| 小变形且应力与应变呈线性关系 | 线性弹性 | 可用杨氏模量和泊松比表示时 |
| 即使发生大变形,卸载后仍恢复原状 | 超弹性 | 橡胶类材料,或需要非线性弹性势时 |
| 超过屈服点后留下永久应变 | 弹塑性 | 需要选择屈服函数和硬化规律时 |
| 保持载荷期间发生应力松弛或延迟 | 黏弹性 | 可用松弛系数和松弛时间表示时 |
| 长期载荷下应变累积 | 蠕变 | 可用 Norton 定律近似时 |
| 现有模型无法表示 | 用户定义材料 | 在外部子程序中实现本构关系时 |
处理温度依赖时,需要确认各材料模型的支持情况。线性弹性、蠕变和热膨胀系数支持温度相关表格。黏弹性不对 Prony 系数本身进行温度插值,而是使用 !TRS 的温度移位。弹塑性在采用 Mises 屈服的多折线硬化时可使用温度相关表格。Mohr-Coulomb 和 Drucker-Prager 不支持温度依赖。
处理各向异性或层合材料时,还需注意单元类型。实体单元支持正交各向异性线性弹性。壳单元在线性弹性范围内支持各向同性单层、各向异性单层、各向同性层合以及各向异性层合。壳单元不能使用非线性材料模型。
对于接近不可压缩的材料,不要将泊松比设为 0.5。FrontISTR 不支持完全不可压缩材料的指定。在不可压缩性影响显著的大变形问题中,单元公式的选择也很重要,因此还应确认单元库中的公式选项。
线性弹性¶
线性弹性是 FrontISTR 结构分析中最基本的材料模型。线性静力分析、模态分析和线性动力分析使用线性弹性。使用弹塑性、黏弹性或蠕变时,也在同一材料中定义线性弹性作为弹性部分。→ 详情请参阅 !ELASTIC。
对于各向同性线性弹性,指定杨氏模量和泊松比。需要考虑温度依赖时,可将杨氏模量和泊松比作为温度函数以表格形式给出。使用正交各向异性时,需要指定三个方向的杨氏模量、三个泊松比和三个剪切模量,共九个独立常数。正交各向异性需要材料坐标系,因此应在相应的 !SECTION 中指定局部坐标系。
若在网格数据侧指定线性弹性,则组合使用 !SECTION 和 !MATERIAL。下面的示例将材料 M1 分配给实体单元组 ALL,并使用 ITEM=1 定义杨氏模量和泊松比、ITEM=2 定义质量密度、ITEM=3 定义线膨胀系数。
!SECTION, TYPE=SOLID, EGRP=ALL, MATERIAL=M1
!MATERIAL, NAME=M1, ITEM=3
!ITEM=1, SUBITEM=2
4000., 0.3
!ITEM=2
8.0102E-10
!ITEM=3
1.0E-5
对于壳单元,可在线性弹性范围内指定单层和层合结构。单层各向同性材料使用 SUBITEM=4,单层各向异性材料使用 SUBITEM=9。层合结构中,将各层的材料常数和层权重按层数排列在同一 !ITEM 中。层权重按总和归一化,并用作厚度方向积分的权重。整个壳的实际厚度通过 !SECTION, TYPE=SHELL 中的厚度指定。
下面给出各向同性材料单层壳的示例。
下面给出各向同性材料两层层合壳的示例。
下面给出各向异性材料单层壳的示例。各向异性角度以度为单位指定。
!MATERIAL, NAME=M1, ITEM=1
!ITEM=1, SUBITEM=9
1, 28600., 0.15, 32.3, 28600., 12434., 12434., 12434., 0.0
下面给出各向异性材料两层层合壳的示例。
!MATERIAL, NAME=M1, ITEM=1
!ITEM=1, SUBITEM=17
1, 28600., 0.15, 32.3, 28600., 12434., 12434., 12434., 0.0,
28600., 0.15, 32.3, 28600., 12434., 12434., 12434., 0.0
超弹性¶
超弹性是从应变能函数定义应力的非线性弹性材料。用于处理即使发生大变形、卸载后仍能恢复原状的橡胶类材料等。在输入中,在 !MATERIAL 块内指定 !HYPERELASTIC。→ 详情请参阅 !HYPERELASTIC。
FrontISTR 支持以下超弹性模型。不支持 OGDEN 模型。
| 模型 | 输入类型 | 主要系数 | 特点 |
|---|---|---|---|
| Neo-Hookean | NEOHOOKE |
\(C_{10}\), \(D\) | 相当于 Mooney-Rivlin 中 \(C_{01}=0\) 的简单各向同性超弹性模型 |
| Mooney-Rivlin | MOONEY-RIVLIN |
\(C_{10}\), \(C_{01}\), \(D\) | 使用两个约化不变量的各向同性超弹性模型 |
| Arruda-Boyce | ARRUDA-BOYCE |
\(\mu\), \(\lambda_m\), \(D\) | 基于分子链网络的橡胶类材料模型 |
| 各向异性 Mooney-Rivlin | MOONEY-RIVLIN-ANISO |
输入中读取10个系数,但当前本构关系使用前5个 | 表示纤维方向等各向异性超弹性响应的模型 |
| 用户定义超弹性 | USER |
用户常数 | 在外部子程序中实现超弹性本构关系的模型 |
超弹性使用与体积变化相关的系数 \(D\) 表示可压缩性。由于不支持完全不可压缩材料,因此不要使用相当于泊松比 \(\nu=0.5\) 的指定。处理近似不可压缩材料时,除了超弹性模型的系数外,还需要同时选择所使用的单元公式。
超弹性默认在总拉格朗日法框架下处理。有关应变能函数、应力和切线刚度的定义,请参阅超弹性(理论)。
弹塑性¶
弹塑性是用屈服函数区分弹性域和塑性域,并用硬化规律描述屈服后响应的材料模型。在输入中,在同一 !MATERIAL 块内组合使用 !ELASTIC 和 !PLASTIC。→ 详情请参阅 !PLASTIC。
在 FrontISTR 中,通过组合屈服函数与硬化规律来指定弹塑性模型。支持范围如下。
| 屈服函数 | 输入类型 | 支持的硬化规律 | 主要用途 |
|---|---|---|---|
| Mises | MISES |
BILINEAR, MULTILINEAR, SWIFT, RAMBERG-OSGOOD, KINEMATIC, COMBINED |
金属材料等的各向同性屈服 |
| Mohr-Coulomb | MOHR-COULOMB |
BILINEAR, MULTILINEAR |
由摩擦角和黏聚力表征的土体、岩体材料 |
| Drucker-Prager | DRUCKER-PRAGER |
BILINEAR, MULTILINEAR |
对 Mohr-Coulomb 进行平滑近似的压力相关屈服 |
| 用户定义屈服 | USER |
用户定义 | 在外部子程序中实现切线刚度和返回映射时 |
Mises 屈服的多折线硬化支持温度相关表格。Mises 屈服的双线性硬化、Swift 硬化、Ramberg-Osgood 硬化、随动硬化和组合硬化按常数表达式计算。Mohr-Coulomb 和 Drucker-Prager 不支持温度依赖。使用多折线硬化时,输入必须满足塑性应变非负,且第一个塑性应变为0。
壳单元、平面应力单元、平面应变单元和轴对称单元不支持弹塑性。使用弹塑性材料时,应采用三维连续体实体单元。
弹塑性默认在更新拉格朗日法框架下处理。若在 !PLASTIC 中指定 INFINITESIMAL,则按小变形本构关系处理。应力更新采用基于返回映射的积分,算法详情请参阅弹塑性(理论)。
黏弹性¶
黏弹性是在弹性响应上加入时间相关松弛的材料模型。FrontISTR 将广义 Maxwell 模型以 Prony 级数形式输入。在同一 !MATERIAL 块内定义 !ELASTIC 和 !VISCOELASTIC。→ 详情请参阅 !VISCOELASTIC。
在 Prony 级数中,用多行指定松弛系数与松弛时间的组合。松弛时间不能指定为0。考虑温度依赖时,在 !VISCOELASTIC 之后放置 !TRS 并指定温度移位因子。→ 详情请参阅 !TRS。
温度移位支持 WLF 型和 Arrhenius 型,两者均将移位因子 \(A\) 表示为分析温度 \(\theta\) 与参考温度 \(\theta_0\) 的函数。输入中均给出两个材料常数(C1、C2)和参考温度,但其含义随所选移位模型而不同(WLF 型中为 Williams-Landel-Ferry 方程的两个系数,Arrhenius 型中为与活化能相关的两个系数)。具体函数形式及移位因子的推导请参阅理论手册黏弹性。
蠕变¶
蠕变是处理在恒定载荷或恒定应力下,应变随时间发展的现象的材料模型。FrontISTR 的 !CREEP 支持 Norton 定律。在同一 !MATERIAL 块内定义 !ELASTIC 和 !CREEP。→ 详情请参阅 !CREEP。
Norton 定律用等效应力、时间以及材料常数 \(A\)、\(n\)、\(m\) 的幂函数形式表示蠕变应变率(具体函数形式请参阅理论手册蠕变)。材料常数支持温度相关表格,因此可按温度给出不同数值。
不支持 !CREEP 的 TYPE=USER。若要实现包含蠕变的自定义本构关系,请使用用户定义材料。
热传导分析的材料属性¶
在热传导分析中,不定义结构分析用的弹性、塑性材料,而是定义密度、比热和热导率。对于连接单元、平面单元、实体单元和壳单元,在网格数据侧的 !MATERIAL 中使用 ITEM=1〜3。热物性可以温度相关表格的形式给出。
下面的示例为材料 M1 定义温度相关的密度、比热和热导率。先通过 SECTION 将材料 M1 分配给实体单元组 ALL,然后在 !MATERIAL 的 ITEM=1 中以温度与数值成对的形式给出密度,在 ITEM=2 中给出比热,在 ITEM=3 中给出热导率。
!SECTION, TYPE=SOLID, EGRP=ALL, MATERIAL=M1
!MATERIAL, NAME=M1, ITEM=3
!ITEM=1, SUBITEM=1
7850., 300.
7790., 500.
7700., 800.
!ITEM=2
0.465, 300.
0.528, 500.
0.622, 800.
!ITEM=3
43., 300.
38.6, 500.
27.7, 800.
界面单元不使用材料数据,而是在 !SECTION, TYPE=INTERFACE 的数据行中指定间隙宽度、间隙传热系数和辐射系数。
壳单元的热传导分析与实体单元相同,通过材料 !MATERIAL 指定热物性。壳厚度和厚度方向积分点数在 !SECTION 一侧指定。
在热应力分析中,为了由温度场计算热应变,需要定义线膨胀系数。支持各向同性和正交各向异性热膨胀系数,也可指定温度依赖。→ 详情请参阅 !EXPANSION_COEFF。若要在分析控制数据侧给出结构分析、动力分析中使用的质量密度,请参阅 !DENSITY。热传导分析中的密度则通过此处所示的网格数据侧 !MATERIAL ITEM=1 指定。
用户定义材料¶
用户定义材料是用于通过外部子程序实现 FrontISTR 内置材料模型无法表示的本构关系的入口。在输入中,使用 !USER_MATERIAL 给出状态变量数量和用户常数。→ 详情请参阅 !USER_MATERIAL。
!USER_MATERIAL 默认按更新拉格朗日型本构关系处理,指定 KIRCHHOFF 时按总拉格朗日型处理。状态变量数量通过 NSTATUS 指定。数据行中最多可传递100个用户常数。这些常数和状态变量在用户子程序中作为本构关系的内部变量使用。
对于 !USER_MATERIAL,本构关系主体在 uMatlMatrix 和 uUpdate 中实现。uMatlMatrix 返回材料切线刚度,uUpdate 更新应力和状态变量。使用小变形用户弹性时,使用 !ELASTIC, TYPE=USER;使用用户超弹性模型时,使用 !HYPERELASTIC, TYPE=USER,并在 uElasticMatrix 与 uElasticUpdate 中实现弹性响应。使用用户定义屈服函数时,使用 !PLASTIC, YIELD=USER,并实现弹塑性切线刚度和返回映射。
相关项目¶
- 分析类型 — 可使用材料模型的分析类型
- 单元库 — 分配材料的单元类型和单元公式
- 本构关系(理论) — 各材料模型的本构方程和应力更新
- !MATERIAL(网格数据) — 网格数据侧的材料属性表
- !SECTION(网格数据) — 单元组与材料名称的关联
- !MATERIAL(分析控制数据) — 分析控制数据侧的材料块
- !ELASTIC — 线性弹性材料
- !HYPERELASTIC — 超弹性材料
- !PLASTIC — 弹塑性材料
- !VISCOELASTIC — 黏弹性材料
- !TRS — 黏弹性的温度移位
- !CREEP — 蠕变材料
- !DENSITY — 结构分析和动力分析中使用的质量密度
- !EXPANSION_COEFF — 线膨胀系数
- !USER_MATERIAL — 用户定义材料