【问题标题】:Run abaqus inp file with abaqus from python使用来自 python 的 abaqus 运行 abaqus inp 文件
【发布时间】:2020-03-25 03:08:50
【问题描述】:

我正在尝试运行 abaqus inp 文件并使用来自 python 的 abaqus 处理它并获取输出。它不工作。怎么办?

import os
import subprocess

inp = 'C:/Users/sel/Desktop/My work/Python Abaqus/New folder (2)/Job-1.inp'
abaqus = r'C:/SIMULIA/Abaqus/Commands/abq6145.bat'
subprocess.Popen("%s %s" % (abaqus, inp))

【问题讨论】:

    标签: python python-3.x abaqus


    【解决方案1】:

    您可以通过将capture_output关键字参数设置为True,通过子进程模块的run函数捕获子进程的stdout和strerr。这应该可以。

    inp = 'C:/Users/sel/Desktop/My work/Python Abaqus/New folder (2)/Job-1.inp'
    abaqus = r'C:/SIMULIA/Abaqus/Commands/abq6145.bat'
    cp = subprocess.run([abaqus, inp], capture_output=True)
    cp.stdout
    

    【讨论】:

    • 我收到此错误:b'Abaqus 错误:命令行选项“C:/Users/sel/Desktop/My work/Python Abaqus/New folder (2)/Job-1.inp”不能与“分析”一起使用。\r\n 与“分析”一起使用的有效选项是:\r\n[\'after\'、\'background\'、\'convert\'、\'convert_sdi\ ', \'cpus\', \'csedirector\', \'domains\', \'double\', \'dynamic_load_balancing\', \'field\', \'fil\', \'globalmodel\', \'help\', \'history\', \'host\', \'information\', \'input\', \'interactive\', \'job\', \'madymo\', \'记忆\',
    • \'mp_host_split\', \'mp_mode\', \'listenerport\', \'oldjob\', \'order_parallel\', \'output_precision\', \'parallel\', \'port\', \'performance_summary\', \'performance_summary_detail\', \'queue\', \'scratch\', \'standard_parallel\', \'timeout\', \'user\']\r \n\r\nAbaqus/Analysis 因错误退出。\r\n'
    • Abaques Error 似乎是 Abaqus 的错误。我对此并不熟悉。
    【解决方案2】:

    您在错误的目录中并且没有正确指定作业。开始解决 c:\temp\whatever.inp 文件的正确命令行语法是:

    cd \temp
    abaqus job=whatever
    

    【讨论】:

      【解决方案3】:

      我认为这种方式可能会对您有所帮助:

      首先,准备您的 .inp 文件(初始模拟:mySim.inp)

      其次,在 python 脚本(我们称之为 RunSim.py)中写入:

      from subprocess import check_output
      check_output("abaqus job=mySim.inp double cpus=4 interactive", shell=True)
      

      您可以根据您的计算机更改cpus

      第三,还要添加这一行:

      check_output("abaqus cae noGUI=odb_reader.py", shell=True)
      

      第四,在 odb_reader.py 中,您应该编写一个函数来读取 odb 文件并将结果保存为 csv 文件。如果你想做一个优化,你可以在 RunSim,py 文件中打开这个 csv 文件并提取你想要的值作为目标函数。

      因此,如果您想迭代运行 RunSim.py 文件,您可能还需要在每次迭代后删除暂存文件。你可以使用这个:

      os.remove("mySim.sim")  
      

      ...

      【讨论】:

        猜你喜欢
        • 2019-12-02
        • 1970-01-01
        • 1970-01-01
        • 2023-01-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-29
        • 1970-01-01
        相关资源
        最近更新 更多