龙空技术网

「EDF开源CAE」SALOME数值模拟平台中OpenTURNS模块简介

CAE远算课堂 1108

前言:

目前朋友们对“edf算法实现”大致比较关注,小伙伴们都想要剖析一些“edf算法实现”的相关文章。那么小编也在网络上收集了一些对于“edf算法实现””的相关文章,希望小伙伴们能喜欢,我们一起来学习一下吧!

SALOME是一款由法国电力集团(EDF)、法国原子能和替代能源委员会(CEA)和Open CASCADE三方合作开发的开源工业仿真平台,包含仿真前处理和后处理所需的多种数值工具。平台提供一套完整的解决方案,涵盖从原始输入数据导入、几何与网格模型建立、到计算结果可视化和后处理分析的一整套流程,在此过程中实现各个辅助性分析模块(如数据同化辅助模拟,不确定性分析,计算流程管理,计算资源定义等)与求解模块的实时数据交换和多物理场求解器耦合运行。

前言

作为一个开源软件平台,SALOME能够用于数值模拟的通用预处理,后处理和工作流管理操作,另外其灵活的架构能够允许包括code_saturne, code_aster, Open TELEMAC-MASCARET,Syrthes,Paraview等软件的兼容,并能便捷地进行软件间的相互耦合运算和处理。

OpenTURNS的背景

目前在各种研究和工程领域中,对多学科数值模拟的需求越来越大,比如在评估复杂系统的稳健性能以及应对更严格的监管流程等研究中需要在处理复杂的数值模拟框架时考虑不确定性。针对这个背景,法国电力研发部门、空中客车集团和Phimeca工程公司于2005年开始合作,致力于开发OpenTURNS开源软件,作为处理不确定性分析和风险'N统计等相关计算的开源数值工具。通过这个软件,用户可以解决包括实验设计、敏感性和不确定性分析等在内的诸多统计学问题,从而服务于实际工业设计、生产和研究。本期将会从软件介绍,功能等方面来介绍SALOME平台中的OpenTURNS模块。

软件介绍

OpenTURNS是一个LGPL许可下的开源软件,它本身是一个C ++库和一个Python TUI,因而可以在Linux和Windows环境下运行。其具有以下主要特性:

开源性质,确保源码的透明度,便于二次开发利用;可应用于物理或工业领域,用于处理各类相关复杂问题;具有先进的工业计算功能,支持大规模高性能并行计算以及大数据模型等功能;包括多种类的经过工业验证的算法,以便在各种复杂情况下进行不确定性计算;包含完整的技术文档,包括参考指南,应用指南,用户手册,示例指南和开发人员指南等,便于学习和理解源代码。

作为一个通用的不确定性分析软件,OpenTURNS可实现的功能基本涵盖了整个不确定性分析领域,其中主要包括:

数据分析:包括可视化分析( QQ-plot 分位数图、Cobweb等)、拟合校验(Kolmogorov、Chi2等)、多变量分布(核密度评估KDE、最大似然法等)、数学过程(协方差模型、Welch和Whittle估计等)、贝叶斯推断和校准(Metropolis-Hastings算法、条件分布法等)等功能;概率模型构建:包括所有常用的分布法(正态分布、Weibull分布、Student分布等)、高斯过程、ARMA模型以及Matern、指数等多种类型的协方差函数模型等;元建模:混沌多项式展开、高斯过程回归、Karhunen-Loeve变换等;可靠性及敏感性分析:包括多种实验设计采样算法(Monte-Carlo、 LHS、低偏差序列等)以及Spearman、Sobol、ANCOVA等多类型分析方法;其他数值算法,包括Gauss-Kronrod 自适应数值积分、NLopt、Cobyla、TNC等优化算法、以及布伦特和Bisection寻根算法等。

OpenTURNS作为一个开源的Python/C++库,其主要的运行模式是通过编写相关计算脚本来进行的。不过为方便非开发者使用,EDF RD特别联合Phimeca工程公司共同开发了OpenTURNS的GUI模式。目前该GUI模式的Linux版本主要是通过Salome平台使用的,接下来我们将重点介绍Salome平台下的OpenTURNS模块。

OpenTURNS图形用户界面

模型建立:

首先在开始研究之前我们需要确认其中所使用的物理模型,即我们的所要研究的过程对象。OpenTURNS支持多种类型的物理模型导入,可以直接以方程形式输入(Symbolic Model)、以Python脚本形式输入(Python Model)或利用YACS模型导入(YACS Model)。

在上述方法中,简单的物理模型可直接利用Symbolic Model以方程形式输入,更加复杂的物理模型则可利用Python脚本的灵活性对其进行建模,最后Salome平台已有的其他计算模块如CFD模块就可以通过YACS模型导入OpenTURNS当中,最终实现多学科数值模拟耦合计算。

