首页/文章/ 详情

面向对象的有限元编程|综述

8月前浏览4900

一个重要的概念:类的聚合

一个类可以包含诸多成员,而其中某些成员又可以是其他类的的对象。当一个类Person 包含一个成员name时,Person中的每个对象都将拥有一个string类的对象,这就是Has-a关系。每个person的实例都有(has)sring类的一个实例。术语聚合(Aggregation)通常用来描述一个类的对象拥有其它类的对象的情况。

class person
{

    std::string  name;
    int          age;
};
//...

面向对象有限元编程综述

在面向对象的有限元分析领域,具体的有限元模型可看作一个对象,叫作整体结构对象。整体结构对象又是一个聚合对象,它包含了多种其它类的对象,例如节点对象,单元对象,材料对象,荷载对象等等。如图1所示,将这些对象通过算法又形成整体结构对象。

  • 单元类

单元对象是构成整个结构对象的基本要素,如杆单元,梁单元,板单元,壳单元等等。虽然单元形状和特性各不相同,但基本特征和功能是相同的。比如都具有一定的几何形状,通过节点与其它单元连接,包含材料信息,在结构分析中各单元皆以单元刚度矩阵的形式组装成整体结构。

  • 节点类

节点是连接各单元的关节,单元按照节点分布组合成整体结构对象。节点类的属性主要有:节点坐标,节点自由度,节点力,节点约束等等。

  • 约束类

约束类的节点类是Has-a关系,也就是说,节点对象的一个成员 是约束类的成员。以一个桁架节点约束为例

class TrussRestrain 
{

 protected:
 int  RX;
 int  RY;
//...
};


class TrussNode 
{

protected:
   size_t id;
   double coordX, coordY;
   TrussRestrain  nodeRestrain;
  
//...
};

  • 材料类

材料类用于对材料特性的描述,如弹性模量,密度,线膨胀系数等等。对于线弹性静力分析,只需要弹性模量就可以了。对于非线性分析,还需要材料的本构关系。

  • 数值计算类

数值计算类用于求解以及数据结构的组织,比如刚度矩阵,位移向量,节点力向量等等。

  • 整体结构类

整体结构对象代表了整个结构,是一个聚合对象。整体结构类通过算法管理成员对象之间的关系,进行结构的计算分析。整体结构类只有一个实例,即结构对象。

★★★ 往期相关 ★★★

类和对象的哲学思考


来源:数值分析与有限元编程
非线性材料
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-04-02
最近编辑:8月前
太白金星
本科 慢慢来
获赞 5粉丝 15文章 327课程 0
点赞
收藏
作者推荐

数值微分|有限差分法的误差分析

在所有有限差分表达式中,系数之和为零。对舍入误差的影响可能很大。 很小时,的值几乎相等。当它们通过系数相乘再相加,可能会丢失几个有效数字。 以(1)为例,分子可能会为0。但是我们不能使h太大,因为这样截断错误将变得过大。为了解决这个矛盾,我们可以采取以下措施:1 使用双精度浮点数运算2 采用精确度至少为 的有限差分公式例如,用中心差分法计算 在 处的二阶导数。取不同的 值以及精度为 和 ,手算结果见下表精确值为 。精度为 时, 的最佳值为0.08。由于截断和舍入错误的共同影响,三位有效数字丢失。 大于最佳值,主要错误是由截断引起的。 小于最佳值,舍入误差变得明显。精度为 时,结果精确到四位有效数字。这是因为额外的精度降低了舍入误差。最佳 约为0.02。Python的双精度计算import mathh = 0.02x = 1.0 ddf = ( math.exp(-(x+h)) - 2*math.exp(-(x)) + math.exp(-(x-h)) ) / (h*h)print(ddf) 输出结果:h的取值对双精度计算影响不大。★★★★往期相关★★★★数值微分|向前差分和向后差分数值微分|中心差分法(Central Finite Difference Approximations)数值微分|多项式的导数计算C++版数值微分|多项式的导数计算通过案例学Python之定义函数类数值积分|第二类反常积分数值积分|第一类反常积分数值积分|中点法则(Midpoint Rule)数值积分|龙贝格公式数值积分|自适应辛普森积分公式数值积分|自适应梯形积分数值积分|牛顿-柯特斯公式数值积分|高斯积分数值积分|泰勒(Taylor)公式求积分数值积分| 辛普森公式Python实现辛普森公式来源:数值分析与有限元编程

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