首页/文章/ 详情

基于Mathematica的等参母单元形函数及其偏导数的推导

1年前浏览796

本期推文木木将带着大家用强大的符号计算软件Mathematica简单推一推有限元中的基本公式。

为什么用Mathematica推导?

为什么会有这种想法呢?木木最近在做UEL子程序开发的时候发现网上的子程序中,很多在求解母单元形函数偏导时直接把导数形式写上去,没有对其进行推导,当然,书中已然有很多等参元形函数及其偏导的形式,但是只限于经典的一些等参单元,比如说平面四节点、八节点、六面体八节点等一些常见的单元,那如果我们以后想开发自己的单元,节点形式在书中找不到,有时借助文献中的高阶单元,相信大多数情况下,文献中给出的高阶单元形函数是缩写指标形式,偏导更是需要自己推导,这时候就感受到推导公式的重要性了,以汪礼顺老先生在《工程力学》中发表的关于多结点等参单元形函数确定方法为例

 

多结点等参单元形态函数的确定——汪礼顺

如下图所示,为六面体32节点等参单元


形函数的形式是这样的:

在编写相应的UEL子程序的时候需要写入形函数的偏导形式,遇到这种情况是不是就无从下手了?手推的话,错误率高,效率低,在当今计算机发展如此成熟的时代当然要借助Computer的力量来推导啦,我们工科生平时遇到的公式相对于数学、物理专业还算比较简单,对软件的操作要求不高,会一些平常的操作,即可大大减小我们的理论推导工作量。

为此木木先抛砖引玉,利用当今符号计算强大的软件——Mathematica平面八节点(Q8)单元以及六面体八节点(C3D8)单元的形函数进行展开、偏导数形式进行推导。

平面八节点(Q8)单元

可以先把该单元Plot一下,更加的直观。

Clear["Global`*"]
data = {{-1, -1}, {0, -1}, {1, -1}, {1, 0}, {1, 1}, {0, 1}, {-1,
   1}, {-1, 0}, {-1, -0.99}};
Show[ListPlot[
 data -> {"节点1", "节点5", "节点2", "节点6", "节点3", "节点7", "节点4", "节点8",
   "节点1"}, PlotStyle -> {Red}],
ListLinePlot[data], AxesStyle -> Arrowheads[.02],
AxesLabel -> {"s", "t"}
]

形函数推导

接下来就进入正题了

由于代码片不支持上下标形式,所以会出现排版混乱的情况,木木就以截图的形式展现给大家。

输出结果:


大功告成,形函数展开形式可与上图对比,只与偏导形式,可以自行推导进行验证。

六面体(C3D8)单元

形函数推导


结果如下


来源:易木木响叮当
理论Mathematica
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-06-01
最近编辑:1年前
易木木响叮当
硕士 有限元爱好者
获赞 212粉丝 242文章 340课程 2
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