温县网站建设/西安网站建设
介绍
通常,使用 LS-DYNA 或 Ansys Mechanical 等仿真工具解决工程问题需要将张量结果与解析解进行比较。一个这样的例子是加压圆柱体,其中圆周应力或环状应力是感兴趣的主要应力度量。例如,如果对具有复杂端部处理的几何结构进行此类仿真,则希望使用环向应力(例如在容器中心)来验证仿真是否在不存在解析结果的更复杂几何结构区域中提供准确的结果。
在大多数现代后处理器中,应力分量可能在笛卡尔坐标、主方向,甚至圆柱或球坐标中绘制条纹。但是,可能需要将结果将张量结果旋转到所述后处理器中“开箱即用”的方向。在本文中,我们将提供一个可验证的张量转换示例,该示例使用 Python 3.11 脚本从 LS-PrePost 中以笛卡尔坐标读取加压圆柱体的应力条纹图结果,然后将应力张量旋转为圆柱坐标以计算环向应力。
个案研究
我们将用来说明这个概念的模型是一个 d = 100 mm 平均直径 x l = 150 mm 长 x t = 2mm 厚的圆柱体,内部压力为 p = 4 MPa,使用 LS-DYNA 求解。教科书般的图像1如下所示:
有限元模型
圆柱体的材料是 Workbench Engineering Data 中的标准线性各向同性弹性结构钢,网格由 2.5 毫米大小的壳单元组成,使用默认截面属性。网格尺寸提供均匀的网格。
载荷和边界条件
根据众所周知的公式,内部压力p选定为4 MPa,这样环向应力将等于100 MPa
其中r = 平均圆柱半径,t = 壁厚。此外,均衡约束(又称 3-2-1 约束)应用于黄色显示的顶点,以提供无应力约束。
分析设置
分析类型设置为隐式,伪结束时间为 0.01 秒。选择隐式分析是为了加快分析运行时间。
模拟结果
利用 Ansys Mechanical 中的圆柱坐标系,我们可以轻松地对(未平均的)环向应力进行后处理,得到 100 MPa 的结果,从而与理论相匹配。
这个结果表明我们的模拟与理论相符。
使用 Python 重建环向应力
现在已经使用 Ansys Workbench LS-DYNA 找到了环向应力结果,我们将通过处理从 LS-PrePost 输出的笛卡尔应力分量来重建相同的环向应力结果。
导出笛卡尔应力分量
为了获得旋转应力张量所需的数据,必须从 LS-PrePost 导出所有六个分量。导出每个应力分量的过程将针对 X 分量进行说明,并且必须针对 Y、Z、XY、YZ 和 ZX 分量重复此过程:
- 像往常一样加载二进制 D3Plot 文件并将结果时间设置为结束状态。
- 在边缘图中绘制 X 应力。
- 使用下面显示的设置输出结果,例如,将文件命名为“xstress”。
- 点击“完成”并对其他 5 个压力分量重复此操作。
- 确保所有六个文件都在同一个目录和python脚本中。
输出文件格式
输出文件的格式为 LS-DYNA 关键字格式,这是一种固定宽度的文件格式。Python 脚本利用固定宽度的结构来解析文件的每个部分。
*ELEMENT_SHELL 部分
元素连接表位于文件的 *ELEMENT_SHELL 部分中,其中的一小部分如下所示:
列定义和宽度如下:
柱子 | 数据 | 宽度 |
1 | 元素 ID | 8 |
2 | 零件编号 | 8 |
3 | 节点 1 | 8 |
4 | 节点 2 | 8 |
5 | 节点 3 | 8 |
6 | 节点 4 | 8 |
*NODE 部分
类似地,节点坐标在 *NODE 部分中给出,其中的摘录如下所示:
列定义和宽度如下:
柱子 | 数据 | 宽度 |
1 | 节点 ID | 8 |
2 | X 坐标 | 16 |
3 | Y 坐标 | 16 |
4 | Z 坐标 | 16 |
$SHELL_ELEMENT_RESULTS 部分
$SHELL_ELEMENT_RESULTS 部分提供元素每个积分点的输出结果。在本例中,我们使用具有单个积分点的壳元素。本节的摘录如下所示:
列定义和宽度如下:
柱子 | 数据 | 宽度 |
1 | 元素 ID | 8 |
2 | 元素结果 | 16 |
$SHELL_ELEMENT_CENTROID 部分
$SHELL_ELEMENT_CENTROID 部分提供变形状态下每个元素的质心和体积。本节摘录如下:
列定义和宽度如下:
柱子 | 数据 | 宽度 |
1 | 元素 ID | 10 |
2 | X 坐标 | 16 |
3 | Y 坐标 | 16 |
4 | Z 坐标 | 16 |
5 | 体积 | 16 |
Python 算法
下面的伪代码解释了用于转换压力的算法:
- 读取六个应力文件中的每一个并解析各个部分以获得元素表、节点坐标、元素结果(非平均应力)和元素质心坐标(在变形配置中)。
- 将元素表与节点坐标和元素结果合并。
- 形成元素结果(应力)张量S。
- 根据右手定则,使用两个元素边缘的叉积计算每个元素质心处的法向单位向量。我们将其称为元素Z方向。
- 对于本例中使用的特定壳单元,两条边从节点 1 到 4 ( 1->4 ) 形成,从节点 1 到 2 ( 1->2 ) 形成。因此, 1->4 x 1->2提供向外的单元法线,然后进行归一化以使其成为单位向量。
- 由于我们使用的是柱坐标系,因此我们通过将全局 Z 轴与元素Z方向向量相交来形成元素X方向单位向量。
- 该元素X方向向量与元素法向量不正交,因此我们利用 Gram-Schmidt 正交化对其进行正交归一化。
- 有了元素X和Z单位向量,我们取Z x X来获得元素Y方向单位向量,从而完成我们的正交集。
- 使用X - 、Y - 和Z - 元素单位向量作为列,构成变换矩阵Q。
- 使用张量变换规则S loc = Q ' S Q旋转应力张量,其中 ()' 表示转置。
- 将结果写入输出 .csv 文件。
Python 计算环向应力
此处显示了 Python 脚本结果的摘录,其中左图显示笛卡尔坐标中的元素应力;右图显示了相应的环向应力S11_loc ,它是由变换和变换矩阵Q的分量引起的:
从右图中我们可以看到,计算出的环向应力S11_loc与 Ansys Mechanical 的输出非常匹配。
结论
虽然可以轻松从 Workbench Ansys LS-DYNA 或 LS-PrePost 中获得环向应力(作为第一主应力),但本文中的步骤展示了如何通过将结果转换为笛卡尔坐标来实现张量结果的旋转以获得更一般的方向。上述过程也可以使用 PyAnsys 的工具在更大的自动化框架中使用。
进一步
- 修改 Python 脚本来查看其他方向的应力(或应变)或应用于您自己的模型来获得感兴趣的应力(或应变)结果。
- 修改代码以用于具有多个积分点的实体元素或壳元素。
- 使用此脚本和 PyAnsys 来自动化该过程。
可下载项目
Ansys 2024 R2 Workbench 存档,python 代码和结果
参考
1. 压力容器图像取自Stress and Strain - Cylindrical bar of cross-sectional area - Engineersfield
相关文章:

