四节点矩形单元

在二维稳态热传导基本方程的有限元求解(1)这篇文章中,我们仅仅给出了有限元单元方程的一种比较标准的推导步骤,并未涉及某种具体的单元。且在式(20)中,单元

上温度

的近似函数表示成节点温度的函数,但是对于具体的一个单元,该如何推导出用节点函数值表达的近似函数呢?接下来以四节点矩形单元为例,并利用Python的Sympy库进行说明。

四节点矩形单元以及节点布置如下图所示。

四节点矩形单元

该单元内的插值函数模式为:

对于现在的情况,单元内的函数值是坐标

的双线性函数,

~

为待定系数,称之为广义坐标。将4个节点坐标分别代入式(

)中可得到在相应节点的函数值,用矩阵表示为:

可利用Python的SymPy库来求解

~

,代码如下:

import sympy as sym

a, b = sym.symbols("a, b")

M = sym.Matrix([[1, -a, -b, a*b], [1, a, -b, -a*b],

[1, a, b, a*b], [1, -a, b, -a*b]])

T1, T2, T3, T4 = sym.symbols("T_1, T_2, T_3, T_4")

b = sym.Matrix([T1, T2, T3, T4])

a = M.LUsolve(b)

for i in range(0, len(a)):

a[i] = a[i].together()

x, y = sym.symbols("x, y")

T = a[0] + a[1]*x + a[2]*y + a[3]*x*y

T

执行上述代码后[^1],得到的结果为:

将式(

)用节点值表示,则可以得到:

其中

~

为形函数,分别为:

读者也可查阅文献[^2][^3]提供的用张量乘的方式推导上式,而不涉及繁琐的计算过程。式(

)也可以通过Python的SymPy库来求解,代码如下:

a, b = sym.symbols("a, b")

M = sym.Matrix([[1, -a, -b, a*b], [1, a, -b, -a*b],

[1, a, b, a*b], [1, -a, b, -a*b]])

T1, T2, T3, T4 = sym.symbols("T_1, T_2, T_3, T_4")

b = sym.Matrix([T1, T2, T3, T4])

a = M.LUsolve(b)

for i in range(0, len(a)):

a[i] = a[i].together()

x, y = sym.symbols("x, y")

T = a[0] + a[1]*x + a[2]*y + a[3]*x*y

T = T.expand()

T = T.collect([T1, T2, T3, T4])

T

执行上述代码后[^1],得到的结果为:

稍加整理式(

),便可得到式(

)。此外,式(

)也可以表示为:

有了式(

),就可以带入到式(

)中,得到单元矩阵

的表达式。为简便,这里假设热传导张量

的分量的矩阵表达为:

同样我们可以借助Sympy来计算

,代码如下:

import sympy as sym

a, b, x, y = sym.symbols("a, b, x, y")

B = sym.Matrix([[-(b-y)/(4*a*b), (b-y)/(4*a*b), (b+y)/(4*a*b), -(b+y)/(4*a*b)],

[-(a-x)/(4*a*b), -(a+x)/(4*a*b), (a+x)/(4*a*b), (a-x)/(4*a*b)]])

dx, dy = sym.symbols("d_x, d_y")

D = sym.Matrix([[dx, 0],

[ 0, dy]])

B_TDB = B.transpose()*D*B

K_e = sym.Matrix(4, 4, lambda m, n: 0)

for i in range(0, len(B_TDB)):

K_e[i] = sym.integrate(B_TDB[i], (x, -a, a), (y, -b, b))

K_e[i] = K_e[i].simplify()

K_e

执行上述代码后得到[^1]:

文献[^4]也同样求解可该单元矩阵的表达式(见下图),可与式

进行比较(注意

)。

单元矩阵的表达式

从式(

)可以看出,如果不借助符号计算系统,是很难通过手算得到单元矩阵的表达式。何况,四节点矩形单元不能适应复杂的几何形状。因此,在实际使用有限元中,更多的还是要利用数值积分和等参元这两种工具,这将在后续的文章中介绍。

[^1]: 这里是在Jupyter Notebook或JupyterLab中执行

[^2]: Jacob Fish, Ted Belytschko. A First Course in Finite Elements. 2007, P161-P163.

[^3]: Young W.Hwon, Hyochoong Bang. The Finite Element Method Using MATLAB(2nd) [M]. 2000, P90-P91.

[^4]: M.Asghar Bhatti. Fundamental Finite Element Analysis and Applications: with Mathematica and Matlab Computations[M]. 2005, P332.