除此之外,在不确定物理模型的情况下还可以通过Data Model把已有模型输入数据和相对应的输出数据通过csv数据文件格式输入OpenTURNS,并由其进行元建模从而生成一个物理模型。

定义概率分布模型:

对于涉及到概率模型的相关不确定性分析法,首先我们需要对模型各变量的概率分布方法进行定义。在这里OpenTURNS拥有几乎所有常用的概率分布法,并可灵活地对每一个变量进行设置。

实验设计采样

实验设计作为概率统计计算和不确定分析中的一个重要算法可保证我们实验过程中的采样可以以最小的计算量实现最大程度的信息获取,因此好的实验设计需要利用高级采样方法才能实现。

针对该方面的需求,OpenTURNS GUI包含了大部分常用的实验设计采样算法,其中包括因子设计(Factorial Design)在内的离散式确定性设计,也有多种概率性设计,包括Monte-Carlo随机算法、拉丁超方采样(LHS)和Sobol低偏差序列等。因而其可以满足大部分的实验设计需求。

除了由软件自主生成实验设计,OpenTURNS GUI还支持将已生成的实验设计和结果通过Data Model的方式直接导入软件,因而具有很大的灵活性。

实验设计验证

除了生成实验设计,通过OpenTURNS GUI还可以利用事前导入的物理模型对实验设计进行图像化的评估和验证。比如我们可以对实验设计和每个实验所对应的结果进行图像化处理生成Cobweb分析图和二维散点图(Scatter plot)。如下图所示,前者可以蛛网结构展示实验设计中对每一个参数的取值状况以及所对应结果的取值,这其中每一条线代表实验设计中的一个实验设置。在分析过程中用户可以选取结构中的任意一个区间,然后所有导向该区间的结果则都会被标注出来,方便研究和分析。后者则可利用多个二维散点图的形式展示实验设计在超方体采样范围中的分布,从而确认实验设计是否很好地填充整个采样空间。需要注意的是两种分析图可同时生成,并且Cobweb图标注为红色的部分在散点图中也同样可获得展示。

元建模

元建模可以利用已有的输入-输出对应关系通过建立随机概率事件过程模型的方式对未知的实际物理模型进行重构,这在我们所研究对象的物理模型未知和过于复杂的情况下十分有用。OpenTURNS GUI在目前主要支持两种元建模算法,一是混沌多项式展开,二是泛克里金(高斯过程回归)算法。这两种较为常用的元建模算法可以用于解决大部分的元模型生成需求。

敏感性分析

OpenTURNS GUI可以针对多参数复杂模型进行参数敏感性分析,即给出各参数在模型输出结果变化中的重要程度。OpenTURNS GUI现在包括标准回归系数SRC和Sobol敏感性测试两种算法,其中较为常用的Sobol敏感性分析法可以给出各个参数的单独影响(即仅该参数对结果的影响)以及该参数和其他参数一起对模型输出结果的影响。其结果可量化为Sobol指数(取值范围是0到1,其中越接近1表明其影响程度越为重要),并转化为图像化结果,令人对各参数的影响有一个清晰且能够定量化的认识。

以上我们只介绍了OpenTURNS GUI的一部分功能,还有很多功能未能详尽的介绍,大家可自行下载使用体验。另外作为OpenTURNS 软件的GUI版本,它也在不断地更新新的功能,包括很多未能在GUI版本中实现的高级算法等。在不久的将来OpenTURNS GUI将逐渐实现库版本中的全部功能,最终将真正成为一个功能全面,计算强大且简单易用的开源不确定性分析软件~

另外大家请注意OpenTURNS并没有在SALOME的通用版本中,现在仅在SALOME的EDF开发版中包含,其下载地址如下:

另外此页面也包含其他SALOME平台的特别开发板,包括SALOME_MECA(包含code_aster模块),SALOME_CFD(包含code_saturne 模块)以及SALOME_HYDRO 测试版(包含Open TELEMAC-MASCARET模块),大家有兴趣也可自行下载~

结语

本期简单介绍了OpenTURNS软件的基本功能,SALOME平台所包含的模块和功能还有很多未能详尽的介绍,感兴趣的朋友可以访问Salome的官方网站:其包含关于该平台的各类资料例如用户手册,技术文件和教程等,能够为软件的理解和使用提供非常重要的参考材料。

以上就是我们本期的内容,我们会有更多软件和案例的介绍,欢迎大家持续关注~

更多资讯可登录格物CAE官方网站

远算在bilibili、技术邻、知乎定期发布课程视频等内容

期待您的关注

标签: #edf算法实现