首页/文章/ 详情

为什么求解器开发需要强势使用设计模式

2年前浏览828

求解器是工业仿真软件的核心模块,没有之一。

求解器开发的特点是:

  1. 注重专业业务逻辑,存在大量的独立数值计算算法

  2. 数据量大,难以调试和维护,也容易造成性能瓶颈

  3. 和上层数据接口简单,通常只需输入数据以及配置文件;

  4. 底层经常调用第三方工具,容易造成数据依赖,比如线性方程组求解库

  5. 作为核心,对性能,精度,可靠性要求很高,也就是经常说的“快准稳”

  6. 业务层面功能扩展需求明确,比如支持新的边界条件和荷载类型,和第三方求解器耦合等

  7. 需要支持大规模并行计算

  8. 在使用过程中,需要经常被上层应用调用

  9. 需要支持多平台,Linux运行效率普遍高于windows

  10. OpenFOAM在层次化和模块化方面做得比较好,把求解器按类型特点直接做成了多个可执行程序,但是这种设计对于上层应用来讲也存在弊端,当多个求解器需要联合使用,或者不同求解器底层数据存在耦合以及需要加新内容时,就需要重新进行封装。


软件模式是将模式的一般概念应用于软件开发领域,即软件开发的总体指导思路或参照样板。软件模式并非仅限于设计模式,还包括 架构模式、分析模式和过程模式等,实际上,在软件生存期的每一 个阶段都存在着一些被认同的模式。

设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理的运用设计模式可以完美的解决很多问题,每种模式在现在中都有相应的原理来与之对应,每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,这也是它能被广泛应用的原因。

简单说:设计模式是在某些场景下,针对某类问题的某种通用的解决方案



从工业仿真软件整体设计角度看,求解器开发是天然需要封装,隔离,扩展,模块化和层次化的而设计模式能有效应对这种需求。在设计研发过程中有意识地使用设计模式,能显著提高研发效率,减少出问题的几率,从而改进软件质量。


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