首页/文章/ 详情

abaqus计算时产生的文件都是啥(一)

5天前浏览76
   

无论是在建模还是在计算过程中,abaqus都会产生一系列的文件,这些文件都是干啥的呢?都有什么作用呢?

帖子针对这个问题,梳理一下abaqus相关的各种文件的作用和内容,如:cae、jnl、inp、dat等等。

       

工作路径设置

     

妥善管理abaqus工作路径是一个非常好的习惯,任何时候,我们打开abaqus之后的第一件事,都应当是设置工作路径,要不然我们计算完了,连计算结果都不知道去哪里找,或者是输出的结果文件乱糟糟的,不知道哪个结果文件对应于哪个cae文件。

打开,abaqus,点击下面箭头1和2指代的按钮,打开路径设置窗口

   

弹出3指代的窗口set work directory,然后在箭头4指代的部分选择自己要工作的路径。

   

注意 ,如果没有设置当前次的工作路径,abaqus会把结果和cae等一系列文件输出到默认的工作路径。

       

cae及其相关文件

     

当我们创建好模型,在计算之前,一般会保存一下,防止计算中出现意外的错误导致模型丢失。

保存之后,工作路径中会出现两个文文件,如

   

分别是后缀为cae和jnl的文件。

其中,abaqus/cae文件(即 cae文件)是 Abaqus 用于保存模型数据、分析设置和其他相关信息的文件,文件扩展名为 .cae。它是 abaqus/cae的专有二进制格式文件,用于存储用户在图形用户界面(cae环境)中创建的完整模型。cae文件可以用来在未来的会话中重新打开并继续对模型进行修改、分析或后处理。cae文件的主要内容:

1、模型信息:cae文件保存了模型的几何信息,包括零件(Part)、装配体(Assembly)、材料属性(Material)、截面属性(Section)、边界条件(Boundary Conditions)等所有建模过程中定义的几何和物理信息。

2、网格划分:Abaqus/cae文件中还包含网格划分信息,用户在 cae中划分的网格数据都会被保存下来,以便在以后的会话中继续使用相同的网格。

3、分析设置:cae文件保存了所有的分析步骤和设置,包括分析类型(如静态、动态、热传导等)、求解器设置、时间步长、边界条件、载荷和接触条件等。

4、后处理数据:cae文件不仅可以存储模型和分析设置,还可以包含部分后处理的信息,如创建的结果显示样式、数据过滤、位移云图、应力云图等设置。这样,当重新打开 CAE 文件时,可以直接查看之前的后处理结果。

5、历史记录:Abaqus/CAE 文件还保存了用户操作的历史记录,这使得用户能够返回早期的建模状态,并从某个步骤开始重新编辑模型。

然后是jnl文件,JNL 文件(即 Journal File,日志文件)是自动记录用户在图形用户界面(GUI)中的操作的文件。这些文件的主要功能是帮助用户保存操作历史,并能够重复执行这些操作。JNL 文件记录了用户在 Abaqus/CAE 中进行的每一步操作,并将其转换为 Python 代码格式,因此它也可以被用作脚本,以实现自动化操作或批处理操作。该文件可以使用文本编辑软件打开,打开之后的内容为

   

可以看到里面都是python程序,该文件就是通过python程序记录了用户的操作,具体来讲,jnl文件的作用有

1、记录用户操作:当用户在 Abaqus/CAE 的图形界面中进行建模、分析设置、网格划分、求解等操作时,Abaqus 会自动生成一个 .jnl 文件,记录所有这些操作。这些文件可以在以后的操作中被调用或编辑。

2、Python 脚本格式:JNL 文件中的记录是以 Python 代码的形式保存的,这使得它们不仅仅是简单的操作记录,还可以作为脚本文件被重新执行。用户可以通过修改 JNL 文件中的代码来优化或重复相同的操作步骤。

3、自动化和批处理:通过编辑和执行 JNL 文件,用户可以实现一些常见操作的自动化。例如,如果用户需要在多个模型上执行相同的分析设置或后处理操作,可以通过编辑 JNL 文件,并在不同的模型中调用它们,而不需要每次手动进行相同的步骤。

