一种基于并行运算的高效一阶摄动展开渐进均匀化方法与流程

文档序号:17443311发布日期:2019-04-17 05:06阅读:482来源:国知局
一种基于并行运算的高效一阶摄动展开渐进均匀化方法与流程

本发明涉及一种基于并行运算的高效一阶摄动展开渐进均匀化方法。



背景技术:

随着科技进步,计算机从单核高频率向多核高效方向发展。单核高频因其耗能大、效率低被主流运算平台所抛弃,而多核处理器因其节约能耗、运算效率高等优点,在主流平台越来越普及。软件架构多核化、并行化成为如今一大趋势。但是,现存的原始的单核、单线程处理程序往往不能满足现在的处理运算的需求。随着通用并行化编程技术的发明,计算机并行化技术在各行各业广泛地应用成为可能。

在复合材料领域,由于复合材料本身的复杂特性,通过“设计、制造、验证”的方式来开发、生产新型复合材料往往成本较高。因此,计算机仿真方法的提出,使得设计者在设计复合材料时可以借助计算机强大的算力进行辅助设计,将传统“设计、制造、验证”流程转变为“设计、仿真、验证”,大大降低制造成本,节省优化时间周期。在仿真方法中,又以随机仿真方法更佳,其考虑了材料各种物理属性的随机分布特性,使得仿真结果更贴切实际。

然而,随机仿真方法涉及参数众多,计算量复杂,使得优化过程往往耗时过长,增加了设计和优化成本。如何加快仿真运算速度,尽早求解出关键力学量,成了研究人员重点关注的问题。

因此,本发明提出一种基于并行运算的高效一阶摄动展开渐进均匀化方法,能够根据多相复合材料的微观随机参数,并行高效地求解出材料整体宏观力学性能。



技术实现要素:

本发明技术方案所解决的技术问题为:如何高效快速地求解一阶摄动展开渐进均匀化方法,以增加该方法的实用性和适用广度。

为了解决上述技术问题,本发明采用如下的技术方案

一种基于并行运算的高效一阶摄动展开渐进均匀化方法,包括:

步骤1、根据实际材料结构域,确定随机变量来源及取值范围,建概率模型;

步骤2、基于一阶摄动假设,在材料弹性本构柔度矩阵中引入第一步中所述的随机变量模型,基于openmp并行化计算方法,分解多相方法,生成多核并行运算求解器,并求逆得到刚度矩阵,将一阶项与零阶项分离;

步骤3、基于第二步的求解结果,生成多相复合材料的整体宏观力学性能描述参数。

步骤2.1、对一阶摄动展开渐进均匀化方法中的维度进行动态分析,对0阶的情况基于公式:

进行计算求解,式中是特征位移向量,矩阵[b]是应变位移矩阵,矩阵[d]是弹性矩阵,式中的数字0均代表材料的0阶情况,中括号的幂指数-1表示求逆,积分下标y为代表体积单元。tdof为totaldegreeoffreedom,即节点位移的总自由度,所获得的分析维度为tdof*tdof与tdof,

对于1阶多相的情况,基于以下公式:

其中,中的上标1表示一阶摄动项,下标1、2分别代表第1相、第2相的材料域,上下标物理含义后面以此类推,第1相、第2相的材料域体积用y1、y2表示,t表示矩阵转置,所获得的1相、2相的分析维度为tdof*tdof与tdof,

以此类推,n相的情况为:

步骤2.2、基于分析的维度,自动将循环求解器转换为并行迭代求解器

设获取的分析维度由如下公式表示:

式中,ndim表示一维并行度,nsqdim表示二维并行度,p表示迭代并行维度。则每个并行单元为一个小求解单元,则总的并行度ptotal由下列公式确定:

ptotal=(nsqdim+ndim)·p

则原来的迭代求解器可通过该式转化为由openmp并行技术支持的并行求和器,进行数值求解;

