有限元
文章平均质量分 74
ybdjq
正在学习有限元C++编程,欢迎共同学习讨论
展开
-
有限元非齐次边界条件的刚度方程的化简,用C++实现
刚度方程:[F]=[K][D],其中,[F]为力向量,[K]为刚度矩阵,[D]为位移向量。本文讨论的内容为[D]向量中有些元素已知的情况。1.1 适用情况部分位移已知,则位移已知的那些方程就是非齐次边界条件的方程。1.2 原理在有限元中有一个原理:如果某个节点在给定方向的位移已知,则在相同节点相同方向的力F并不是已知的。该力可以在求解未知节点位移后确定。 也就是说,在总刚方程[...原创 2018-08-31 13:00:19 · 967 阅读 · 0 评论 -
有限元刚度矩阵的一维变带宽存储用C++实现(三)
在有限元刚度矩阵的一维变带宽存储用C++实现(二)中,我们已经把总体刚度矩阵[K]中下三角部分的带内元素顺利存入pGK数组中,现在我们来讨论如何从pGK数组中取出[K]内的任意元素。从存储了总刚矩阵[K]中的带内元素的一维数组pGK中取出总刚矩阵[K]的元素,主要是建立总刚矩阵[K]中第i行第j列的元素与pGK[]数组中元素的对应关系。根据[K]为对称矩阵的前提,就可以根据pGK[]中的总刚矩...原创 2018-09-23 21:32:54 · 2406 阅读 · 0 评论 -
有限元模型中非节点外力的处理用C++实现
有限元建模时,在网格划分过程中会尽量在外力和外部约束作用处设置节点。因为有限元求解问题求解的刚度方程F=KD中的位移向量D和力向量F指的都是节点位移和节点力。但是,有时候模型中的外力作用位置处确实不好添加节点,此时就需要采用把有限元模型中的非节点力转化为节点力的技术,即“等效节点力”法。消去模型中的非节点力,之后才能求解刚度方程F=KD。(1)等效节点力的原理现有一个分布外荷载作用在杆件单...原创 2018-09-24 17:19:08 · 1490 阅读 · 0 评论 -
有限元一维变带宽存储的刚度方程的LDLT求解用C++实现(一)
在有限元程序中,刚度方程[K]建立完毕,节点力向量F经过了非齐次边界条件处理、等效节点力处理后,都搞成了已知量。此时,就可以解F=KD方程组,来求节点位移向量D了。求解F=KD方程组的方法有很多,主要可以分为精确解法和迭代解法两种。顾名思义,精确解法就是直接解出D向量的精确值。迭代法则用于复杂的方程组,在精确解难以求出或求解成本太高时,通过一次次迭代近似求解,逼近精确解,当达到可接受的精度时,...原创 2018-09-26 11:48:24 · 1997 阅读 · 4 评论 -
平面杆系结构有限元分析C++程序设计思路
这是我根据网上的一些教程和手头教材总结的一个平面杆系有限元C++程序的框架,其中各部分模块的实现在我前面几篇文章中已经讨论过了,此处仅列出整个程序的总体思路。欢迎各位同学批评指正!1 适用范围的确定不同的有限元单元的模型对应着不同的刚度矩阵,不同的刚度矩阵会组装出不同的刚度方程,故程序能够组装出怎样的刚度方程,就决定了程序的适用范围。本程序的适用范围为平面框架结构的有限元计算,包括平面桁架...原创 2018-09-27 11:15:10 · 3262 阅读 · 0 评论 -
有限元刚度矩阵的一维变带宽存储用C++实现(二)
我们接着上一篇有限元刚度矩阵的一维变带宽存储用C++实现(一)介绍。上一篇中,我们得到了辅助数组pDiag中存储的是总体刚度矩阵[K]每行的半带宽。经过上一篇中节点自由度重编号,总刚矩阵[K]形式为: 此时,所有的非零元素都集中在带内。一维变带宽存储的思路为:将总刚度矩阵[K]的下三角部分的每一行,从第一个带内元素开始按行将元素排成一序列,存...原创 2018-09-22 14:56:09 · 1984 阅读 · 0 评论