再论libmesh,options on engineering simulation software design and develop (现代工程仿真软件设计开发的一个考虑)
来源:互联网 发布:linux svn ignore 编辑:程序博客网 时间:2024/06/05 08:06
libmesh fem library -- oo hpc
1 现代工程仿真软件的特点:
现代工程仿真软件都超复杂。从过程讲包括,隐式算法,并行实现,自适应方法,多物理场耦合等。从学科讲包括,物理学,工程学,cs, 应用数学等。
这每一方面,都已经存在优秀的解决方法(库),而借力这些库是现在软件设计/开发的最为高效的方法。当然,各领域teamworking 也是现代软件设计/开发成功的必要条件。
simulation driven engineering,很大一部分是基于网格的simulation。包括:读入几何文件,数据结构初始化,控制方程离散,离散方程数值解,写结果,误差估计,refine...
这个过程中,除了控制方程因具体问题而异,大部分都跟具体问题不直接有关,故整个simualtion software很适合设计成可复用的抽象类库。
2 libmesh 设计
libmesh初衷就是提供整合求解器算法,hpc实现,结果自适应所需的数据结构和算法。 简而言之,libmesh goal: mesh-based simulation of PDE。具体实现而言,就是提供将前述各个模块拼合的glue.
语言选择c++,重在其强大的抽象机制。libmesh的编程模型就是:定义抽象基类,然后继承类实现接口。比如,shape基类,有circle, rectangule继承类;代数方程算法基类,有petsc稀疏矩阵求解类等继承类;io基类,有vtkio, matlabio继承类等;geom_elem基类,分edge, face,cell子类;face子类又有三角形(tri),四边形(quad)继承类;cell子类又包括:四面体,六面体,八面体等继承类;finite_element基类,有hermite, lagrange等插值函数继承类;域分解基类,有CentroidP, LinearP, MetisP, ParmetisP等继承类;
3 limesh在固体力学,流体力学中的应用:
LIBMESH 总之是设计的比较好的fem library。后续使用再更新。
- 再论libmesh,options on engineering simulation software design and develop (现代工程仿真软件设计开发的一个考虑)
- Software Engineering and the Art of Design
- Confrences on Programming Languages and Software Engineering
- On Software Reverse Engineering
- Software Engineering 3: Domains, Requirements, and Software Design (Texts in Theoretical Computer Science. An EATCS Series)
- Useful References on Software Engineering
- J2EE and Beyond: Design, Develop, and Deploy World-Class Java Software
- Software Engineering and Computer Games
- Software Engineering: Theory and Practice
- (Software Engineering Overview)軟件工程基礎
- Software architecture, software engineering, and Renaissance Jazz
- 水体渲染与仿真(Water Rendering and Simulation)
- 四旋翼动力学和仿真翻译(Quadcopter Dynamics and Simulation)
- My 10 favorite links on Software architecture, scalability and design
- Software Modeling and Design
- Software design and testing
- 从Google Camera 的经验谈Software Engineering 之中Design 的重要性
- Object-Oriented and Classical Software Engineering
- Add Two Numbers
- Hibernate的List映射
- 访问网站时只是显示主页(index.jsp),没有请求连接数据库读取数据。
- Android Studio 1.0 苹果电脑安装配置
- 《大话设计模式》读后感
- 再论libmesh,options on engineering simulation software design and develop (现代工程仿真软件设计开发的一个考虑)
- leetcode做题总结,题目Anagrams 2012/03/19
- Excel Sheet Column Title
- 空间科学学报
- java基础2
- Longest Palindromic Substring
- HH生病了(hpu1136)
- 2048 Puzzle游戏攻略
- Edit Distance