创建时间:2020-10-30 11:36

Life’s pathetic, let’s pythonic!

近年来互联网的蓬勃发展成就了Java,随全球信息化趋势和人工智能技术的兴起,解释性语言已经成为各行业中的新宠,python即为其中的佼佼者。

 

20年前全民学英语的风潮,如今变成了全民学 Python编程语言流行指数(PYPL)公布的2020年4月份数据,Python仍然大幅领先。

img2

 图 1 :编程语言流行指数(PYPL)公布的2020年4月份数据 

 

作为一门解释性语言,Python的首要特点是语言简洁,其次,Github上面向Python的开源库达到近18万这一庞大存量。这些优点可以帮助用户将主要静力放在业务本身,大幅度减少在代码开发和调试环节的时间投入。在数值计算领域,软件开发商已陆续在自身产品中嵌入Python,并提供与之匹配的类库接口。ITASCA部分软件已嵌入Python语言,允许用户在内置Python环境下实现ITASCA软件运用。技术整合除能实现数值模型控制外,还可借助Python进行满足用户特定 需求的高级二次开发。

 

从本期开始,我们将通过系列文章介绍引入Python,以发挥ITASCA系列软件更为强大的功能,初步规划推介以下内容(会视用户反馈作适当调整):

(1)      ITASCA软件中Python框架和ITASCA类库概况

(2)       IPython和FISH模型控制方法的区别;

(3)       应用Python提取多结果文件数据并展示;

(4)       应用Python进行参数敏感性分析;

(5)       应用Python创建用户自定义图形化用户交互界面

 

本文通过一些简单案例来说明ITASCA与Python整合技术的特点。ITASCA软件帮助文档中对如何使用Python进行了详细的说明 

img3

2 :ITASCA软件帮助文档Python相关内容

 

ITASCA系列软件内置Python的使用方法

PFC5.0及FLAC3D 6.0版本开始支持通过Python语言进行软件的控制ITASCA系列软件中新建Python文件的方式十分简单,以.py后缀新建Data文件即可,如创建test1.py文本文件即可直接按照Python语言进行编写。

img4

3 : FLAC3D 7.0创建Python文本文件

Python后台控制环境可通过调用ITASCA软件菜单Python下的IPython Console选项打开。

img5

4 : IPython Console界面

当ITASCA软件接受执行py后缀文件(如test1.py)命令,将自动选择Python对其进行解译运行。

img6

5 : Python在FLAC3D 7.0软件中的应用

 

应用Python控制ITASCA系列软件

ITASCA软件下Python环境可仅作为py开发编译器,显然该特点不符合技术整合的定义。ITASCA公司为其数值分析产品定制开发了一整套面向Python的成熟类库(或称之为模块)Itasca,实现Python对FLAC/PFC模型的访问、控制和自定义开发。

通过import语句导入itasca模块的方式如下:

import Itasca as it

通常情况下,紧跟it.command("python-reset-state false")语句,其作用是使用model new或者 model restore 命令时,Python状态不会被清除

 

利用Python进行PFC/FLAC3D模型操作的试例如67所示。在Python文本文件中使用itasca命令,使用it.command()即可。

img7

6 : 利用Python创建FLAC3D模型

img8

7 : 利用Python建立用户GUI界面进行模型操作

除此之外,Python可对模型进行边界条件添加、材料属性赋值、结构单元属性赋予、结果提取等常规操作,还可以进行敏感性分析、异常处理等操作,帮助文档中进行了详细的说明,在此不作展开。

 

Python在ITASCA系列软件中的应用优势

ITASCA软件中还内置了自有二次开发环境FISH。对于同一模型控制操作,测试表明Python执行效率要比FISH高10%左右。此外,通过利用Python开源专业模块numpy、matplotlib、Cython等,将会在极大提高分析效率的同时,开拓用户对数值分析应用的掌控能力。其中,numpy、matplotlib分别为专业化数组计算和数据绘图模块。

以岩土体参数敏感性为例,结合Python数组操作功能可帮助实现对不同弹性模量条件下模型分析的批量运行,及其指定部位变形响应值的自动查询打印。

img9

8 : 利用Python进行弹性模量敏感性分析

 

Python模型控制环境和ITASCA软件自有控制环境的另一显著区别是Python状态没有模型状态关联,也没有保存到保存文件中,或者说在Python中定义的参数变量(内存变量)存在于其自身环境,这些变量可以被ITASCA模型调用,但不会因为执行ITASCA模型新建model new或打开model restore命令而在内存中被清除该功能为利用Python环境进行ITASCA模型分析提供了基础性优势,常见应用主要涉及模型批量处理相关操作,如前述参数敏感性分析,利用model restore命令依次调入模型文件进行自动出图等。

 

结   语

在PFC/FLAC3D应用Python借助丰富的函数库,可提高工作效率,获取更为丰富的结果展示形式。Python语言简洁,较FISH语言具有更快的处理速度提高解决问题的效率。同时,Python状态不受model new和model restore命令的影响,可进行更高权限的模型交互,可进一步地提高软件使用效率。

 

参考文献:

[1]       FLAC3D 7.0 Manual. Itasca Consulting Group, Inc.

 

首页    关于我们    行业资讯    Python在ITASCA系列软件中的应用

Python在ITASCA系列软件中的应用