首页/文章/ 详情

如何在HyperStudy中注册求解器?

1年前浏览5429

 本文主要介绍在HyperStudy中注册第三方求解器的方法,借助Python完成求解器的调用。



        HyperStudy是一个多学科多平台的优化设计软件,他可以识别所有主流有限元计算文件,并且HyperMesh也可以为所有主流CAE软件做前处理,所以一个仿真的整体流程可以是这样的:

  1. 使用HyperMesh前处理;

  2. 然后使用擅长的求解器求解;

  3. 而后再使用HyperView后处理;

  4. 后优化工作在HyperStudy中完成。

        这一套流程的优势是可以使用HyperMesh的Morph功能创建形状变量,形状变量的创建Morph绝对是首屈一指的工具。


        下面将开始注册第三方求解器,包括ABAQUS,LS-Dyna,ANSYS,如果还有别的求解器想要注册,那么整体思路是一致的。


01

HyperStudy如何调用求解器?


        首先需要明确一点,所有求解器的调用均在HyperStudy后台进行,均是无交互调用(这一点可以在使用内部求解器时发现),所以其必然采用cmd命令的方式进行求解,也就是说他将用户提交的所有参数按照规定的方式提交给命令行,进行求解。


        我们先从HyperStudy是如何调用自身求解器(即Altair公司内部求解器)看起,看一下他们的调用逻辑:



        可以看见主要有如下参数:

  1. label,注册求解器的名字,没什么用        

  2. varname,注册求解器的变量名,和我们没什么关系

  3. type,注册求解器类型,不知道有什么影响,估计也和我们没有什么关系

  4. preference,偏好,和我们没什么关系

  5. path,求解器路径,这里是关键了

  6. system arguments,系统参数,这里修改不了,不知道这个参数做什么的

  7. user arguments,用户参数,可以编辑。


        可见,path和user arguments是我们主要关注的

        而我们计划使用Python调用求解器,所以我们需要注册一个Python,正好可以看见HyperStudy默认注册了自带的Python,我们可以复 制他的路径,注册一个自己的Python。


        在HyperStudy中使用Python调用求解器的cmd命令格式肯定是这样的:Python XX.py arg1 arg2 arg3,所以在user arguments中应该传入我们的求解文件XX.py,求解过程必须包含要调用的求解器以及求解文件,所以arg1 我们需要传入求解文件, arg2 我们需要传入求解器编号。


02


Python 如何接受调用时传入的参数?


        Python使用sys.argv接受传入参数,我们写一个小程序(1.py)验证一下:












import sysif __name__ == "__main__":    f = open("log.txt", 'w', encoding="gbk")    try:        f.write('parameters' + '\n')        f.write('1:    ' + sys.argv[0] + '\n')        f.write('2:    ' + sys.argv[1] + '\n')        f.write('3:    ' + sys.argv[2] + '\n')    except:        pass    f.close()
   

        命令行执行    Python 1.py a b    此时我们可以看一下log.txt:





parameters1:    1.py2:    a3:    b
   


03


各求解器cmd调用方式?


        各求解器命令行调用方式需要在其帮助文档查证,然后使用一个小的示例文件验证一下就可以了。

04


一体式求解器设计


        通过以上,我们知道了HyperStudy如何调用cmd,知道了Python如何接受命令行传入参数,也知道了求解器cmd运行指令,那么我们就可以开始着手于设计一个集成多个可调用求解器的py脚本。


        该脚本根据HyperStudy传入的参数决定调用哪一个求解器求解输入的求解文件,如果有特殊需求,还可以根据传入参数定义求解参数(暂未,现在的求解参数均为定值),您可以随意扩展。


        注册方式如下图:



        整体逻辑就是:python batch.py fem solver。



来源:SimCoder
HyperMeshHyperViewAbaquspythonANSYS
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-02-02
最近编辑:1年前
签我的导演他姓张
本科 怕什么真理无穷进一寸有一寸欣喜
获赞 51粉丝 51文章 44课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