【问题标题】:ABAQUS script for a custom field output用于自定义字段输出的 ABAQUS 脚本
【发布时间】: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


    【解决方案1】:

    简而言之,当我们分配一个超出变量声明数据类型范围的值时,就会发生上溢和下溢。如果(绝对)值太大,我们称之为溢出,如果值太小,我们称之为下溢。

    【讨论】:

    • 我认为 sqrt 也应该是一个浮点值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多