在 LS-DYNA 中将应力转换为用户定义的坐标系
介绍 通常,使用 LS-DYNA 或 Ansys Mechanical 等仿真工具解决工程问题需要将张量结果与解析解进行比较。一个这样的例子是加压圆柱体,其中圆周应力或环状应力是感兴趣的主要应力度量。例如,如果对具有复杂端部处理的几何结构进行此类仿真&am…...

【Spark】 groupByKey与reduceByKey的区别
groupByKey 操作:将相同键的所有值收集到一个集合中。实现:不会在map端进行局部聚合,而是直接将所有相同键的数据传输到reduce端进行聚合。缺点:由于没有本地聚合,groupByKey会导致大量的数据传输和shuffle,…...

数据库与数据库管理系统概述
title: 数据库与数据库管理系统概述 date: 2024/12/7 updated: 2024/12/7 author: cmdragon excerpt: 在信息化迅速发展的时代,数据已成为企业和组织的重要资产。数据库与数据库管理系统(DBMS)是高效存储、管理和利用数据的核心工具。本文首先定义了数据库的基本概念和特…...

(简单5步实现,免费且比GPT4.0更好用)部署本地AI大语言模型聊天系统:Chatbox AI + 马斯克grok2.0大模型
摘要: 本文将指导您如何部署一个本地AI大语言模型聊天系统,使用Chatbox AI客户端应用和grok-beta大模型,以实现高效、智能的聊天体验。 引言: 由马斯克X-AI发布的Grok 2大模型以其卓越的性能超越了GPT4.0。Grok模型支持超长文本…...

