最近要利用机器学习求解一些偏微分方程,对于一些复杂的偏微分方程,需要一些精度比较高的参考解,导师推荐使用FreeFEM++软件求解PDEs。首次使用,特此记录一下,以备以后查阅。

参考链接:

Freefem++ 学习指南:Chap 1 https://zhuanlan.zhihu.com/p/420610473

Freefem++ 学习指南 Chap2 实例学习 https://zhuanlan.zhihu.com/p/420973975

作为偏微分方程求解器的有限元方法实现 https://zhuanlan.zhihu.com/p/69223148

1、FreeFEM++简介

FreeFEM是开源的有限元模拟系统,由法国利翁斯实验室、埃尔和玛丽居里大学共同开发,在世界范围内广泛使用。Freefem的特点:

  1. 通过变分形式描述问题
  2. 多变量多方程 耦合或解耦的可解性
  3. 分片描述边界
  4. 分片描述边界
  5. 自动生成网格
  6. 各向异性的网格适应
  7. 自动插值输出结果
  8. 多种有限元 多项式元、P1元、RT元
  9. 多种方程组求解方式
  10. 基于C++速度
  11. 在线绘图

2、FreeFEM++去何处下载?

下载地址:https://freefem.org/
在这里插入图片描述
点击Download,然后会跳转到 https://github.com/FreeFem/FreeFem-sources/releases
在这里插入图片描述
在这里插入图片描述

3、安装FreeFEM++

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
安装完成会出现如下图标
在这里插入图片描述

4、如何使用FreeFEM++

点击图标就可以运行 FreeFEM++,运行示例。
在这里插入图片描述
在这里插入图片描述

5、如何编写自己的FreeFEM++程序?

FreeFEM++没有提供编译界面,我们可以使用NotePad++编写自己的代码。
可以在Notepad++中加入与Freefem++相容的语法,使之高亮:
①在菜单“设置”中选择“格式语言设置”
②在“语言”列表中选择C++
③在“自定义扩展名”中输入"edp"
④在“样式”列表中选择“INSTRUCTION WORD”,在“自定义关键字”中加入下列关键字:
P0 P1 P2 P3 P4 P5 P1dc P2dc P3dc P4dc P5dc RT0 RT1 RT2 RT3 RT4
RT5 macro plot int1d int2d solve movemesh adaptmesh trunc checkmovemesh
on func buildmesh square Eigenvalue min max imag exec LinearCG NLCG
Newton BFGS LinearGMRES catch try intalledges jump average mean load
savemesh convect abs sin cos tan atan asin acos cotan sinh cosh tanh cotanh
atanh asinh acosh pow exp log log10 sqrt dx dy endl cout
⑤在“样式”列表中选择“TYPE WORD”,在“自定义关键字”中加入下列关键字:
mesh real fespace varf matrix problem string border complex ifstream ofstream
⑥点击“保存并关闭”,Notepad++就配置好了。

示例和结果

在这里插入图片描述
在这里插入图片描述

7 FreeFEM++ 中文手册和英文手册

地址: https://doc.freefem.org/introduction/index.html
在这里插入图片描述

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