ABAQUS程序化建模教程(一)——Python基础

2016-12-10  by:CAE仿真在线  来源:互联网





太长不想看

1.Python是提高你Abaqus建模和后处理的利器。学好Python会严重提升逼格;


2.CAE中三种数据结构,需要了解;


3.建模的三种方式:点鼠标到手抽筋式;命令行强撸python装逼式;脚本文件没朋友式;


4.懒汉可以通过jnl文件学习每一步操作所对应的Python命令。



程序化建模这个系列,小胖很犹豫要不要开。因为小胖自己也是半瓶醋,基本都是碰到问题上网搜,python学习得也并不系统。记得做第二个模拟项目的时候,整个模型有186个施工步,每一步都需要对荷载、单元生死、瞬态分析步等进行调整,光是set就大几百个。开始的时候小胖很诚心的一个个操作,玩了一天,右手中指抽筋(是真的抽筋,剧痛)。第二天不敢继续了,迫不得已拾起脑子,开始寻找能让我飞的方法。从那时开始接触python,到现在也有六七年了,总体感觉就是这是一个很人性化的语言和工具,前途不可限量(虽然现在已然是主流)。


Abaqus采用Python作为接口语言进行计算的前、后处理。采用Fortran进行设计计算过程的二次开发。所以,一般我们说Abaqus的二次开发,是指通过Fortran编制子程序实现对Abaqus自身计算功能的拓展。而采用Python进行的程序化建模,小胖认为并不能算是二次开发,只是一种比较高效的用户自定义建模方法。


废话少说了。今天先简单介绍一下Python吧,算是这个系列的一个开头。


ABAQUS程序化建模教程(一)——Python基础abaqus有限元技术图片1
Python的创始

ABAQUS程序化建模教程(一)——Python基础abaqus有限元技术图片2


Python在英文里是巨蟒的意思(插一句,算盘坊英文名小胖定为Abacus Workshop,abacus就是算盘的意思,所以宝宝们不要再留言提醒我应该用abaqus了)。它是一种面向对象、直译式的计算机语言。相比于老古董fortran,它甚至有些人类语言的风格(当然是英文,想什么呢)。


Python由河南(Netherlands)人Guido van Rossum创始。因为1989年时的他痴迷BBC一款电视剧Monty Python's Flying Circus(蒙提·派森的飞行马戏团),并且当时想用业余时间开发一套新的脚本语言和相应的解释器,于是便“很随意”地将这款新的脚本语言命名为Python。二十多年过去了,Python的确发展成一个庞然大物,并风靡地球上的智人社会。到现在Guido(60岁了)仍然活跃在Python社区,被称为“仁慈的独裁者”(Benevolent Dictator For Life)。各位有兴趣可以访问链接

https://gvanrossum.github.io//


ABAQUS程序化建模教程(一)——Python基础abaqus有限元技术图片1
Python的能力

ABAQUS程序化建模教程(一)——Python基础abaqus有限元技术图片2


1. 我们先来看看使用python编写的应用(from wiki),宝宝们看看有没有你们熟悉的:


ABAQUS程序化建模教程(一)——Python基础abaqus有限元仿真图片5


2. Python中和我们数值计算相关的一些库(初学宝宝可以把库理解为一个装满特定功能的python函数的容器,需要的时候直接调用即可)。


ABAQUS程序化建模教程(一)——Python基础abaqus有限元仿真图片6