滚珠螺杆导程的定义与重要性
滚珠螺杆导程是指螺杆每旋转一圈时,螺母(或与之配合的移动部件)沿螺杆轴线方向移动的距离。这个参数在机械设计和制造中非常重要,因为它直接影响到传动系统的速度、精度和效率。 导程是滚珠螺杆的重要参数之一,它与切削…...

【特殊子序列 DP】力扣509. 斐波那契数
斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) 0,F(1) 1 F(n) F(n - 1) F(n - 2),其中 n > 1 给定 n &…...

linux 架构详解
Linux 是一种开源的操作系统内核,最初由 Linus Torvalds 于 1991 年创建。它是一个基于 Unix 的操作系统内核,用于构建完整的操作系统。Linux 架构是指 Linux 操作系统的内部结构和组成组件的工作方式。 整体架构 Linux系统通常被看作是一个层次化的结…...

Spring Data Elasticsearch
简介说明 spring-data-elasticsearch是比较好用的一个elasticsearch客户端,本文介绍如何使用它来操作ES。本文使用spring-boot-starter-data-elasticsearch,它内部会引入spring-data-elasticsearch。 Spring Data ElasticSearch有下边这几种方法操作El…...

OpenGL编译用户着色器shader
shader相信很多朋友们都听说过,shader就是运行再GPU上的程序。虽然是这么说,但是我们发现,很多IDE开发工具比如说visual studio 没有办法直接去运行shader代码。这是因为,许多编译器不会自动将shader文件编译成可执行的代码然后发…...

过期策略、内存淘汰机制
1.过期策略:请求时删除 定期删除 请求时删除:使用key之前,检查是否过期,属于一种被动的处理方式。 因此,过期时间到了不表示这个key真的被删除了 定期删除:Redis默认每隔100ms检查,有过期ke…...