4、调试工具:JNL 文件也可以作为调试工具。如果用户希望了解某些 Abaqus/CAE 操作对应的 Python 命令,可以通过查看生成的 JNL 文件,找到相应的代码,并将其用于开发更复杂的 Python 脚本。

       

inp文件

     

在计算之前,会创建job文件,提交计算的时候,abaqus会向工作路径输出一个inp文件,可以用记事本或者其他的文本编辑软件打开inp文件,打开之后,里面是这些内容

   

INP 文件(Input File,输入文件)是 Abaqus 中用于描述有限元模型和分析步骤的文本文件,它包含了所有定义的模型几何、材料属性、边界条件、载荷、网格划分和求解参数等信息。该文件是 Abaqus 求解器的主要输入文件,用于实际进行有限元分析计算。INP 文件通常是通过 Abaqus/CAE 图形界面生成的,但也可以手动编辑和创建。INP 文件的主要内容:

1、模型定义:INP 文件描述了模型的几何和材料特性。包括节点坐标、单元连接、材料属性、截面属性等信息。这些数据定义了模型的几何形状及其物理属性

2、边界条件和载荷:INP 文件中还包含了所有应用于模型的边界条件和载荷。用户可以定义约束节点的位置、施加力、压力、位移或温度等边界条件。

3、网格划分:INP 文件详细列出了模型中的节点、单元及其相互之间的连接。通过这些信息,Abaqus 可以重现模型的网格划分。

4、分析步骤和求解设置:INP 文件中还定义了分析的步骤(steps),包括分析的类型(如静态、动态、热传导等),时间步长、增量控制、非线性设置等。

简而言之,inp文件大致结构如下







节点定义(*Node):定义模型中所有节点的坐标。单元定义(*Element):定义单元及其关联的节点。材料属性(*Material):定义材料特性,如弹性模量、泊松比等。边界条件(*Boundary):指定模型的约束条件。载荷(*Cload):定义施加的外部载荷。分析步骤(*Step):定义分析的类型、时间步长及输出要求。
 

下面是一个简单的inp算例,细节不一定正确,仅做inp文件结构展示,大家可以将上面的内容与下面的内容对应着看。






*Heading** Job name: Job-1 Model name: Model-1** Generated by: Abaqus/CAE*Preprint, echo=NO, model=NO, history=NO, contact=YES***Part, name=Part-1*Node1, 0.0, 0.0, 0.02, 1.0, 0.0, 0.03, 1.0, 1.0, 0.0...*Element, type=C3D81, 1, 2, 3, 4...*End Part***Assembly*Instance, name=Part-1-1, part=Part-1*End Instance*End Assembly***Material, name=Steel*Elastic210000, 0.3***Step, name=Step-1, nlgeom=NO, inc=10000*Static0.1, 1.0, 1e-05, 1.0*Cload3, 2, -1000.0*Output, field*Node OutputU*Element OutputS*End Step
 

未完待续.....................

点击卡片 关注我们

     



来源:有限元先生
ACTAbaqusSTEPS非线性python材料控制装配
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-10-19
最近编辑:5天前
外太空土豆儿
硕士 我们穷极一生,究竟在追寻什么?
获赞 2粉丝 0文章 37课程 0
点赞
收藏
作者推荐

详解有限元法中K、M和C矩阵的集成

