【詳細(xì)講解 · 推薦】第3部分:降雨入滲條件下土質(zhì)邊坡任意時刻穩(wěn)定性的批量實時分
2022-01-01 22:55 作者:巖土災(zāi)害-學(xué)識分享 | 我要投稿

(一)Abaqus .inp文件計算方法
將下述代碼寫入.txt文件,然后將文件類型改為.bat,隨后雙擊.bat文件即可。
單個.inp文件計算:
abaqus Job=xxx1.inp cpus=3 int ask=off
多個.inp文件計算:
call abaqus Job=xxx1.inp cpus=3 int ask=off
call abaqus Job=xxx2.inp cpus=3 int ask=off
call abaqus Job=xxx3.inp cpus=3 int ask=off
…
文件夾中全部.inp文件計算:
for %%g in (*.inp) do (
abaqus Job=%%g cpus=3 int ask=off
)
(二)Python代碼
# -*- coding: utf-8 -*- """ Created on Thu Dec 30 19:23:28 2021 @author: Administrator """ # 使用此腳本,應(yīng)避免分析步中最小增量包含于總降雨時間相同的字符串 import math num_line=2919 # inp文件中需要替換行的序號,事先根據(jù)基準(zhǔn)inp文件確定(step-rainInfil的數(shù)據(jù)行) Hour_delta=6 # 每隔~h創(chuàng)建一個inp文件 # 1. 讀取基準(zhǔn)inp文件全部行 file_inp=open("C:/Users/Administrator/Desktop/1/Jsn-final.inp") lines_all=file_inp.readlines() # 儲存全部行的內(nèi)容 # 2. 計算需生成inp文件的個數(shù) context_ori=lines_all[num_line-1] # 需被替換行的內(nèi)容(-1是因為python從0索引) TotalHour_rain=float(context_ori[5:8])# 根據(jù)基準(zhǔn)inp文件讀取降雨總時間 num_inpFiles=math.ceil(TotalHour_rain/Hour_delta)-1 # 需生成inp文件的個數(shù) print("\n共創(chuàng)建"+str(num_inpFiles)+"個inp文件\n") # 3. 循環(huán)函數(shù):形成該行新內(nèi)容,替換原始行,并寫入新inp文件 for i in range(num_inpFiles): # i=0~num_inpFiles-1 Hour_i=Hour_delta*(i+1) # 本inp文件設(shè)定的降雨時間 if Hour_i<=TotalHour_rain: context_i=context_ori context_i=context_i.replace(context_ori[5:8],str(Hour_i))# 本inp文件該行的內(nèi)容 name_inp_i="Jfos-"+str(Hour_i)+"h.inp" # 本inp文件的名稱 lines_all[num_line]=context_i # 本inp文件全部內(nèi)容 file_inp_i=open(name_inp_i,"w") # 創(chuàng)建inp本地文件 file_inp_i.writelines(lines_all) # 寫入本inp文件全部內(nèi)容 file_inp_i.close() # 關(guān)閉本inp文件 file_inp.close() #關(guān)閉基準(zhǔn)inp文件 # 4-1. 創(chuàng)建bat批處理文件,調(diào)用Abaqus計算內(nèi)核 name_batFile="batch_cacu_FOS.bat" context_bat="for %%g in (*.inp) do (\n\ abaqus Job=%%g cpus=3 int ask=off\n\ )" file_bat=open(name_batFile,"w") file_bat.writelines(context_bat) file_bat.close() # 4-2. 執(zhí)行bat批處理文件 if 0: #計算時間可能很長,請在需直接執(zhí)行bat文件時改為1 import subprocess a=subprocess.getoutput(name_batFile) print(a)
標(biāo)簽: