基于Python语言的Abaqus二次开发-求最大Mises应力

2023-05-16

利用python访问Odb文件,求Mises应力的最大值

下面说明了如何从系统提示符运行示例脚本。该脚本将在输出数据库中搜索元素集 ALL ELEMENTS,以查找冯米塞斯应力的最大值:

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
from odbAccess import *
from sys import argv,exit
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
def rightTrim(input,suffix):
    if (input.find(suffix) == -1):
        input = input + suffix
    return input
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
def getMaxMises(odbName,elsetName):
    """ Print max mises location and value given odbName
        and elset(optional)
    """
    elset = elemset = None
    region = "over the entire model"
    """ Open the output database """
    odb = openOdb(odbName)
    assembly = odb.rootAssembly

    """ Check to see if the element set exists
        in the assembly
    """
    if elsetName:
        try:
            elemset = assembly.elementSets[elsetName]
            region = " in the element set : " + elsetName;
        except KeyError:
            print 'An assembly level elset named %s does' \
                   'not exist in the output database %s' \
                   % (elsetName, odbName)
            odb.close()
            exit(0)
            
    """ Initialize maximum values """
    maxMises = -0.1
    maxElem = 0
    maxStep = "_None_"
    maxFrame = -1
    Stress = 'S'
    isStressPresent = 0
    for step in odb.steps.values():
        print 'Processing Step:', step.name
        for frame in step.frames:
            allFields = frame.fieldOutputs
            if (allFields.has_key(Stress)):
                isStressPresent = 1
                stressSet = allFields[Stress]
                if elemset:
                    stressSet = stressSet.getSubset(
                        region=elemset)      
                for stressValue in stressSet.values:                
                    if (stressValue.mises > maxMises):
                        maxMises = stressValue.mises
                        maxElem = stressValue.elementLabel
                        maxStep = step.name
                        maxFrame = frame.incrementNumber
    if(isStressPresent):
        print 'Maximum von Mises stress %s is %f in element %d'%(
            region, maxMises, maxElem)
        print 'Location: frame # %d  step:  %s '%(maxFrame,maxStep)
    else:
        print 'Stress output is not available in' \
              'the output database : %s\n' %(odb.name)
    
    """ Close the output database before exiting the program """
    odb.close()
#==================================================================
# S T A R T
#    
if __name__ == '__main__':
    odbName = None
    elsetName = None
    argList = argv
    argc = len(argList)
    i=0
    while (i < argc):
        if (argList[i][:2] == "-o"):
            i += 1
            name = argList[i]
            odbName = rightTrim(name,".odb")
        elif (argList[i][:2] == "-e"):
            i += 1
            elsetName = argList[i]
        elif (argList[i][:2] == "-h"):            
            print __doc__
            exit(0)
        i += 1
    if not (odbName):
        print ' **ERROR** output database name is not provided'
        print __doc__
        exit(1)
    getMaxMises(odbName,elsetName)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于Python语言的Abaqus二次开发-求最大Mises应力 的相关文章

随机推荐

  • Ubuntu20.04安装CUDA&&cudnn(初学者详细图文教程)

    文章目录 准备工作CUDA安装cudnn安装 准备工作 注 xff1a 本机系统为 Ubuntu20 04 1 安装显卡驱动 打开 软件和更新 xff0c 点击附加驱动安装显卡驱动 2 gcc安装 若系统为Ubuntu22 04 xff0c
  • Windows+Ubuntu双系统,对Ubuntu系统扩容

    文章目录 序言Windows系统中分出空白磁盘Ubuntu获取刚创建的空间 序言 由于初学时没注意到空间问题 xff0c 现在跑数据集100余G xff0c 不想破坏已经配置好的环境 xff0c 不得不扩容 xff01 下面详细记录Wind
  • Java将字符串分别入栈入队列,然后分别出栈出队列

    1 Java将字符串分别入栈入队列 xff0c 然后分别出栈出队列 public class Stack public void stack String s Deque a 61 new LinkedList Queue b 61 new
  • Python字符串

    文章目录 一 字符串拼接1 使用 43 号连接字符串2 使用 号连接字符串3 使用 连接字符串4 使用join函数连接字符串 二 字符串常用方法1 大小写转换2 找位置 str find 检测字符串中是否包含子字符串str xff0c 返回
  • STM32——LED闪烁实验—灯常亮不闪

    前言 xff1a 入门点灯实验 xff0c 代码无误 xff0c 灯却常亮不能闪烁 代码如下 xff1a 延时函数 void delay int d while d int main unsigned int pReg 使能GPIOB pR
  • Python文件I/O

    python文件I O 读取键盘输入 python提供input 内置函数从标准输入读取一行文本 xff0c 默认的标准输入是键盘 str 1 61 input 34 请输入 xff1a 34 print str 1 请输入 xff1a l
  • 高效回顾深度学习DL、CV、NLP

    目录 深度学习DL计算机视觉CV自然语言处理NLP 深度学习DL 深度学习 xff08 deep learning xff09 是机器学习的一个分支 xff0c 是伴随着大数据与云计算技术的崛起而快速发展起来的 xff0c 并在计算机视觉
  • 开放麒麟来了!我国首个桌面操作系统开发者平台正式发布

    近日 xff0c 中国首个桌面操作系统根社区openKylin xff08 开放麒麟 xff09 发布会在线上成功举行 开放麒麟 是中国首个桌面操作系统开发者平台 xff0c 由国家工业信息安全发展研究中心 中国电子 普华基础软件等单位联合
  • 第五节.常用Linux命令—远程管理

    第五节 常用Linux命令 远程管理 1 关机 重启 xff1a shutdown 1 命令格式 命令作用shutdown 选项 时间关机 重新启动 2 常用命令 命令含义shutdown r now重新启动操作系统 xff0c 其中now
  • CSP-M3 B

    思路 xff1a 定义两个矩阵 xff0c 一个矩阵记录输入的数据 xff0c 另一个矩阵起标记作用 xff0c 当以行的方式遍历矩阵 xff0c 如果大于等于3个数字相同 xff0c 则标记为0 同理 xff0c 以竖的方式进行遍历 最后
  • week13 作业C

    题意 xff1a 在大家不辞辛劳的帮助下 xff0c TT 顺利地完成了所有的神秘任务 神秘人很高兴 xff0c 决定给 TT 一个奖励 xff0c 即白日做梦之捡猫咪游戏 捡猫咪游戏是这样的 xff0c 猫咪从天上往下掉 xff0c 且只
  • 在浏览器访问IP地址然后回车URL后面自动加#号

    在浏览器访问IP地址然后回车URL后面自动加 号 在给客户搭建环境中 xff0c 遇见了这个问题 情况 xff1a 首先是客户内网中有一台Windows7笔记本用ie浏览器访问http IP 端口 xff0c 结果是回车后URL后面自动加上
  • 选择排序(思路+算法)

    选择排序 选择排序是一个十分基础 xff0c 简单的排序 思路 xff1a 1 找到数组中最小的元素 xff0c 拎出来 xff0c 将它和数组的第一个元素交换位置 xff1b 2 在剩下的元素中继续寻找最小的元素 xff0c 拎出来 xf
  • 树莓派4b安装vscode

    树莓派4b安装vscode 不是code oss vs code开始支持32位的arm了 之前树莓派都是用code oss 硬件为树莓派4b xff0c 32位 xff0c 4G内存 从vscode官网 https code visuals
  • TomCat9.0.37容器无法访问问题解决方法

    Docker 启动tomcat容器后访问404 启动后 出现访问404 原因是 xff0c webapp文件夹下是空的 首先进入容器中的tomcat docker exec it id bin bash id 为容器id ls 查看 有两个
  • Java多线程练习(一):模拟游戏组队

    编写命令行程序模拟游戏组队 xff1a 每隔1秒有一个玩家进入 xff0c 并随机加入A或B队 当A B队人数均达到4人时 xff0c 倒计时5秒 xff0c 然后开始游戏 实现代码 xff1a span class token comme
  • Vue3使用element-plus 组件不显示

    vue3引入element plus之后会出现一些黄色警告 引用的element的组件不显示 例如我这个问题 是使用 element plus 中表格组件出现的警告 导致数据不显示 经过排查 是引入element组件文件 里没有注册这个组件
  • iperf3使用方法详解

    iperf3是一款带宽测试工具 xff0c 它支持调节各种参数 xff0c 比如通信协议 xff0c 数据包个数 xff0c 发送持续时间 xff0c 测试完会报告网络带宽 xff0c 丢包率和其他参数 小广告 xff1a 欢迎喜欢网络技术
  • 国产操作系统有哪些,你知道吗?

    国产操作系统有哪些 xff1f 目前国产操作系统主要以开源的Linux为基础进行的二次开发 xff0c 近10种左右 xff0c 目前认知度较高的国产操作系统主要包括银河麒麟 中标麒麟 统信操作系统 红旗Linux 中科方德 银河麒麟 银河
  • 基于Python语言的Abaqus二次开发-求最大Mises应力

    利用python访问Odb文件 xff0c 求Mises应力的最大值 下面说明了如何从系统提示符运行示例脚本 该脚本将在输出数据库中搜索元素集 ALL ELEMENTS xff0c 以查找冯米塞斯应力的最大值 xff1a from odbA