您现在的位置是:首页 > 行业 > 制造 >

高性能的CAE软件

2009-10-28 05:08:00作者: 来源:

摘要本文指出设计、分析、优化一体化是CAE软件的重要发展方向,而且随着一体化发展和高性能计算的普及必然引起高性能CAE软件的开发与发展。...

一 设计、分析、优化一体化是CAE软件的重要发展方向

    科技的发展进步对产品性能提出了越来越高的要求,产品更新的周期也不断加快。从而加剧了产品研制过程的复杂性。对于新产品的设计和加工,设计人员希望不只是在计算机上将产品描述出来,更希望:“不必真的把设备造出来,只要在计算机里进行模拟就可以发现不足、及时修正”。也就是说在生产以前对设计方案借助计算机模拟实现精确的试验、分析和论证,从而达到优化设计,这就是计算机辅助工程,即CAE(Computer Aided Engineering)。CAE应该是包括产品设计、工程分析、数据管理、试验、仿真、优化和制造的一个综合过程,在三维实体建模的基础上,从产品的设计阶段开始,按实际条件进行仿真分析,对产品的各项(力学、热学、电磁、流动等)相关性能进行设计、优化和综合评价,以便获得最佳方案,给出优化设计。CAE技术可以帮助用户改进产品设计、缩短设计周期,减少样机试验的周期和成本。CAE技术已逐渐为更多的工程设计人员认识、应用。

    目前,越来越多的计算机辅助手段被应用于各门类工程,产生了一系列技术分支,如计算机辅助设计CAD(Computer Aided Design)、计算机辅助试验CAT(Computer Aided Test)、计算机辅助工艺过程设计CAPP(Computer Aided Process Planning)以及计算机辅助制造CAM(Computer Aided Manufacturing)等,这些技术都是为了满足工程设计的需要,可以统称为CAE技术。CAE技术的发展趋势可以概括为,采用最先进的信息技术,吸纳最新的科学知识和方法,扩充CAE软件的功能以提高其性能。

    CAE技术的载体就是CAE软件。CAE软件是结合计算数学、计算力学、相关的工程科学、现代计算技术和工程管理学,而形成的综合性、知识密集型信息产品。CAE软件大体可以分为专用和通用两类。专用软件,即针对特定类型的对象所开发的用于性能分析、预测和优化的软件。从广义上说,设计人员手头的一些小计算程序都可以认为是专用CAE软件。通用软件,即可以对多种类型对象的物理、力学性能进行分析、模拟、预测、评价和优化,以实现产品技术创新的软件。

    在CAE软件的多个发展方向中,设计、分析、优化一体化软件的形成是一个重要的发展方向。笔者在和许多应用单位交流时发现,他们引进了一些大型通用商业软件,但这些软件不是以用户的专业应用为导向,软件提供的功能、界面方面和用户的专业要求有很大的距离,所以CAE软件的应用效果不理想。几十人的设计队伍中,往往仅有一两名工程师用得好。以用户专业设计为导向的CAE软件需求将促进设计和分析整合。大量的设计任务是在众多可能方案中按照优化目标选择最优方案,而目前的大部分软件都无法自动完成此方面的工作,需要很多的人工干预和分析。分析和优化软件及技术的发展可以最终促进CAE软件各部分的融合,最终形成设计-分析-优化一体的计算机辅助产品虚拟开发系统。

二 CAE软件与高性能计算

    当今国际,两大芯片制造商AMD和Intel都推出了双核CPU,将来还要推出四核、八核CPU。这意味着个人的桌面办公系统硬件现在就可以实现高性能计算,在不远的将来,个人桌面系统的处理能力甚至可以超过当前几十个,上百个CPU的处理能力。高性能计算的硬件成本已经下降到设计研究小组甚至个人都可以接受的程度。高性能计算已成为一个现实的选择。

    在软件方面,为了满足设计、分析、优化一体化的需要,必然要求CAE软件的一体化。考虑集成优化的CAE软件必然带来计算量的快速增长。为适应于更精确、更快速地得到设计的优化方案,开发设计、分析、优化一体化高性能CAE软件是当前高性能计算硬件资源能以大众可接受的价格获得的情况下的一个必然选择。CAE软件并行化的核心是高性能数值计算。高性能数值计算是解决大规模、复杂的科学与工程计算问题,如油气藏的勘探与开发,全球气候的模拟,地球动力学与板块运动研究,航空航天飞行器的设计开发等等的先决条件。高性能计算目前已经成为国际上科学与工程计算的一个主流发展方向。

    高性能数值计算,虽然经过了30年的发展过程,由于技术本身的困难和复杂程度,目前在并行算法、并行计算环境、并行计算机的软件设计和开发技术等领域仍然极具挑战性,是当前工程与科学数值模拟的前沿性课题。许多高校或研究院成立了学科的数值模拟中心或是高性能计算中心,或所属学科重点实验室,开展各自领域内的数值模拟问题解决方案的研发工作。但是,采用传统手段进行高性能计算软件的开发,其难度和工作量都非常大,不能满足当前高性能计算软件需求的快速增长。

    高性能计算的需求增长迅猛,引导着相关的硬件技术和软件技术向前发展,硬件发展的速度紧跟需求的发展,目前正从百万亿次向千万亿次迈进。高性能计算软件的发展则远远落在后面,高性能计算软件的发展是普及高性能计算的关键。这是一个挑战,也是一次机遇。在CAE软件方面,我们处在可以改变目前CAE软件格局的路口。

