python有限元网格划分_《有限元分析基础教程》(曾攀)笔记一-二维杆单元有限元程序(基于Python)...

这篇博客介绍了如何使用Python重构《有限元分析基础教程》中的二维杆单元有限元程序,采用面向对象的方法,创建了一个Bar2D类来表示杆单元。博主对比了原书中MATLAB代码的繁琐,展示了Python代码的简洁性和清晰思路。程序包括单元刚度矩阵的计算、总刚度矩阵的集成、节点位移和荷载的求解等关键步骤。博客结尾,博主回忆了学习有限元方法的经历。
摘要由CSDN通过智能技术生成

曾攀老师的《有限元分析基础教程》第三章有二维杆单元的推导,并结合一个例题进行了解析解和基于Matlab的程序求解。但是我感觉书中的MATLAB代码有点罗嗦,而且一些实现方法也比较麻烦,比如已经知道了杆单元的起点和终点坐标,仍然需要另外给出单元局部坐标与整体坐标的夹角,这完全没必要。于是我就用Python重构了这段程序,当然并不是把书中的MATLAB代码翻译成python(事实上完全可以这么干,而且很快!)。比如我使用了面向对象的思想,把杆单元写成了一个类,这样思路比较清晰。

#! /usr/bin/python#-*- coding: utf-8 -*-

importmathimportnumpy as np

sqrt, cos, sin, pi=math.sqrt, math.cos, math.sin, math.pi"前处理"nodeNumber= 4KK= np.zeros((2*nodeNumber, 2*nodeNumber))"""边界条件,U表示节点的位移向量,如果某个自由度的位移未知,则该处填写‘u_Unknown’,

F表示节点的荷载向量,如果某个自由度的荷载未知,则该处填写‘f_Unknown’"""U= np.array([0, 0, 'u_Unknown', 0, 'u_Unknown', 'u_Unknown', 0, 0], dtype=object)

F= np.array(['f_Unknown', 'f_Unknown', 2e4, 'f_Unknown', 0, -2.5e4, 'f_Unknown', 'f_Unknown

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值