- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于SiPESC平台Python扩展模块开发
基于SiPESC平台Python扩展模块开发
摘要: 基于Python的可扩展性,针对SiPESC平台对于动态解释型脚本语言环境的需求,设计并开发可动态集成SiPESC平台上系统管理、算法调用、分析计算等功能的Python扩展模块.讨论扩展模块开发过程中的用户需求、程序设计以及相关技术.SiPESC.OPT与Python第三方库的集成优化算例表明,该扩展模块能顺利驱动SiPESC平台上复杂工作流程,具有较强的实用性和灵活性.
关键词: Python; SiPESC; 脚本语言; 扩展模块
中图分类号: TB115.1文献标志码: B
0引言
随着计算机技术的飞速发展,科学研究与科学计算之间的关系日益密切,人们对于科学计算工具的需求已不再局限于处理数值问题.各种格式的大型数据集的处理、新算法的实现、数据库与互联网等计算系统的搭建等问题都需要新工具解决.[1]Python以其优越的跨平台性和强大的科学计算功能,正获得越来越多科研人员的青睐.不少商业CAE软件也提供对Python脚本语言的支持,例如Abaqus二次开发环境提供的脚本接口就是基于Python语言进行定制开发的.
目前,SiPESC平台已经实现对JavaScript脚本语言的支持,用户可以通过JavaScript语言调用平台上所有的功能插件完成各种任务.为进一步丰富SiPESC平台的脚本语言环境,弥补JavaScript语言在模块开放性等方面的不足,平台开发小组引进Python作为新的脚本支持引擎.在SiPESC平台上Python具有以下优势:
1)执行相应操作所需的代码少,代码编写简单.[2]
2)通过判断、循环和数据存储与处理等语句,易于实现人工智能控制和自动化处理过程.
3)对优化问题易于实现参数化分析,且代码结构合理易读,便于修改.
4)可以编写独立的模块,使用Python,C,C++和Fortran等语言扩展SiPESC平台的功能.
5)提供优秀的异常抛出和处理机制,缩短调试脚本的时间.
1Python语言及其扩展方法
1.1Python语言概述
Python是一门优雅而健壮的编程语言,继承传统编译语言的强大性和通用性,同时也借鉴简单脚本和解释语言的易用性.[3]其高效率的高层数据结构和简单易学的面向对象编程特点,在很多平台上都得到很好的应用,成为在这些平台上进行快速应用程序开发的主流脚本语言.[4]Python能够在Linux,Windows,Mac OS,FreeBSD和Solaris等主流操作系统中运行,其代码几乎无须进行任何修改就能在这些操作系统中执行,具有很强的跨平台性.自从1989年Guido van Rossum始创Python以来,经过十几年的发展,Python已经包含一系列完善、简易的标准库,足以完成文本处理、算法实现、科学计算、文件管理、界面设计和网络通信等常见任务,同时其还提供一套丰富的API,能够帮助程序员轻松地使用其他编程语言编写扩展模块.这种可扩展性让程序员能灵活附加或定制工具,大大缩短开发周期,并使代码的性能得到显著提升.[3]
1.2Python的通用扩展方法
早期的编程语言并不具备可扩展性,程序员只能使用现有的功能而无法向该语言增加新的功能.Python作为最早一批提供可扩展性能的语言,在支持使用纯Python语言编写扩展的同时,也支持C,C++和Java等主流编程语言的扩展.抽象的动态加载机制让扩展与解释器之间的交互方式与Python的内置模块完全一致,并且不区分编写扩展所使用的语言.
Python扩展模块主要通过Python的C语言应用程序编程接口Python/C API实现,其创建过程主要分以下几个步骤[57]:
1)包含Python头文件.通过Python.h文件导入到Python API并完成必要的预处理定义.
2)编写具体实现并封装.使用其他编程语言实现具体的功能函数和类,并将其封装成能让Python解释器识别的形式.
3)编写初始化函数.初始化函数主要完成模块对象创建和导入工作.
4)编译和链接.可以通过Python自身提供的distutils包或g++和gcc等编译器完成编译和链接.
除以上的扩展方法外,也可以通过第三方的封装工具,如Boost.Python,SWIG,Pyrex和Psyco等编写Python的扩展模块.
2扩展模块的设计
传统的Python扩展模块封装方法为静态封装,即每项扩展中增加一个新的功能,都需修改源代码,并重新编译.这种封装方法工作量大,缺乏灵活性,开发效率低,也无法匹配SiPESC平台的开放性.本文采用动态封装的方法,充分利用SiPESC平
您可能关注的文档
最近下载
- 半导体物理学(第8版)刘恩科课后习题答案解析.pdf
- 《汽车理论》清华大学余志生版.pdf VIP
- 华为 GPON OLT 组播业务配置.pdf VIP
- 文华财经期货软件指标公式源码九转系列指标.doc VIP
- ISO37001-2016反贿赂管理体系手册与全套程序文件汇编.docx
- 信捷x-sight视觉系统使用手册v2.1a.pdf
- 二+宁夏闽宁镇:昔日干沙滩,今日金沙滩(教学设计)-【中职专用】高二语文上(高教版2023职业模块).docx
- GB50303-2015建筑电气工程施工质量验收规范.docx VIP
- 婴幼儿的科学喂养课件.pptx VIP
- 造林工程--施工工期与保证措施-工程进度计划及保证措施.doc VIP
文档评论(0)