其中小胖最喜欢第一个Matplotlib库。可惜它的创始人在2012年英年早逝。大家可以欣赏一下Matplotlib的作图效果(from official site: http://matplotlib.org/)。这些图都有相关代码可以复制粘贴哦。


ABAQUS程序化建模教程(一)——Python基础abaqus有限元仿真图片7


ABAQUS程序化建模教程(一)——Python基础abaqus有限元技术图片1
Abaqus与Python

ABAQUS程序化建模教程(一)——Python基础abaqus有限元技术图片2


宝宝们看到Abaqus的CAE及ODB,可能感觉像个黑匣子,不知道也没兴趣知道里面到底是啥。但了解一下Abaqus模型的数据存储结构,对你更高效地利用Abaqus会大有裨益。还是那句话,有事问帮助文件,学会自学。


我们先看下Abaqus Scripting User's Manual怎么说的:


ABAQUS程序化建模教程(一)——Python基础abaqus有限元图片10


从这张图可以很清楚地看到Abaqus/CAE和Python的关系。有三种方式可以沟通你和CAE的关系:

(1)GUI;也就是你鼠标在CAE界面的操作,也就是那个把小胖累得中指抽筋的方法;

(2)命令行接口(CLI);见下图,箭头所指示的地方就是;


ABAQUS程序化建模教程(一)——Python基础abaqus有限元图片11

(3)script;即编写的独立的python脚本文件。事实上,第2条所输入的命令完全可以放到一个python脚本文件中(.py文件)单独运行,所以这两者没有本质的区别。脚本文件的运行方法如下,选择Run script,然后选择你要运行的脚本(.py文件)即可。


ABAQUS程序化建模教程(一)——Python基础abaqus有限元培训教程图片12


ABAQUS程序化建模教程(一)——Python基础abaqus有限元技术图片1
Abaqus前后处理的数据结构

ABAQUS程序化建模教程(一)——Python基础abaqus有限元技术图片2


数据需要有一定的结构才能进行高效的存储、传输和调用。Abaqus/CAE中有三种不同的存储数据的对象,分别为:session、mdb和odb。其中,session可以理解为定义一些界面内即时显示的命令、函数的集合,比如定义视角等命令;mdb就包含一些实质的内容了,比如模型本身的数据如part、section、material等相关命令,以及job相关的命令和函数;odb顾名思义就是结果文件的数据存储结构。我们可以参考下图:


ABAQUS程序化建模教程(一)——Python基础abaqus有限元培训资料图片15


其中,container(容器)指的是包含多个同类对象的对象,有点拗口。比如,step这个container就包含了你模型中所有的step信息,你可以通过step进行调用。singular object就是一个单一类型的对象,如session、mdb等。


各个对象具体的结构,宝宝们可以参考Abaqus Scripting User's Manual 6.1,一目了然。


大概了解CAE的数据结构之后,各位就可以在文件ABAQUS SCRIPTING REFERENCE GUIDE中按图索骥,找到自己所需要的命令了。


ABAQUS程序化建模教程(一)——Python基础abaqus有限元技术图片1
如何快速上手

ABAQUS程序化建模教程(一)——Python基础abaqus有限元技术图片2


其实也没有特别好的办法。你在CAE中的每个操作,Abaqus都会做记录,并生成相应的jnl文件。见下图:


ABAQUS程序化建模教程(一)——Python基础abaqus有限元仿真图片18


推荐各位宝宝用ultraedit、editplus之类的专业编辑器打开,结构形式很明显,非常有美感。我们打开一个来瞅瞅。


ABAQUS程序化建模教程(一)——Python基础abaqus有限元仿真图片19


熟悉Python的宝宝都知道“from xxx import *”的含义。类似于c/cpp里面的include(暂时可以这么理解吧)。如果宝宝们在输入命令过程中出现以下错误:


ABAQUS程序化建模教程(一)——Python基础abaqus有限元资料图片20


各位就应该及时想到是否落掉了一些库没有import。事实上,为了保险起见,建议各位每次在命令窗口运行命令之前都先把所有的库import一遍(XD)。


好了,各位上班第一天,就不多说,以免给各位添堵。下次小胖先给各位整几个建模过程中常用的命令,比如批量修改step、model change之类的。不着急,慢慢来。


(完)


开放分享:优质有限元技术文章,助你自学成才

相关标签搜索:ABAQUS程序化建模教程(一)——Python基础 abaqus分析培训 abaqus技术教程 abaqus岩土分析 钢筋混凝土仿真 abaqus分析理论 abaqus软件下载 abaqus umat用户子程序编程 Abaqus代做 Abaqus基础知识 Fluent、CFX流体分析 HFSS电磁分析 Ansys培训 

编辑
在线报名:
  • 客服在线请直接联系我们的客服,您也可以通过下面的方式进行在线报名,我们会及时给您回复电话,谢谢!
验证码

全国服务热线

1358-032-9919

广州公司:
广州市环市中路306号金鹰大厦3800
电话:13580329919
          135-8032-9919
培训QQ咨询:点击咨询 点击咨询
项目QQ咨询:点击咨询
email:kf@1cae.com