首页/文章/ 详情

如何在HyperStudy中注册求解器?

1年前浏览3112

 本文主要介绍在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年前
      签我的导演他姓张
      本科 怕什么真理无穷进一寸有一寸欣喜
      获赞 47粉丝 39文章 44课程 0
      点赞
      收藏
      未登录
      还没有评论

      课程
      培训
      服务
      行家

      VIP会员 学习 福利任务 兑换礼品
      下载APP
      联系我们
      帮助与反馈