如何在HyperStudy中注册求解器?

您所在的位置:网站首页 ansys为什么求解没有反应 如何在HyperStudy中注册求解器?

如何在HyperStudy中注册求解器?

#如何在HyperStudy中注册求解器?| 来源: 网络整理| 查看: 265

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

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

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

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

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

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

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

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

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

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。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3