【发布时间】:2023-01-07 08:51:14
【问题描述】:
我是 ABAQUS 脚本的新手,我正在尝试使用 COPEN、CSLIP1 和 CSLIP2 计算微动。我想出了下面的代码:
from abaqusConstants import *
from odbAccess import *
from odbMaterial import *
from odbSection import *
from math import *
from copy import deepcopy
from caeModules import *
from driverUtils import executeOnCaeStartup
from numpy import fabs as fabs
import numpy as np
from types import IntType
odb = session.openOdb(name='E:\PDP02.odb', readOnly=FALSE)
odb = session.odbs['E:\PDP02.odb']
print odb.rootAssembly.instances.keys()
grout_instance = odb.rootAssembly.instances['PROX-1#PROXIMAL-1']
keys = odb.steps.keys()
for key in keys:
step = odb.steps[key]
for frame in step.frames:
print frame.description
Copen = frame.fieldOutputs['COPEN']
Cslip1 = frame.fieldOutputs['CSLIP1']
Cslip2 = frame.fieldOutputs['CSLIP2']
Micromotion = sqrt(power(Copen,2)+power(Cslip1,2)+power(Cslip2,2))
#Micromotion =sqrt(power(Cslip2,2))
#float(Micromotion)
frame.FieldOutput(name='Micromotion', description='Average Micromotion', field=Micromotion)
odb.update()
odb.save()
执行代码后,我收到以下错误消息:“OdiError:表达式计算为上溢或下溢”。请帮助我理解此错误消息以及如何纠正它。我很乐意提供 .inp 和 .odb 文件以供参考和验证。
【问题讨论】:
标签: python scripting abaqus odb