再论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。后续使用再更新。    

0 0
原创粉丝点击