批量修改Abaqus材料参数并生成inp文件的步骤

Abaqus中有7个模型,名称分别是"w+数字+s+数字",如下图所示。我现在要根据这7个模型,在每个模型里面改grout_circle材料的渗透系数,生成新的INP文件。

变量有两个,一个是w后面的数字,代表注浆圈厚度,一个是n,代表围岩与注浆圈渗透系数的比值。


代码


# -*- coding: mbcs -*-
# Do not delete the following import lines
from abaqus import *
from abaqusConstants import *
import __main__

"""

"""

def change_par_submit_job(thickness, n):
    """
    thickness: groutcircle_thickness
    n:permeability coefficient ration(surrouding rock/grout circle)
    """
    import section
    import regionToolset
    import displayGroupMdbToolset as dgm
    import part
    import material
    import assembly
    import step
    import interaction
    import load
    import mesh
    import optimization
    import job
    import sketch
    import visualization
    import xyPlot
    import displayGroupOdbToolset as dgo
    import connectorBehavior
    model_name = "w{}s6".format(thickness)
    per_value = 1e-6/n
    job_name = model_name + "n{}".format(n)
    session.viewports['Viewport: 1'].partDisplay.setValues(sectionAssignments=ON,
        engineeringFeatures=ON)
    session.viewports['Viewport: 1'].partDisplay.geometryOptions.setValues(
        referenceRepresentation=OFF)
    mdb.models[model_name].materials['grout-circle'].permeability.setValues(
        specificWeight=10000.0, inertialDragCoefficient=0.142887, table=((
        per_value, 0.02), ))
    a = mdb.models[model_name].rootAssembly
    a.regenerate()
    a = mdb.models[model_name].rootAssembly
    session.viewports['Viewport: 1'].setValues(displayedObject=a)
    session.viewports['Viewport: 1'].assemblyDisplay.setValues(loads=OFF, bcs=OFF,
        predefinedFields=OFF, connectors=OFF)
    mdb.Job(name=job_name, model=model_name, description='', type=ANALYSIS,
        atTime=None, waitMinutes=0, waitHours=0, queue=None, memory=90,
        memoryUnits=PERCENTAGE, getMemoryFromAnalysis=True,
        explicitPrecision=SINGLE, nodalOutputPrecision=SINGLE, echoPrint=OFF,
        modelPrint=OFF, contactPrint=OFF, historyPrint=OFF, userSubroutine='',
        scratch='', resultsFormat=ODB, multiprocessingMode=DEFAULT, numCpus=1,
        numGPUs=0)
    mdb.jobs[job_name].writeInput(consistencyChecking=OFF)


thicknesses = [2,4,6,8,10,12,14]
ns = [2,10,50,100,200,500]
for thickness in thicknesses:
    for n in ns:
        change_par_submit_job(thickness, n)


结果




免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空