Scala的正则表达式
package hfdobject Test35_3 {def main(args: Array[String]): Unit {println("a\tb")//定义一个规则 正则表达式//1. .表示除了换行之外的其他的任意单个字符//2. \d等于[0-9] 匹配一个数字//3. \D除了\d之外的其他的任意字符,表示非数字//4. \w等价于[…...

关于睡懒觉
我们经常听到一个词:睡懒觉。 我认为,睡懒觉这个词,是错误的。 人,是需要睡眠的,睡不够,就不会醒。睡够了,自然会醒,也不想继续睡。不信你试试,睡够了,你…...

【算法day10】栈与队列:拓展与应用
题目引用 逆波兰表达式求值滑动窗口最大值前k个高频元素 1.逆波兰表达式求值 给你一个字符串数组 tokens ,表示一个根据 逆波兰表示法 表示的算术表达式。 请你计算该表达式。返回一个表示表达式值的整数。 注意: 有效的算符为 ‘’、‘-’、‘*’ 和…...

爆肝Android JNI - 延展Android蓝牙JNI学习
零. 前言 由于Bluedroid的介绍文档有限,以及对Android的一些基本的知识需要了(Android 四大组件/AIDL/Framework/Binder机制/JNI/HIDL等),加上需要掌握的语言包括Java/C/C++等,加上网络上其实没有一个完整的介绍Bluedroid系列的文档,所以不管是蓝牙初学者还是蓝牙从业人员…...

总篇:Python3+Request+Pytest+Allure+Jenkins接口自动化框架设计思路
1、技术选型 Python3 Python 是一种广泛使用的高级编程语言,具有简洁、易读、易维护的特点。 Python 拥有丰富的第三方库,可以方便地进行接口测试的开发。 Request Request 是一个强大的 HTTP 库,用于发送 HTTP 请求和处理响应。 Request 支持多种 HTTP 方法,如 GET、P…...

Java的Map介绍以及常见方法和三种遍历方式
Java的Map介绍以及常见方法和三种遍历方式 1 Java 中的 Map 介绍 在 Java 中,Map 是一个接口,它提供了一种存储键值对(key-value pairs)的方式。每个键(key)都关联着一个值(value)…...

C/C++基础知识复习(39)
1) 什么是封装性?C中如何实现封装? 封装性(Encapsulation)是面向对象编程中的一个重要概念,它指的是将对象的状态(数据)和行为(方法)绑定在一起,并且通过访问…...

自建服务器,数据安全有保障
在远程桌面工具的选择上,向日葵和TeamViewer功能强大,但都存在收费昂贵、依赖第三方服务器、数据隐私难以完全掌控等问题。相比之下,RustDesk 凭借开源免费、自建服务的特性脱颖而出!用户可以在自己的服务器上部署RustDesk服务端&…...

CCF-GESP 编程能力认证 C++ 七级 2024年9月份判断题详细解析
链接:CCF-GESP 编程能力认证 C 七级 2024年9月份选择题详细解析-CSDN博客 目录 第 1 题 第 2 题 第 3 题 第 4 题 第 5 题 第 6 题 第 7 题 第 8 题 第 9 题 第 10 题 第 1 题 表达式 a << 1 的结果为 a(错误) 【a是字符常…...

使用Vue3+Echarts实现加载中国地图,点击省份地图下钻(完整教程)
一. 前言 在众多 ECharts 图表类型中,开发者始终绕不开的有各种各样的地图开发,关于地图开发,可能比其他图表相对繁琐一些,其实说简单也简单,说复杂也复杂,其中不乏有层级地图、3D 地图等,感觉…...

NUMA-非统一内存访问架构
NUMA(Non-Uniform Memory Access) 是一种计算机内存架构,主要用于多处理器系统。NUMA架构中的每个处理器都连接到自己的本地内存,并且可以访问其他处理器的内存,但访问其他处理器的内存速度较慢。 内核通过调度优化进…...

初识交换机和路由器
目录 初识交换机和路由器交换机路由器主要区别工作流程如果是交换机:如果是路由器 初识交换机和路由器 左为路由器,右为交换机 交换机 交换机的前身是集线器,集线器是物理层的设备,有很多接口,当一台计算机A想发消息…...

SQL面试题——滴滴SQL面试题 取出累计值与1000差值最小的记录
滴滴SQL面试题 取出累计值与1000差值最小的记录 今天的题目来自滴滴出行 已知有表cost_detail包含id和money两列,id为自增,请累加计算money值,并求出累加值与1000差值最小的记录。 +-----+--------+ | id | money | +-----+--------+ | 1 | 200 | | 2 | 300 …...

openEuler 22.03 使用cephadm安装部署ceph集群
目录 目的步骤规格步骤ceph部署前准备工作安装部署ceph集群ceph集群添加node与osdceph集群一些操作组件服务操作集群进程操作 目的 使用ceph官网的cephadm无法正常安装,会报错ERROR: Distro openeuler version 22.03 not supported 在openEuler上实现以cephadm安装部…...

C++哈希(一)
1.底层结构 顺序结构以及平衡中,元素关键码与其存储位置之间没有相对应的关系,因此在查找一个元素时,要经过关键码的多次比较。顺序查找的时间复杂度为O(N)。 理想的搜索方法:可以不经过比较,依次直接从表中直接搜索…...

阿拉丁论文助手:一键点亮学术之路
在学术研究的海洋中,每一位学者都渴望拥有一盏能够照亮前行道路的神灯。阿拉丁论文助手,正是这样一盏神奇的灯,它以其先进的人工智能技术和丰富的学术资源,为学者们的学术写作提供了全方位的支持。 一、阿拉丁论文助手简介 阿拉丁…...

视频码率到底是什么?详细说明
视频码率(Video Bitrate)是指在单位时间内(通常是每秒)传输或处理的视频数据量,用比特(bit)表示。它通常用来衡量视频文件的压缩程度和质量,码率越高,视频质量越好&#…...

嵌入式学习(17)-stm32F407串口使用注意事项
一、概述 配置串口时串口的接收一直不好使,对比例程发现了问题: 在网上也找了一些资料供参考“STM32F4的串口RX引脚不能被设置为输入是因为串口的接收(RX)功能是由硬件电路实现的,无法通过软件配置来控制。串口接收功…...

汽车48V电气系统
汽车48V电气系统 汽车48V电气系统汽车48V电气系统设计汽车48V电气系统测试汽车48V系统是48V供电和12V供电共存的么?48V供电系统是如何与12V供电系统共存的?48V电气系统测试的难点有哪些?在汽车48V电气系统通信测试中,如何向12V的控制器和48V的控制器供电?汽车48V电气系统通…...

【人工智能基础05】决策树模型习题
文章目录 1. 归一化对决策树的影响2. 选择决策树模型3. 决策树计算4. 基尼系数的优势5. 在叶子上使用线性模型的优缺点 1. 归一化对决策树的影响 题目:对于一些机器学习模型(例如,神经网络),对特征进行归一化(normaliz…...