abaqus空间随机场折减

该博客介绍了如何在ABAQUS中实现随机场材料参数的随机化,通过读取单元数据,生成正态分布的随机参数,并按单元分配材料属性,包括内摩擦角和粘聚力,最终实现材料强度的折减。代码中提供了获取单元序号、生成随机参数和材料赋值的详细步骤,但注意内摩擦角的折减公式存在错误,且随机公式未考虑空间随机理论。

经过这几天的摸索终于实现了随机场的强度折减了,直接上代码,讲解暂时先不细说,基本的解释都在代码里面,主要思想就是如下:
1、获取单元数量
2、根据单元数量定义材料数量
3、根据单元数量设置Section的数量
4、最后设置相同数量的element set
生成效果:
在这里插入图片描述
当然我的材料参数中的内摩擦角折减公式是不对的,我这里附上正确的折减公式:

np.round(np.arctan((np.tan(chi1_phi*(np.pi/180))/zhejian[i]))*(180/np.pi),10)

另外我这里的随机公式也没有考虑空间随机理论,这里我只是演示给大家看,别的不多说,埋头干活
1、需要根据我们构建的数值仿真模型的单元数量生成随机场
这里将每行的数据存储为一个元组,先获得每行的数据,在获取每行的第一个值,就是我们的序列号

'''获取单元序号'''
def Unitnumber(Partitions,filename):
    with open(filename,mode='r') as txtfile:
        data=[]
        line=txtfile.readlines()
        for i,rows in enumerate(line):
            if i in range(0,len(line)):
                data.append(rows.strip('\n'))
        for i in range(len(data)):
            a=data[i].split(',')
            for j in range(len(a)):
                b=a[j].split(',')
                Partitions.append(int(b[0]))
    return Partitions

2、随机场的生成
随机长的生成式假设为正态分布随机抽样的,样本数量即为网格数量,np.random.normal()的三个参数分别代表均值、标准差、抽样数量

randon_c=np.random.normal(6,0.2,len(elementlist))
randon_phi=np.random.normal(20,0.2,len(elementlist))

3、根据inp文件的规则我们需要将生成的随机参数赋予我们的单元
读取模型及对应part

mymodel = mdb.models['Model-1']#获取模型
mypart = mdb.models['Model-1'].parts['Part-1'
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值