三 CAE软件开发与程序自动生成

    在传统CAE软件开发中数值模拟计算部分通常花费很大的时间和精力。有很多好的想法和物理模型因为囿于巨大的编程劳动而无法实现或验证。有人提出了开源和模块化的思路,模块化开发的思路被传承下来,但CAE 软件开源开发的想法因为组织和协作的复杂而没有取得出色的成果。有没有一种途径可以采用模块化方法,同时进行软件的自组织,实现自动编程呢?

3.1 有限元语言和FEPG

    计算机发展至今,在带动社会不断发展和变化的同时,其本身也在不断的发展与进步,计算机语言的发展经历了从机器代码到汇编代码,再到FORTRAN,C语言的发展历程。此后,对于一些专业领域出现了一些专门的语言,如MATLAB语言等。针对数值模拟,有限元语言[1]的提出改变的传统的数值模拟软件的研制方式。这种语言可以节省90%以上的软件编写代码量。例如,针对一个三维稳态热传导问题,采用有限元程序自动生成系统(FEPG)提供的有限元语言,用户只需给出数理模型及其算法即可生成全部有限元计算源代码。我们从稳态热传导控制方程出发

                                                                  

    并假设求解边界条件为:


    按照有限元方法,转化为虚功方程的弱形式:

                                                          (*)

    描述偏微分方程等价弱形式的有限元语言文本(右边文字为注解行):

    disp u                         u代表未知函数名,此例中代表温度
    coor x y z                      给出总体坐标系下的坐标变量X,Y,Z
    shap c 8                       c表示六面体单元,8表示八节点单元
    gaus 2                         给出每个方向上积分点的个数
    mate ek q                      ek,eq为材料参数名,后面可给定相应值
    空一行
    stif                            给出刚度矩阵
    dist=+[u/x;u/x]*ek+[u/y;u/y]*ek+[u/z;u/z]*ek 对应于方程(*)中的左端项
    空一行                      
    load=+[u]*q                   给出载荷向量,对应于方程(*)中的右端项
    空一行
    end                           结束符
    描述算法的有限元语言文本
    Defi                           开始定义物理场
    a  ell                          定义a场  ell表示采用椭圆算法求解
    空一行
    STARTC  a                      初始化a场
    SOLVC   a                    求解a场
    连接算法和偏微分方程弱形式的有限元语言文本:
    PDE文件名
    空一行
    # elemtype   c  8                   单元类型
    3dxyz                               坐标系

    采用有限元语言描述三维稳态热传导,它的书写形式物理意义明确,代码量远远低于直接采用FRORTRAN/C编程。填写好这些文本后,即可通过有限元程序自动生成系统(FEPG)生成该问题全部有限元计算FORTRAN代码。这可以把研究人员从庞大复杂的编程劳动中解脱出来,将更多精力投入到寻找合理的物理模型与更准确的算法中。

3.2 高性能计算平台pFEPG

    并行有限元程序自动生成系统(pFEPG)传承了FEPG的技术思路,仍然采用组件化程序设计方法和程序自动生成技术,由用户输入用有限元语言表达的偏微分方程和算法(包括非线性算法和耦合算法),pFEPG将自动生成基于区域分解法的并行有限元源程序。基于区域分解的并行有限元计算,首先将整个求解区域分解为若干子区域,将每个子区域分配给一个进程处理。各个子区域单独进行单元计算、刚度矩阵的合成、非线性算法和多场耦合算法的实现、后处理计算等。各个子进程之间通过专门设计的相对独立的通讯子系统进行消息传递、迭代进行计算求解。最后整个求解区域的结果由各个子区域的计算结果叠加得到,完成并行有限元计算。

图2.1  pFEPG并行程序生成示意图

    pFEPG生成并行程序的思路和FEPG是完全一致的,所不同的是pFEPG生成程序时需要再加入通信的元件或程序片段。但对用户来说,由pFEPG生成并行程序与由FEPG生成并行程序两者用的是相同的公式,可以实现从串行计算到并行计算的软件自由进阶。


(本文不涉密)
责任编辑:

站点信息

  • 运营主体:中国信息化周报
  • 商务合作:赵瑞华 010-88559646
  • 微信公众号:扫描二维码,关注我们