如何在HyperStudy中注册求解器? |
您所在的位置:网站首页 › ansys为什么求解没有反应 › 如何在HyperStudy中注册求解器? |
首先需要明确一点,所有求解器的调用均在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: b03 — 各求解器cmd调用方式? 各求解器命令行调用方式需要在其帮助文档查证,然后使用一个小的示例文件验证一下就可以了。 04 — 一体式求解器设计 通过以上,我们知道了HyperStudy如何调用cmd,知道了Python如何接受命令行传入参数,也知道了求解器cmd运行指令,那么我们就可以开始着手于设计一个集成多个可调用求解器的py脚本。 该脚本根据HyperStudy传入的参数决定调用哪一个求解器求解输入的求解文件,如果有特殊需求,还可以根据传入参数定义求解参数(暂未,现在的求解参数均为定值),您可以随意扩展。 注册方式如下图: 整体逻辑就是:python batch.py fem solver。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |