我是计算科学和编程的初学者。我正在研究非线性固体力学分析并使用 C++ 进行编码。我一直在探索各种有限元开源程序,并看到了一些不错的作品,例如 Deal.ii、FEniCS、OOFEM、libmesh。但作为 C++ 编程和有限元的初学者,这些程序的文档超出了我的理解和困惑。我希望看到一些简单的面向对象的 C++ 代码来解决有限元问题。我的目标不是研究有限元分析,而是了解它背后的代数在 C++ 面向对象框架中的实现。
关于我的工作,我很清楚我脑海中的程序和概念。我在 MATLAB 中做了一个原型。由于 MATLAB 程序需要太多时间才能得到结果,考虑到以后工作的方便性,我决定改用 C++。但是 C++ 中的各种数据结构让我很难为节点、元素、约束和负载选择合适的存储和结构。在 MATLAB 中,我从电子表格导入准备好的数据(节点、元素连接、载荷和边界约束),并在内置函数中用于计算。在 C++ 实现中,我正在考虑使用文本文件(如在 Abaqus/Calculix 中)进行输入。我该如何实施?
我正在寻找一个注释良好的小型有限元程序源代码,用于解决平面应力问题,就像一些大学用于教学的那种程序。我阅读了 SD Rajan 的书,C++ 中的数值方法,并获得了一些关于 C++ 数据结构的见解,但我仍然需要阅读一些源代码来开发我自己的程序。在我研究的后期阶段,我可以利用现有的有限元库,如 Deal.ii 和 FEniCS。