预告一下,下一篇我们会非常详细地介绍Code_Aster的命令怎么写,完全实用的操作指导。在此之前,先来理解什么是结构单元,这对于之后的计算设置而言也是一块重要的知识基础。

结构单元的定义

1.1 定义原则

  • 模拟有中性轴和中性面的结构
  • 突出主要的物理现象(弯曲、扭转、膜应力等)
  • 保证精度同时减小模型的规模
  • 针对某些特定结构有专用模型

1.2 分类

1.2.1 离散单元(0D或1D)

模拟弹簧、质量点、阻尼器等。

支持的单元:POI1 或 SEG2

Code_Aster中的模型:DIS_T, DIS_TR, 2D_DIS_T, 2D_DIS_TR

使用离散单元模拟燃料棒

1.2.2 梁单元、杆单元、索单元(1D)

模拟有中性轴的细长结构,例如直梁或曲梁、桁架,具体到应用场景例如使用梁模型进行蒸汽管的非线性模态分析。

尺寸:L1, L2<<L

支持的单元:SEG2, SEG3

Code_Aster中的模型:

  • 直梁:POU_D_E, POU_D_T, POU_D_TG
  • 多纤维梁:POU_D_EM, POU_D_TGM
  • 杆:2D_BARRE, BARRE
  • 索:CABLE

选择合理的模型:

  • Euler梁 (POU_D_E*):细长梁
  • Timoshenko梁 (POU_D_T*):深梁
  • 翘曲梁(POU_D_TG*):薄壁截面 (I, H, L型截面)
  • 多纤维梁 (POU_D_*M) : 模拟材料的非线性
  • 杆: 钢筋、承受拉压,如钢筋等
  • 索: 只能承拉

1.2.3 管道单元(1D)

用于模拟直管和弯管。管道单元是在一个模型中集成梁理论和壳理论的结构单元类型,只适用于环形截面。

支持的网格:SEG3或SEG4(弯管)

Code_Aster中的模型:

  • TUYAU_3M (直管和弯管)
  • TUYAU_6M (直管)

混合模型:

  • Euler-Bernoulli 理论描述纤维的变形
  • Love-Kirchoff 描述截面的变形

如何选择合理的模型,我们需要借助梁+壳混合公式,使用Fourier级数表示壳位移:

  • TUYAU_3M : 3个Fourier模态
  • TUYAU_6M : 6个Fourier模态

此外:

  • 薄壁管: 截面厚度-半径比< 0.1 : TUYAU_6M
  • 考虑塑性: TUYAU_6M

1.2.4 板壳单元(2D)

模拟存在中性面的细长结构,包括平面中性面(板模型)和曲面中性面(壳模型),e << L1, L2。

支持的网格:

  • TRIA3, QUAD4
  • TRIA7, QUAD9 (COQUE_3D)

Code_Aster中的模型:

  • 板单元 : DKT, DST, Q4G, DKTG, Q4GG
  • 壳单元:COQUE_3D

选择正确的模型:

  • 平面结构:DKT, DST, Q4G
  • 曲面结构:COQUE_3D
  • 厚板、厚壳 (厚度-长度比达到1/10时) : DST, Q4G
  • 非线性材料:DKT, COQUE_3D
  • 考虑大位移:COQUE_3D

结构单元的属性

2.1 基本属性

结构单元的属性使用AFFE_CARA_ELE 命令定义,不同的结构单元需要指定的属性。

  • 离散单元 (弹簧、质量点、阻尼):刚度、质量、阻尼矩阵,朝向
  • 梁单元:截面几何信息,惯性主轴朝向,曲梁单元的曲率,总体特征
  • 杆单元和索单元:截面面积
  • 管道单元: 截面信息,环向段数,厚度上的层数
  • 板壳单元:厚度,切平面中的坐标系,层数,朝向

2.2 离散单元

使用命令AFFE_CARA_ELEM / DISCRET

2.3 梁单元

使用命令AFFE_CARA_ELEM / POUTRE

2.4 杆单元和索单元

使用命令AFFE_CARA_ELEM / BARRE

2.5 管道单元

使用命令AFFE_CARA_ELEM / POUTRE

2.6 板壳单元

使用命令AFFE_CARA_ELEM / COQUE

>> 注意 !

板壳单元中多层(multi-layers)的概念不同于多材料(multi-material)的概念

multi-layers == 厚度方向上有多个积分点

multi-material == 复合材料(一层为一种材料)

不同类型单元间的连接

同时使用多种单元可以节省时间和内存,此时我们需要连接不同的单元,定义线性关系,使用的命令是AFFE_CHAR_MECA(使用文档[u4.44.01])。

注意必须设置出自由度之间的运动学联系。

3.1 梁单元模型的连接

使用命令AFFE_CHAR_MECA / LIAISON_ELEM

  • 三维单元与梁单元连接:3D_POU
  • 平面单元与梁单元连接:2D_POU
  • 板壳单元与梁单元连接:COQ_POU
char=AFFE_CHAR_MECA(
          MODELE=model,
          LIAISON_ELEM=_F(OPTION='COQ_POU',
                          CARA_ELEM=CAREL,
                          AXE_POUTRE=(1.,0.,0.,),
                          GROUP_MA_1='C1C2',
                          GROUP_NO_2='C'),);

3.2 板壳单元模型的连接

使用命令AFFE_CHAR_MECA / LIAISON_MAIL

  • COQUE
  • MASSIF_COQUE
  • COQUE_MASSIF
char=AFFE_CHAR_MECA(MODELE=model,
          LIAISON_MAIL=_F(
                       TYPE_RACCORD='MASSIF_COQUE',
                       GROUP_MA_ESCL='AB',
                       GROUP_MA_MAIT='M1M2M3M4'),);

3.3 管道单元模型的连接

使用命令AFFE_CHAR_MECA / LIAISON_ELEM

  • COQ_TUYAU
  • 3D_TUYAU

char=AFFE_CHAR_MECA(
          MODELE=model,
          LIAISON_ELEM=_F(
          OPTION='COQ_TUYAU',
          GROUP_MA_1='CERCL2',
          GROUP_NO_2='NOPOU1',
          CARA_ELEM=CAREL1,
          AXE_POUTRE=(COS30,0.5,0.0,),
                     ),);

结构单元的后处理

4.1 “子点”

子点是结构单元厚度方向上的积分点。

对于板壳单元,每层3个子点;对于多纤维梁单元,每个纤维和每个截面网格1个子点;对于管道单元,每层和每个环向段3个子点。

4.2 结构单元后处理

后处理命令(CALC_CHAMP / IMPR_RESU)注意事项:

  • 场为用户坐标系上的场
  • *_ELGA场定义在所有的子点上
  • *_ELNO场由*_ELGA场计算得到(不适用于梁单元和管道单元)
  • *_NOEU场定义在一层上,在一个点上,由*_ELNO 场计算得到(不适用于梁单元和管道单元)

使用MODI_REPERE命令可进行坐标系变换。

4.3 结果可视化

子点上场的可视化:

# Post-treatment
IMPR_RESU(FORMAT='MED', UNITE=41,
    RESU=_F(RESULTAT=RESU, CARA_ELEM=CAEL, 
    NOM_CHAM =("SIEF_ELGA","EPSI_ELGA"),),
)

IMPR_RESU(FORMAT='MED', UNITE=42,
    RESU=_F(RESULTAT=RESU, CARA_ELEM=CAEL, 
    NOM_CHAM ="VARI_ELGA", IMPR_NOM_VARI="NON" ),
)

在ParaVis中显示模式为Point Gaussian。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