os.call オプションを指定せずにsubprocessを使用してみてください。この方法を使用して、バックグラウンドで Abaqus を実行できます。
import subprocess
path = location of file in any directory
abaqusCall = 'abaqus job=file_name cpus=2'
runCommand = 'cmd.exe /c ' + abaqusCall
process = subprocess.Popen(runCommand, cwd=path)
Abaqus の問題は、解析の実行に時間がかかることです。そのため、結果を取得するために「python_name.py」ファイルを実行しようとすると、*.odb ファイルが実行されていないため、プログラムでエラーが発生する可能性があります。まだ作成されていないか、抽出が必要なデータが含まれていません。
次のコマンドを使用できます。
process.wait()
Python に、「python_name.py」を実行する前に Abaqus が解析を終了するのを待つように指示しますが、これにより、Abaqus が完了するまで Python コマンド (または GUI) がハングし、時間がかかります。
私が使用する 1 つの方法は、解析時間と進行状況を含む Abaqus から *.sta ファイルを読み取ることです。したがって、たとえば 5 秒ごとにファイルを読み取るシーケンスを記述し、結果抽出ファイルを実行する前にジョブが終了するタイミングを監視できます。
データ抽出のもう 1 つのトリックは、CAE モジュールからクラスを使用 (インポート) しない限り、次のコマンドを使用して Python スクリプトを実行できることです。
#get results and write them to myresults.txt
os.system('abaqus python python_name.py')