最常用的命令都在这里了,快收藏起来~

网格和结果文件格式

Code_Aster支持的网格和结果文件格式常用的为Aster格式或MED格式。

  • Code_Aster格式:
mymesh=LIRE_MAILLAGE(FORMAT='ASTER')
  • MED格式:
mymesh=LIRE_MAILLAGE()

其他格式网格以命令PRE_***的形式定义,如PRE_GIBI,PRE_IDEAS,PRE_GMSH。

例如:

PRE_***()
mymesh=LIRE_MAILLAGE()

结果文件的命令为IMPR_RESU,以MED格式输出结果为例:

IMPR_RESU(FORMAT='MED',RESU=_F(RESULTAT=myresult,))

设置有限单元

有限单元信息包括来自网格的几何描述、形函数和自由度,有限单元决定了求解的方程、离散与积分方法以及计算结果。

mymodel = AFFE_MODELE(MAILLAGE=mymesh,
		              AFFE=_F(GROUP_MA='ZONE_1',
 		                      PHENOMENE='MECANIQUE',
		                      MODELISATIO='C_PLAN'),
					                            )

以力学问题为例,3D单元:

2D/1D/0D单元:

使用多种单元时需要注意不同单元间的连接,这部分我们在上一篇的结构单元中也有详细说明。

其他注意事项:

>> 轴对称单元必须沿Y轴对称,节点的X坐标必须为正。

>> 旋转法向:

(1)命令MODE_MAILLAGE;

(2)确定壳单元的法向与3D单元的边界(线、面)方向;

(3)正确调整接触有限元单元的方向:

  • ORIE_NORM_COQUE:调整壳单元法向一致
  • ORIE_PEAU_2D,ORIE_PEAU_3D:调整单元的边界方向,使其可以正确的施加载荷(压强)

设置材料

材料是由一系列参数定义的,不同物理量的单位需要相匹配,例如:

网格结点的坐标

mm

m

弹性模量

MPa

Pa

力载荷

N

N

结果中的应力

MPa

Pa

同时,材料属性必须与求解设置中的本构匹配。

重复赋值规则:

设置结构单元属性

结构单元包括我们上一篇提到的壳单元、板单元、梁单元等。

网格信息不包含这些单元的信息:

  • 壳单元:厚度,切平面方向
  • 梁单元:截面属性,旋转方向
  • 离散单元(弹簧单元、质量单元、阻尼单元):刚度矩阵、质量、阻尼矩阵
  • 杆单元:截面属性
  • ……
charac=AFFE_CARA_ELEM(MODELE=MODELE,
			    POUTRE=_F(	GROUP_MA='rotor',
							SECTION='CERCLE',
							CARA='R',
							VALE=.05,),

设置边界条件与载荷

设置的命令为AFFE_CHAR_***。

5.1 载荷

(1)内部载荷:

  • 重力PRSANTEUR
  • 旋转离心力ROTATION
  • 体积力FORCE_INTERNE
  • 结点力FORCE_NODAL
  • ……

(2)边界载荷:

  • 面分布力FORCE_FACE
  • 线分布力FORCE_ARETE
  • 边界力FORCE_CONTOUR
  • 压强PRES_REP
  • ……

(3)结构单元载荷:

  • 梁分布力FORCE_POUTRE
  • 壳分布力FORCE_COQUE
  • 管道力FORCE_TUYAU
  • ……

5.2 约束

  • DDL_IMPO:节点或节点集的自由度约束
  • FACE_IMPO:面上自由度约束(包括切向约束和法向约束)
  • LIAISON_SOLIDE:单元或节点的刚性连接
  • LIAISON_ELEM:3D单元与梁单元连接、梁壳单元连接等
  • LIAISON_COQUE:壳单元连接
  • ……

约束的自由度需要与选择的单元类型一致。例如壳、梁单元的转动自由度约束:

char=AFFE_CHAR_MECA(	MODELE=MO,
						DDL_IMPO=_F( GROUP_NO = 'A',
									DX	= 0.,
									DY	= 0.,
									DZ	= 0.,
									DRX	= 0.,
									DRY	= 0.,
 									DRZ	= 0.),

设置求解模型

约有15种问题的分析命令,包括:

  • 热学:线性热分析THER_LINEAIRE,非线性热分析THER_NON_LINE
  • 静力学:线弹性静力分析MECA_STATIQUE,非线性静力分析STAT_NON_LINE
  • 动力学:线性动力分析DYNA_VIBRA,非线性动力分析DYNA_NON_LINE
  • 模态计算:模态分析CALC_MODES

必须在求解前设置完计算所需的参数:

  • 有限元模型:MODELE
  • 材料场:CHAM_MATER
  • 结构单元属性:CARA_ELEM
  • 载荷约束:AFFE_CHAR_MECA
  • 时间步(如果需要的话):LIST_INST

线性代数求解器的选择

求解器选择命令为SOLVEUR/METHODE。

求解器的选择依赖所求解的问题:

(1)直接法求解器

  • MULT_FRONT:默认方法,通用求解器,多种模型混合时不推荐使用
  • MUMPS:外部求解器,与MULT_FRONT适用范围一致,可以用于并行计算

(2)迭代法求解器

  • GCPC:热学计算推荐
  • PETSC:外部求解器,提供多种计算方法,鲁棒性强,可以用于并行计算

一般情况下使用默认的选择即可。

8 计算结果

8.1 物理场

物理场的类型包括位移、应力、加速度、速度等,有多个分量,且为单帧数据(即单个时间或频率的结果)。

数据的命名规则为XXXX_YYYY,其中XXXX表示场的名字如SIGM、EPSI、ERRE(DEPL、VITE、ACCE除外),YYYY表示保存数据的位置如NOEU(节点)、ELGA(积分点)、ELNO(单元节点)、ELEM(单元常数)。

8.2 计算结果

结果数据依赖执行的计算,包含多个物理场,为多帧数据(不同时间步或频率)。

设置结果输出

(1)IMPR_RESU:支持网格、场、结果的输出

         不同的格式:RESULTAT(文本)、ASTER、MED、GMSH、IDEAS

(2)IMPR_TABLE:输出列表

(3)IMPR_FUNCTION:提取物理场中的具体数据,绘制函数曲线

10 设置后处理计算

(1)CALC_CHAMP:创建新的物理场

  • 创建或完善原有数据
  • 计算应力、应变、能量、误差等物理场

(2)POST_ELEM:创建表格

  • 计算能量(势能、动能、耗散能等)
  • 计算积分或平均值
Logo

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

更多推荐