零概述该帖子重点讲解有限元法中单元刚度矩阵、质量矩阵和阻尼矩阵如何组装为模型的总体刚度矩阵。首先采用MATLAB程序自编三维八节点单元,对标ABAQUS中的C3D8单元,采用了B-BAR修正以后,计算的结果与ABAQUS保持一致。然后修改INP文件,将ABAQUS的模型总体矩阵导出为可读文件,再读进MATLAB中,然后用ABAQUS的总体矩阵与自己计算的总体矩阵作对比。设计悬臂梁一端受动荷载作用算例,自编程序采用newmark积分法,ABAQUS采用动力隐式分析步,对比模型关键点的位移、速度和加速度数据,最终计算结果保持一致。壹矩阵的组装原理及程序讲解如图所示,左边的小矩阵为单元刚度矩阵,假定为k,假定该单元刚度矩阵的节点编号为1~8,则单刚的大小为24x24,第P个节点的元素如图所示,则该节点元素在单元刚度矩阵中的位置是k(i:k,i:k);右边的矩阵为总体刚度矩阵,假定为K,假定模型的总节点数为N,则总体刚度矩阵的大小为K(3N,3N),则P节点对应的元素在总体刚度矩阵中的位置为:K(3P-2:3P,3P-2:3P),这样就建立了单元刚度矩阵中元素对应在总体刚度矩阵中的位置。下面给出了三种组装的方法,分别对应了不同教材中的理论,注释注明了来源。需要注意的是,对于质量矩阵和阻尼矩阵,有相同的组装方式。对于下列程序,element为整个模型的单元节点编号,如第n个单元的节点编号为:element(n,:),kk则储存了模型所有单元的单刚,为三维数组,如第n个单元的单刚为:k(:,:,n)。第一种组装方法依据的理论是将单刚节点对应的3x3矩阵放到总体刚度矩阵中,具体的程序如下:functionKK=kkAssembly(element,kk)%组装总刚max_node=max(max(element));KK=zeros(3*max_node,3*max_node);fori=1:size(element,1)KK=KK+formKK(element(i,:),kk(:,:,i),max_node);endend%%%按照自由度对应的分块组装方法,计算速度还可以functionKK=formKK(element,kk,max_node)%计算单元节点在全局刚度矩阵中的位置KK=zeros(3*max_node,3*max_node);fori=1:8forii=1:8node1=element(1,i+1);node2=element(1,ii+1);KK(3*node1-2:3*node1,3*node2-2:3*node2)=kk(3*i-2:3*i,3*ii-2:3*ii);endendend第二种组装方法的理论如下图:具体的程序如下:functionKK=kkAssembly(element,kk)%组装总刚max_node=max(max(element));KK=zeros(3*max_node,3*max_node);fori=1:size(element,1)KK=KK+formKK(element(i,:),kk(:,:,i),max_node);endend%王勖成老师的《有限单元法》,清华大学出版社,第69页,式(2.2.53)%functionKK=formKK(element,kk,max_node)%G=zeros(8,2*max_node);%KK=zeros(2*max_node,2*max_node);%fori=1:4%G(2*i-1:2*i,2*element(1,i+1)-1:2*element(1,i+1))=[10;01];%end%KK=G'*kk*G;%end第三种组装方法理论为:具体的程序为:functionKK=kkAssembly(element,kk)%组装总刚max_node=max(max(element));KK=zeros(3*max_node,3*max_node);fori=1:size(element,1)KK=KK+formKK(element(i,:),kk(:,:,i),max_node);endend%%%%采用编码法,朱院士的《有限单元法原理与应用》,第四版,第55页,表2-1%functionKK=formKK(element,kk,max_node)%%计算单元节点在全局刚度矩阵中的位置%KK=zeros(2*max_node,2*max_node);%Globalocation=zeros(1,size(element,2)-1);%fori=1:size(element,2)-1%Globalocation(1,2*i-1)=2*element(1,i+1)-1;%Globalocation(1,2*i)=2*element(1,i+1);%end%fori=1:8%forii=1:8%KK(Globalocation(1,i),Globalocation(1,ii))=kk(i,ii);%end%end%end%%贰abaqus导出K、C和Mabaqus可以导出自身模型关键矩阵,如单元刚度矩阵、总体刚度矩阵、单元质量矩阵和总体质量矩阵等,但是目前无法通过cae界面完成操作,只能手动手改inp文件,只需要在inp文件中添加下方的代码即可导出上述矩阵**include,input=mo.inp***************************************************************************************输出单元刚度矩阵*Step,name=Emmkk*static1.,1.,1e-05*FileFormat,ASCII*ElementMatrixOutput,Elset=Part-1-1.SET-1,FileName=EMass,OutputFile=UserDefined,mass=yes*ElementMatrixOutput,Elset=Part-1-1.SET-1,FileName=EStiffness,OutputFile=UserDefined,stiffness=yes*EndStep***************************************************************************************输出总体刚度矩阵*Step,name=Gkk*MATRIXGENERATE,STIFFNESS*MATRIXOUTPUT,STIFFNESS,FORMAT=COORDINATE*EndStep***************************************************************************************输出总体质量矩阵,集中质量阵*Step,name=Gmm*MATRIXGENERATE,mass*MATRIXOUTPUT,mass,FORMAT=COORDINATE*EndStep***************************************************************************************输出总体阻尼矩阵,瑞丽阻尼*Step,name=Gcc*MATRIXGENERATE,VISCOUSDAMPING*MATRIXOUTPUT,VISCOUSDAMPING,FORMAT=COORDINATE*EndStep叁算例设计一悬臂梁悬臂端受简谐荷载算例,悬臂梁尺寸为10x10x40,弹性模量为1e10,泊松比为0.25,密度为2400,一端固定,另一端节点施加简谐动荷载,边界条件和荷载示意图为:简谐荷载时程曲线为:模型网格为:对该计算模型设计三种工况作对比,三种工况的信息分别为:1、ABAQUS计算,采用动力隐式分析步,计算总时长为10,固定增量步长为0.01,总增量步数为1000。记为工况一。2、采用MATLAB完全自编C3D8单元,读取ABAQUS输出的单元节点和节点坐标信息,计算单元刚度矩阵(考虑B-BAR修正)、质量矩阵(集中质量矩阵)和阻尼矩阵(比例阻尼)并集成为总体矩阵,采用newmark时程积分法,计算总时长为10,固定增量步长为0.01,总增量步数为1000。记为工况二。3、导出ABAQUS的总体矩阵,替换掉自编程序中的总体刚度矩阵,采用newmark时程积分法,计算总时长为10,固定增量步长为0.01,总增量步数为1000。记为工况三。壹刚度矩阵、阻尼矩阵和质量矩阵对比首先是自编程序计算的总体刚度矩阵数值的部分截图如下:然后是ABAQUS导出的总体刚度矩阵数值的部分截图如下:可以发现,计算结果是一致的。将两个矩阵做差记为KK,计算KK矩阵的1、2和无穷范数,结果分别为:0.000644803047180176、0.000345101701596316和0.000643551349639893。计算结果说明自编程序组装的总体刚度矩阵和ABAQUA导出的矩阵是吻合的。质量矩阵他同样是相同的,具体见附件。单刚和质量计算无误,则阻尼一定是准确的。壹位移、速度和加速度对比提取悬臂端1节点编号位置的位移时程曲线如下图:提取悬臂端1节点编号位置的速度时程曲线如下图:壹结果分析在计算精度方面,三种工况的计算结果是一致的。说明,自编C3D8单元能够达到ABAQUS的计算精度,位移数据吻合,说明后续的应变和应力数据也是吻合的,但是目前没有编制相应的程序做验证。而且说明了单元矩阵组装为模型总体刚度矩阵的程序是完全正确的。在计算时长方面,目前的程序比ABAQUS计算的要快得多,但是这并不意味着自己编制的程序计算效率就一定超越了ABAQUS,这是不可能的。究其原因,是因为自己编制的程序只是简单的计算了最基础的数据,而且采用了最简单的饿newmark时程积分法,在增量步之间没有进行任何的收敛判断计算,这在线弹性小变形问题中是可以的,但是其他情况不适用;但是ABAUQS中的计算流程则极为复杂,包括计算前的矩阵预处理、矩阵求逆以及为了保证计算精度的处理、增量步之间的收敛判断等等等等,这些通用的计算步骤,占据了简单算例的大部分时间。来源:有限元先生

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