插件技术在储层建模系统的应用
- 格式:doc
- 大小:30.00 KB
- 文档页数:6
基于Python的Abaqus前、后处理GUI插件二次开发与应用作者:***来源:《计算机辅助工程》2022年第02期摘要:为提高Abaqus建模效率并进行可视化数据分析,利用Python语言对Abaqus前-后处理进行二次开发。
分析某柴油机机油-水冷却器模块组件,结果表明:前处理模块开发螺栓GUI插件,能够批量创建相同规格的螺栓载荷,提高前期建模效率,缩短分析周期;后处理模块开发Campbell制图插件,能根据工程实际需要将模态结果数据绘制成Campbell图,并将计算结果可视化输出。
关键词: Abaqus; Python; 二次开发; 前处理; 后处理; GUI界面中图分类号: TP391.99; TB115.1文献标志码: BGUI plugin redevelopment and application of Abaquspre-and post-processing based on PythonTIAN Yutai(Shanghai New Power Automotive Technology Co., Ltd., Shanghai 200438, China)Abstract: To improve the efficiency of Abaqus modeling and achieve visual data analysis,redevelopment of Abaqus pre-and post-processing is carried out with Python language. A diesel engine oil-water cooler module is analyzed. The results show that: a bolt GUI plug-in is developed for the pre-processing module, which can create bolt loads of the same specification in bulk,improving pre-modeling efficiency and shortening the analysis cycle; the Campbell mapping plug-in is investigated for the post-processing module, which can draw the modal result data into Campbell diagrams according to the actual needs of engineering and visualize the calculation results for output.Key words: Abaqus;Python; redevelopment; pre-processing;post-processing; GUI interface0引言作为国际通用计算分析软件,Abaqus具有丰富的单元类型与材料非线性模型,在各领域发挥至关重要的作用。
插件式开发技术研究与实现
高慧萍;吕俊
【期刊名称】《计算机工程与设计》
【年(卷),期】2009(030)016
【摘要】软件需求的变化对软件的重用性、扩展性等方面性能要求不断提高,在分析组件化程序设计思想的基础之上,对主程序和接口程序以及插件和插件技术等进行了深入研究探讨,并且进一步阐明了插件的功能、插件管理以及插件的实现方案.最后通过程序中对于插件式开发的实际代码,使对于插件式开发有一个更深刻的理解.插件式开发技术的应用有利于软件的可重用性和可扩展性的提高,从而增加软件的生命周期,以及对软件的开发具有一定的实用价值.
【总页数】4页(P3805-3807,3829)
【作者】高慧萍;吕俊
【作者单位】南京工业大学信息科学与工程学院,江苏南京210009;南京工业大学信息科学与工程学院,江苏南京210009
【正文语种】中文
【中图分类】TP311
【相关文献】
1.热流道系统自动生成插件CAD二次开发技术与应用 [J], 吴英锐;徐正昭;高成鹏
2.基于插件式开发技术的电力系统图模数库一体化实现方法 [J], 唐坤杰;王志伟;李冶天;田石刚;董树锋;宋永华
3.采集平台采集适配插件化开发技术研究与实现 [J], 郭涛峰;张渊;张攀翔
4.基于wxWidgets的插件式软件设计方法的研究与实现 [J], 张伟;董贺
5.SuperMap插件式开发技术搭建水利信息化平台的方法研究 [J], 阚俊峰;崔敬涛;秦臻
因版权原因,仅展示原文概要,查看原文内容请购买。
第1篇摘要:随着信息化时代的到来,数据存储已成为企业运营的重要组成部分。
为了提高数据存储效率,降低成本,本文通过建立存储模型,对数据存储策略进行了深入分析和优化。
以下是本次建模存储模型的总结报告。
一、背景与目标随着企业业务量的不断增长,数据存储需求日益增加。
传统的存储方式存在资源利用率低、扩展性差等问题。
为了解决这些问题,本项目旨在通过建立存储模型,实现以下目标:1. 提高存储资源利用率;2. 降低存储成本;3. 提升数据存储性能;4. 增强存储系统的可扩展性。
二、模型建立1. 数据收集与分析通过对企业现有存储系统进行调研,收集了以下数据:(1)存储设备类型及数量;(2)数据存储需求及增长趋势;(3)存储性能指标;(4)存储成本。
2. 模型假设为简化问题,本次建模做以下假设:(1)存储需求稳定增长;(2)存储设备可按需购买;(3)存储性能指标线性相关。
3. 模型构建基于以上数据和分析,构建了以下存储模型:(1)存储需求预测模型:采用时间序列分析法,预测未来一段时间内的存储需求;(2)存储设备选型模型:根据存储需求预测结果,结合存储性能指标和成本,确定合适的存储设备类型及数量;(3)存储策略优化模型:针对不同数据类型,采用不同的存储策略,如冷热数据分离、数据压缩等。
三、模型求解与结果分析1. 存储需求预测通过时间序列分析法,预测未来三年内企业存储需求增长趋势,结果表明,存储需求将以每年20%的速度增长。
2. 存储设备选型根据预测结果,结合存储性能指标和成本,建议企业采用以下存储设备:(1)SSD存储:用于存储热数据,提高数据访问速度;(2)HDD存储:用于存储冷数据,降低存储成本。
3. 存储策略优化针对不同数据类型,采取以下存储策略:(1)热数据:采用SSD存储,实现快速访问;(2)冷数据:采用HDD存储,降低存储成本;(3)数据压缩:对数据进行压缩,提高存储空间利用率。
四、结论与建议通过本次建模存储模型的研究,得出以下结论:1. 建立存储模型有助于提高企业存储资源利用率,降低存储成本;2. 优化存储策略能够提升数据存储性能;3. 增强存储系统的可扩展性。
计算机软件中的插件技术分析随着计算机科学技术的发展,计算机软件已经广泛应用于各个领域和行业,为用户提供更好的服务和体验。
而插件技术作为一种应用非常广泛的技术,对于提高软件的可扩展性、可维护性、可升级性、可定制性等方面起到非常重要的作用。
本文将介绍插件技术的基本概念和原理、应用场景以及其优缺点等方面。
一、插件技术的基本概念及原理插件技术就是将软件的核心功能与特定的功能分离开来,以可插拔的方式增加和扩展软件的功能。
插件技术通常采用组件化的思想,将软件系统划分为多个相互独立的组件,在此基础上,插件技术通过实现特定的接口或协议,使得第三方开发者可以开发和发布新的插件,以扩展原有软件的功能。
插件技术的实现需要实现以下几个步骤:1、接口定义:定义插件的接口,包括插件和主程序之间的交互协议、数据格式、参数等;2、插件开发:编写符合接口定义的插件代码,实现所需的功能;3、插件加载:将插件代码加载到主程序中,实现插件和主程序之间的通信和数据交互;4、插件卸载:当插件不再需要或者被替换时,将插件从主程序中卸载,并释放相关资源。
二、插件技术的应用场景插件技术广泛应用于各种软件系统中,尤其是涉及到可定制、可扩展、可升级等场景的软件系统。
以下是一些插件技术的应用场景:1、浏览器插件:浏览器插件可以增强浏览器的功能和性能,如广告拦截器、文档阅读器、密码管理器等;2、图形图像软件的插件:图形图像软件通常需要处理大量的用户图像数据,而插件技术可以很好的满足用户不同的需求,如Photoshop的插件滤镜;3、音频和视频软件的插件:音频和视频软件通常需要支持各式各样的音频和视频格式,而插件技术可以帮助软件支持更多的格式,如VLC的插件支持各种各样的音频和视频格式;4、IDE插件:开发人员在使用IDE工具过程中,经常需要根据不同的语言和框架选用不同的插件来提高开发效率,如Eclipse的插件;5、游戏软件的插件:游戏软件的插件可以增加游戏的可玩性和趣味性,如Warcraft III的地图插件和MOD插件等。
储层建模的步骤目前普遍的认识是,储层建模应分为油藏构造建模、沉积(微)相建模和油藏属性建模三步完成。
构造模型反应储层的空间格架,在建立储层属性的空间分布之前,应进行构造建模。
由于沉积相对储层物性有决定性的作用,油藏属性建模多采用相控建模,即先建立沉积微相模型,然后以此为基础进行油藏属性建模。
张天渠油田长2油藏的储层地质模型是以测井资料为基础资料,采用确定性建模的储层建模方法建立的。
储层建模的整个过程包括4个主要环节,即数据准备、构造建模、油藏属性建模、模型的应用。
一、数据准备与预处理1.数据准备一般从数据来源看,建模数据包括岩心、测井、地震、试井、开发动态等方面的数据。
从建模的内容来看,基本数据包括以下四类:①坐标数据:包括井位坐标、地震测网坐标等;②分层数据:各井的油组、砂组、小层、砂体划分对比数据;地震解释层面数据;③断层数据:断层位置、断点、断距等;④储层数据:储层数据是储层建模中最重要的数据。
包括井眼储层数据、地震储层数据和试井数据。
井眼数据为岩心和测井解释数据,包括井内相、砂体、隔夹层、孔隙度、渗透率、含油饱和度等数据,这是储层建模的硬数据。
对不同来源的数据进行质量检查是储层建模中十分重要的环节。
为了提高储层建模的精度,必须尽量保证用于建模的原始数据特别是硬数据的准确性。
因此,必须对数据进行全面的质量检查,如检查岩心分析的孔渗参数的奇异值是否符合地质实际,测井解释的孔渗饱是否正确等等。
建模过程中能被储层建模软件所采用的资料来源于这些基础资料,但它们有特殊的格式要求,需要转换成不同格式要求的文本文件才能以正确的格式导入到Petrel软件中。
从文件类型上来看,它们包括井头文件(Well head)、井斜文件或井轨迹文件(Well deviation)和测井数据文件(Well log)。
它们的格式和作用分别如下:①井头文件:文件内容包括井名、井位坐标(X、Y)、地面补心海拔(补心高与地面海拔之和)以及目标井段深度(井段顶部深度和测井段底部深度)。
GOCAD综合地质与储层建模软件简易操作手册美国PST油藏技术公司PetroSolution Tech,Inc.目录第一节 GOCAD综合地质与储层建模软件简介┉┉┉┉┉┉┉┉┉┉┉┉┉┉1一、GOCAD特点┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉1二、GOCAD主要模块┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉1 第二节 GOCAD安装、启动操作┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉2一、GOCAD的安装┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉2二、GOCAD的启动┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉3 第三节 GOCAD数据加载┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉5一、井数据加载┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉5二、层数据加载┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉11三、断层数据加载┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉11四、层面、断层面加载┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉12五、地震数据加载┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉12 第四节 GOCAD构造建模┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉13一、准备工作┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉13二、构造建模操作流程┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉14三、构造建模流程总结┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉40 第五节建立GOCAD三维地质模型网格┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉41一、新建三维地质模型网格流程┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉41二、三维地质模型网格流程┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉41三、三维地质模型网格流程总结┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉47 第六节 GOCAD储层属性建模┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉48一、建立属性建模新流程┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉48二、属性建模操作流程┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉48三、属性建模后期处理┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉66四、网格粗化┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉74 第七节 GOCAD地质解释和分析┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉78GOCAD综合地质与储层建模软件操作手册第一节GOCAD综合地质与储层建模软件简介Gocad是国际上公认的主流建模软件,在众多油公司和服务公司得到了广泛的应用。
各种数模建模软件优缺点比较数值模拟软件与地质建模软件优缺点比较数值模拟软件目前中国市场上数模软件主要有CMG、ECLIPSE、VIP。
对于黑油模型由于研究时间较长,技术相对成熟,是目前最成熟的模型,所以不论那款软件计算黑油模型,基本都没有问题,对于应用者关键看操作简单与否。
这3款软件黑油模型我都应用过,感受如下:1、最好的软件为CMG,前处理、图形与数据的交互功能,调参、计算等绝对一流。
2、VIP是我国引进的第一款数模软件,该软件我应用过,操作上感觉很好。
前处理较CMG稍差,再是必须按装在英文系统下,从我的角度考虑,该软件可以排第二。
3、ECLIPSE我也应用过,该软件调参中BUG太多,麻烦很多,给操作者带来诸多不便。
该软件正版一个许可好像在200万左右(不是很准)。
在中国它主要应用黑油模型,这个模型应用哪个软件都拿得出手。
目前CMG在中国主要应用的是热采模块stars,该模块任何软件都比不了,在世界上也是这样,CMG的组分模型与热采模型一样出名,如果你做注气组分模拟,你必定会选择CMG,就像热采一样。
另外它的聚合物、化学驱三采模块我估计也差不了,但我没应用过,不做过多说明。
三采应用过且见到公开评论较好的软件是VIP软件,CMG三采评价可以,但我见到的评价者好像没应用它,所以评价很少。
3个软件中各有有优缺点吧,黑油模型公认的是eclipse最好,它的前后处理模型是最好的,尤其加上建模软件petrel,功能还是很强大的,热采方面CMG的stars模块最好,相比而言VIP就有点中庸,VIP在聚合物驱方面相比要强点,至于别的三采泡沫驱,凝胶驱我听人说CMG比较厉害,不过个人感觉实际操作时那些需要的参数很难懂WorkBench是从美国SSI公司引进的集油藏描述、试井、生产数据分析及油藏数值模拟于一体的大型综合性软件,是一个功能齐全、图文并茂、操作灵活方便的实用软件。
它的推广应用,改善了油田开发的工作条件,提高了油田开发的工作效率。
插件技术在储层建模系统的应用
摘要:插件技术的本质是在不修改程序主体的情况下对软件功能进行加强与扩充,可以通过制作插件来增加一些新功能。
介绍了插件技术在储层建模系统中应用的基本设计思想与实现,以策略模式为基础,实现了插件接口,构建了插件式开发框架,增强了系统扩展性,使系统更易维护与复用;同时通过插件应用实例的介绍,给出了插件技术在储层建模系统中的实现方法。
关键词:插件技术;储层建模;策略模式;接口;框架
插件技术是一种组件复用的技术。
近年来人们受到硬插件技术的启发,即计算机的硬件设备是由许多插件板连接而成的,而这些插件板又是将许多具有独立功能的集成电路插件按插件板的设计要求组装连接而成的,各种插件通过总线使其能够相互通信、协同工作。
软件开发中插件技术的基本工作原理是:系统框架由宿主程序、接口和插件3部分组成,宿主程序负责插件之间的通信和相互操作,接口负责插件注册、卸载、插件的设置、初始化、启动、关闭工作。
插件就是普通的程序,可以完成某种功能。
由于对插件接口制定了统一的规范,用户可以根据自己的需要制作功能插件,通过接口集成到系统框架中去。
修改或卸载某个功能插件,而宿主程序不用修改口。
通过这种技术,增强软件的灵活性和可扩展性,使得软件复用性大大提高。
一般来说插件可以分为3类:①声明式插件;②组件式插件;
③接口式插件。
本文主要研究的是接口式插件。
插件自身不能独立运行,但是它通过宏定义输出函数或类,通过其它能独立的程序(宿主程序)调用它的内部功能。
此类功能插件可以通过统一的插件接口契约,解析符号获得插件中的函数签名,由宿主程序对插件继承接口的合法性作出判断后,在恰当的时间点调用它们,对于失效的或者用户暂时不需要的功能插件,可以进行卸载,这样可以有效降低系统框架的维护功能插件的复杂度。
1基于储层建模系统框架设计
储层建模系统,正式名为“储层地质统计分析系统GASOR”(Geostatistical Analysis System of Reservoir)包含十二个基本模块,具有15万行以上代码量,研发此软件始于1985年,至1995年完成了GASOR1.0的版本,受到国家自然科学基金项目资助,并与大庆、胜利等油田进行了合作研究,在系统主体功能已经相对完善的情况下,面对用户的新需求,将近几年研发出来的新功能模块加入到系统中,因此,我们搭建了插件式开发框架,插件式框架主要包含以下4个模块:插件管理模块、界面管理模块、类型库管理模块和接口管理模块,系统基本框架图如图1所示:图1基本框架
1.1插件管理模块
插件管理模块,该模块定义了插件类型库,主要功能是维护管理插件加载或卸载。
插件库在运行状态下查询实例化插件
接口的实现类等。
该模块是其他功能模块的基础,其他模块在实现其功能时需要依赖于它。
平台核心模块包括的主要功能为:插件接口有效性检查、插件信息识别、插件注册与卸载。
1.2界面管理模块
界面管理模块主要完成插件界面的动态加载,将系统需要的插件界面动态地加入到主界面。
1.3类型库管理模块
类型库管理模块的主要功能是:插件类型库是为记录插件类型信息,宿主程序启动时检索插件信息,并根据预定的插件接口装载插件。
通过类型库管理模块,可以将我们的网格粗化插件等需要扩充的功能模块插件加载到系统。
1.4接口管理模块
此模块是基于策略模式实现的插件接口如图2。
在C++实现中,abstract_interface虚基类是插件技术开发的重要类,任何需要被框架程序直接识别的插件类必须继承该类。
在实现过程中name()、initial()、execute()是必须实现,在插件库注册的函数create()是必须实现的。
图2策略模式的插件接口
2主要实现代码
2.1插件注册实现
#define PLUS_IN(CLASSNAME) \//宏定义
{ \
log << "\n\n registering plus " << #CLASSNAME << "\n"; \// 输出注册信息
SmartPtr<Named_interface> ni = \// 类型库信息
Root::instance()->interface( control_manager ); \
Manager* dir = dynamic_cast<Manager*>( ni.raw_ptr() ); \
if( !dir ) { \
log << "Directory " << control_manager << " does not exist \n"; \
return 1; \
} \
CLASSNAME toto; \
dir>factory( (),CLASSNAME##::create ); \// 向types_info类型库注册
} \
#if defined(_WIN32) || defined(WIN32)
#define GEOSTAT_PLUGIN(CLASSNAME)\
extern "C" __declspec(dllexport) int plugin_init() { \// 宏定义注册插件
PLUS_IN(CLASSNAME) \// extern "C"解决名字不匹配问题
return 0; \
}\
#else
#define GEOSTAT_PLUGIN(CLASSNAME)\
extern "C" int plugin_init() { \/ 宏定义注册插件
PLUS_IN(CLASSNAME) \
return 0; \
}\
#endif
2.2用户自定义插件实现
class __declspec(dllexport) plus_1:public abtract_interface // 继承接口类
{ public:
static Named_interface* create (std::string&); // 必须实现的接口,注册时调用
virtual bool initialize();// 必须实现的接口,算法初始化
virtual int execute(); // 必须实现的接口,算法调用
virtual std::string name() const { return " plus_1"; }// 必须实现的接口,查询调用
}
3结束语
本文基于储层建模系统构建了基于插件式的开发框架,通过实践证明是可行的。
通过插件技术,很好地将地震解释模块、网
格粗化模块以及地震反演等模块融入到储层建模系统中,很好地解决了软件复用性,对软件的扩展和维护带来很大的便利。
系统发布后可在不必重新编译系统的前提下按需对系统功能进行扩充。
参考文献:
[1]何文海,谢建刚.基于.NET平台的插件式应用框架开发[J].电脑知识与技术,2007(9).
[2]于珊珊.基于MFC的插件应用程序设计与实现[J].计算机与信息技术,2007(8).
[3]王晓峰,李颜,柴变芳.插件式软件开发框架[J].软件导刊,2008(6).
[4]蔡志明,卢传富,李立夏.精通Qt4编程[M].北京:电子工业出版社,2008.
[5][加]GASMIN BLANCHETTE、[英]MARK SUMMERFIELD.C++ GUI Programming with Qt4[M].Publisher:Prentice Hall,2006.
[6]ANDREI ALEXANDRESCU.Modern C++ Design[M].Addison Wesley Professional.2001.
[7]ERICH GAMMA,RICHARD HELM,RALPH JOHNSON,JOHN VLISSIDES.设计模式[M].李英军,等,译.北京,机械工业出版社,2000.。