一直有同学私信问:工业仿真软件求解器开发到底需要掌握哪些具体的知识和技能
不多说,直接拿国内某大厂研发招聘启事说明吧:
岗位要求:
1.计算数学、计算机、物理等相关专业本科及以上学历;
2.至少在数值计算、并行编程、高性能计算、工业仿真的一个或多个领域上有深厚的积累;
3.编程能力强,具备良好的数据结构和算法知识,至少精通一门编程语言(C、C++、Fortran或Python);
4.优选条件:
(1)在数值计算算法的设计和实现上有深厚的积累。熟悉数值计算的基本算法,包括非线性求解算法如牛顿迭代,线性求解算法如Krylov子空间迭代,预处理加速算法,矩阵分解等算法, (2)熟悉数值仿真的基本算法,如有限元法、有限体积方法、网格法等,在电磁仿真、流体力学仿真、结构力学仿真、热力学仿真或多物理场仿真等CAE场景有一定的开发和实践经验, (3)有使用高性能计算机实现并行编程的经验。熟练掌握一下工具中的至少一个:MPI、OpenACC、CUDA、
OpenCL、pThread
(4)熟练使用BLAS、FFT、LAPACK、SPARSE、PETSc等数学库
另外参考之前发的几篇文章:
后续有空还将继续围绕超大模型的MOM, FDTD, CFD等领域的求解算法介绍相关求解器的研发