python有限元传热求解_二维稳态热传导基本方程的有限元求解(2)相关推荐

  1. 二维稳态热传导基本方程的有限元方程

    二维稳态热传导基本方程的有限元方程 - 知乎 二维稳态热传导基本方程的有限元求解(2) - 知乎 关于学习拉格朗日矩形单元和serendipity四边形单元形函数的构造方法 - 知乎 CFD理论学习- ...

  2. c语言求解热传导方程,二维稳态导热问题的数值解法.docx

    核科学与技术学院 <传热学> 二维稳态导热问题的 数值解法作业 姓名:罗晓 学号: 2014151214 班级:任课教师:李磊,张智刚 哈尔滨工程大学 核科学与技术学院 2016 年 11 ...

  3. 【Comsol学习】二维稳态热传导问题

    问题分析 根据comsol例程,问题给出条件如下 稳态建模仿真 选择二维稳态研究,选择固体传热物理场,开始设定各类条件 几何条件 根据问题描述构建几何模型 物理条件 按照问题描述,为矩形设置其热导率等 ...

  4. 二维稳态热传导 代码实现_常用振动激励方式:稳态正弦 、瞬态和随机激振

    在测量机械设备或结构的振动力学参量或动态性能,如固有频率.阻尼.刚度.响应和模态等时,需要对被测对象施加一定的外力,让其作受迫振动或自由振动,以便获得相应的激励及其响应.激励方式通常可以分为稳态正弦激 ...

  5. 二维稳态热传导 代码实现_博世壁挂炉发生故障代码及处理办法

    博世bosch是来自德国的知名壁挂炉品牌,由于其出色的工艺技术,故障在同类产品中属于较低一类,国内业主普遍反映较好.那么,假如我们家里的博世燃气壁挂炉出现故障代码时,该如何解决呢?这里为大家就博世壁挂 ...

  6. comsol官方案例学习——2、二维稳态导热

    二维稳态热传导 模型定义 解析解 建模仿真 几何条件 边界条件 物理条件 划分网格 计算 分析比较 模型定义 设定了一个宽和高分别为 0.6 m 和 1.0 m 的矩形域.边界条件: • 左边界为绝缘 ...

  7. 二维稳态对流扩散问题,无源项,QUICK格式,四周边界定壁温的Python程序

    二维稳态对流扩散,QUICK格式 原理 模型 四面为定壁温

  8. MATLAB实现二维稳态导热

    MATLAB实现二维稳态导热 一.理论基础 二.代码实现 一.理论基础 步骤: Step.1 二维模型传热控制微分方程的确定,具体推导可以在任何一本传热学的书中找到. d 2 T d x 2 + d ...

  9. python实现归一化去噪_二维FFT的归一化处理

    首先,需要注意的是,这个问题与1D和2D fft之间的差异无关,而是与总功率和平均功率如何随阵列中元素的数量而变化有关.在 当您说9的因子来自a中的元素比b中的元素多9倍时,您说得非常正确.令人困惑的 ...

最新文章

  1. 70亿美金!英伟达欲竞购这家以色列芯片公司!
  2. Oracle中数据导出成CVS,EXCEL
  3. VirtraulBox中安装Ubuntu16.04
  4. oracle for函数,oracle分区表述的FOR语句(一)
  5. 一张图带你了解 Insider Dev Tour 2019中国技术大会
  6. oracle中exp/imp讲解
  7. jQuery源码解析(2)—— Callback、Deferred异步编程
  8. Navicat PatchNavicat
  9. python selenium爬虫代码示例_python3通过selenium爬虫获取到dj商品的实例代码
  10. G-SYNC技术是什么
  11. 多台云服务器中Redis的主从复制
  12. python黑网站_python
  13. 单电路板双W5500驱动代码,基于WIZnet官方驱动修改,STM32H743/H750
  14. 串口助手是怎么做出来的 :第一节,串口助手界面的实现及串口通信原理的介绍
  15. c语言关于多边形的所有算法,教你如何在C语言中进行点在多边形内算法
  16. Flutter使用系统相机和相册获取图片
  17. nginx代理邮件服务
  18. python Numpy模块汇总(字母排序) 备注:内容很多,用control/command(Mac系统)+ F可以在网页内关键词查找,希望你能找到想要的内容
  19. Android学习之——操作SIM卡联系人
  20. 如何推动区块链与物联网深度融合,赋能数字化转型?

热门文章

  1. 鸿蒙系统非手机用,【图片】华为鸿蒙系统的厉害之处在于 你可能非用不可 !【手机吧】_百度贴吧...
  2. 理解 Generator 的执行
  3. 第 14 章 结构和其他数据形式(names)
  4. Photoshop: 机关单位公章
  5. Exchange2007获取OWA邮箱容量的代码
  6. rust大油田分解机_辽河油田曙光采油厂:智慧党建建强战斗堡垒
  7. OpenGL ES与EGL的关系(二十一)
  8. Ubuntu18.04安装微信(可用)
  9. Ubuntu14.04开启wifi热点(亲测有效)
  10. odex vdex art区别