有人知道不附带大量附加软件的Nédélec 元素的实现吗?
是否有用 Python、Matlab 或 Octave 等语言编写的小型库?我所知道的唯一实现是大型 FEM 库的一部分,这些库太难学习,仅用于与我自己的实现进行比较。在文献中,几乎没有关于这些元素在实现时的外观,更不用说示例代码了。
有人知道不附带大量附加软件的Nédélec 元素的实现吗?
是否有用 Python、Matlab 或 Octave 等语言编写的小型库?我所知道的唯一实现是大型 FEM 库的一部分,这些库太难学习,仅用于与我自己的实现进行比较。在文献中,几乎没有关于这些元素在实现时的外观,更不用说示例代码了。
Long Chen建立了一个非常紧凑的库,名为FEM,它完整实现了第一类和第二类 Nédélec 元素,直到二次阶,包括非常易读的几何和自由度数据结构,刚度矩阵组装(实现类似于Carstensen 论文中显示的想法),自适应网格细化和粗化程序,也是基于Hiptmair 的 Maxwell 论文多重网格的多重网格求解器,以及 HX 预处理技术。
对于更高阶的 Nédélec 元素,用于-FEM,我建议你参考 Pavel Solin 写的书:Higher-Order Finite Element methods,在第 2 章中,它使用边缘向量和面法线向量明确表示了高阶向量元素,而不仅仅是为了, 也为,而递归定义的形状函数非常巧妙地落入了龙尘的数据结构和组装子程序中。
它不是一个最小的完整有限元库,但FIAT将 Nedelec 空间(和许多其他空间)制成表格,DOLFIN有简单的测试示例。新的FEniCS Book很好地解释了设计和实现。不幸的是,有一个有点不透明的“表单编译器”,所以要完全理解这个过程的每一步需要付出更多的努力。另一方面,表单编译器的输出执行一项不难理解的任务。