首页/文章/ 详情

FEM之在求解器中使用设计模式(7)---属性模式

2年前浏览2703

属性模式是笔者提出的一种设计模式,本质上是针对求解器数据的特点,对已有设计模式的融会贯通和应用。

问题的提出:

求解器处理的单元数据有如下特点:

1.单元数据量大,一般都在百万千万级别以上;

2.单元几何数据格式固定,含有各种属性数据;

3.单元的属性种类多,且较多重复数据;

4. 一个模型中单元类型数有限;

5. 不会有海量的属性数据;

属性模式需要使用以下基本设计模式:

  1. 享元(flyweight)模式;

  2. 工厂模式;

  3. Composite模式;

  4. 单例模式

扩展可以加入:

  1. 桥接模式;2. 观察者模式

UML图如下:

image.png

说明:

  1. 单元类简化为只包含单元索引属性索引节点索引编号

  2. 属性类定义为使用composite模式的类,即一个属性中可以包含多个属性,定义了每种属性的具体数据;

  3. PropertyManager为使用单件模式的属性管理类,使用该类可以取得单元索引的属性类;

  4. PropertyFlyweightFactory为使用享元模式的工厂类,该类使用工厂模式根据有限元数据创建所有属性类;且每种属性类唯一对应一个索引。

改进:

1.该模式中当数据改变时,可以加入Observor模式,更新每种属性数据;

2.属性可以根据实际情况利用Bridge模式分成固定的几大类型,比如几何,网格,荷载类型等等;

属性模式的优点:

1. 将单元内部的属性转移到外部,简化单元内部数据结构,从设计上避免大量数据的拷贝;

2. 通过外部属性的管理,将属性和单元分离,使得属性和单元在设计上可以独立变化;

3. 通常情况下,一个模型的单元类型的属性都是相同的,所以属性模式能很好的满足求解器的数据要求,尤其是非通用仿真求解器。

属性模式针对使用有限元方法的求解器数据结构管理,具有普遍适用性。

属性模式的缺点:

1. 需要管理复杂的属性类,当属性类别越来越多时,增加管理复杂度;

2. 数据量大的时候,属性数据操作会有一些性能损失,当然跟求解器计算时间相比,微不足道。

科普
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2022-06-14
最近编辑:2年前
多物理场仿真技术
www.cae-sim.com
获赞 126粉丝 322文章 220课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