步骤2.3、转化后的并行求和器会根据系统自身的硬件条件(cpu、内存),自动选择最佳的并行数量,以充分利用系统资源,

假设系统核数为ncore、单核的单位元算力为c,则多核单位时间算力为:

ctotal=ncorec

则并行优化前的总计算时间为:

优化后的总计算时间为:

总计算时间为原方法的

初始设定为每相占用一个线程,程序在多次运行后,会根据当前系统处理器情况,自动选择最佳线程数。

为解决所述的基于并行计算的一阶摄动展开渐进均匀化方法的普适性问题,本发明将该并行化后的求解方法通过动态链接库dll(dynamiclinklibrary)进行封装。封装后的代码单独生成一个dll文件,用户可将该文件加入系统环境路径进行全局调用,也可以嵌入到自己的程序中进行使用。动态链接库dll的封装,提高了程序的普适性、增强的了方法的平台化水平,在新的软件或平台使用所述的基于并行计算的一阶摄动展开渐进均匀化方法时,不需要工程师辅助或对整个程序进行重新编译,节省了咨询时间和程序编译时间,方便在各大有限元等运算平台部署该方法。

整个平台的核心方法采用dll(dynamiclinklibrary)动态链接库封装,可以动态从单机多核并行计算向多机集群计算扩展,不必重新编译程序。动态链接库分为x86系统版本和x64系统版本,以对应不同的cpu架构,并预留了入口函数enterfunc。

附图说明

图1是本发明算法设计流程图。

图2是数值算例-涂层粒子复合材料的几何模型图。

图3是输入文件样例。

图4是用户界面样例。

图5是python调用本平台方法样例。

图6是c++调用本平台方法样例。

图7是生成可执行文件输出样例

图8是生成文件样例

具体实施方式

本发明的一个实施算例为,假设所设计的复合材料代表体积单元为图2所示,在涂层、粒子、基体组成的三相复合材料中,基体材料为高分子聚合物,由于制造过程不精确性,其杨氏模量假设为正态分布n(16gpa,0.012),粒子材料为气体类物质n(400gpa,0.012),涂层材料为一种陶瓷涂层n(80gpa,0.032)

根据材料的组分,可以分解出所需的单元参数,将参数转化为方法平台的输入文件格式,输入文件的例子如图3所示。

生成输入文件后,可以运用多种方式利用本平台计算复合材料的性能参数:

本发明的一个实施方式为,直接采用平台自带的ui界面,调用本发明所述平台中的基于并行计算的一阶摄动展开渐进均匀化方法。

双击本平台所示的可执行文件后,其ui界面的例子如图4所示。

本发明的一个实施方式为,使用python语言调用所述的基于并行计算的一阶摄动展开渐进均匀化方法。采用python语言的ctypes包,和ctypes包下的cdll组件,可以实现对所述平台的动态链接库dll调用。首先载入dll信息,接着使用ctypes类对入口函数进行类型描述,最后进行函数调用,即可在终端输入窗口看到材料求解过程以及方法平台的运行状态。基于python语言调用的一个样例如图5所示。

本发明的一个实施方式为,使用c++语言调用所述的基于并行计算的一阶摄动展开渐进均匀化方法。采用windows.h头文件以及标准头文件,可以实现c++对所述的方法平台的调用。首先使用loadlibrary方法,获取到相应路径的动态链接库dll文件,将本平台核心算法部件载入内存后,使用getprocaddress方法获取入口函数的函数指针,并将其映射到c++定义的方法,然后输入相应参数进行调用。一个代码调用的例子如图6所示。

使用c++可以生成可执行文件,一个调用的执行例子如图7所示。

最后输出文件的例子如图8所示。

以上所述,仅为本发明中的部分具体实施方式,但本发明的保护范围并不局限于此,凡是依据本发明中的设计精神所做出的等效变化或修饰或等比例放大或缩小等,都应涵盖在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1