物理的终点是数学,数学的终点是神学。同样电磁学的终点是计算电磁学,我们做射频仿真所用到的软件,都出自于计算电磁学之手。
大学学计算电磁学是一种什么体验呢?看看这一届的网友怎么说。
作者:李xx
来源:知乎
知乎上随便一搜又搜到了这个问题,回答还是那么少,不过也正常。一年前的现在我也是对自己以后的发展没有什么想法,但写了一年多的代码,也搞出了一些东西,我觉得还是有些东西可以讲一下的。
我是15年考研考进南京某985某国家重点实验室的,初试复试都还可以。初试结束后我一共发过两封邮件,表示想做CEM方向(当时只知道要写代码并且跟麦克斯韦方程组关系很大,恰巧这两样我都喜欢)。第一封给一个大老板,大佬过了十几天给我回信了,说他名额已满,建议赶快找其他老师。于是我又发了第二封邮件给现在的导师(我一直觉得同时给多个导师发邮件就像同时追多个女生,非常不厚道。另外我的初试成绩还是让我比较有底气的。),他说做CEM要写代码,很苦,我愿意去就去吧,我当然是答应了,虽然当时心里也有点纠结(就这么定下来了?)。复试结束我很顺利地成为了现在老板的学生。
研一上老板没给什么安排,说好好上课就行了,所以CEM那块我几乎没碰。等到研一下老板给了几篇文章和几本PDF的书让我精读,我要做的东西跟那些资料有关系。两三个月下来磕磕碰碰,感觉还是很抽象,是不是应该看下代码。当时听师兄说老板会给最基本的代码,到时候在上面修改扩展就可以。然后我就去问老板要代码了,结果老板说,你自己先写写看。
卧槽,要我自己写矩量法?我当时连矩量法是什么还没完全搞懂,C++水平也停留在大一做的图书信息管理系统(一千行,有很多很多重复的代码)。但是我觉得我可以写出来。花了两个月时间,终于写出了EFIE的矩量法,patran网格数据转化,高斯积分,奇异性处理,求解器等等都是自己写的(也向老板和师兄请教了很多问题),又花了大半个月时间去调算RCS代码的bug。当时的成就感简直无法用语言形容。再后来我又把MFIE给补上了,OpenMP也开始慢慢用起来,写程序的技巧也积累得越来越多。自己写的代码,修改扩充起来特别方便。
再后来我就开始写快速算法了,先是完成了老板构想的一个快速算法,然后把ACA和MLFMA也都写了一遍,现在正在着手把MLFMA嵌入那个新的快速算法。硕士生愿意自己去实现一下MLFMA应该也是不多的吧。
随着代码行数的增加,我意识到我应该去重构下代码,并且借重构的机会尽量多使用C++的高级特性。现在的代码不算注释已经有15000行左右了(代码的复用率比较高,如果用复制粘贴大法搞个四五万行没问题),整个工程的框架我也觉得比较合理,抽象继承,模板,虚函数也都用在了该用的地方,该private都是private,能加const都加const,C++ 11的新特性我也用了一些。我是上个月才第一次看C++ Primer,之前都是有问题就百度。花了四五天过完Primer,里面涉及到的内容除了STL,其他六七成都碰过,那种感觉就像去看一篇介绍你方言音系的论文,十分流畅。
要说我做CEM做出了什么新名堂,其实也没有,那个新快速算法大部分的思想也是别人的。但是现在我至少已经入了矩量法的门,给我个新东西让我去做我也相信自己能做出来,让我去学FEM,FDTD我也不会害怕。最重要的是,所有的代码都是我自己写的,而且是用号称最难学的C++写出来的。现在的小手指也比以前灵活了,有没有灯光对我打字一点影响都没有(想当一个好码农,请先用回标准指法。coding时看键盘是非常非常非常影响思路的)。以后我应该不会读博,也不太可能从事CEM相关的工作,但是这一年多写程序给我的锻炼是谁也拿不走的财富。
最后总结下,如果你一不当心读了个CEM的硕士,并且对写程序不排斥,那就尽量多写点代码吧。写CEM算法不但锻炼你的coding能力,还锻炼你的严谨性,不管你以后从事什么工作,这都是有意义的经历。如果你对CEM爱得深沉并且家庭条件允许你这几年不赚钱,那就去读个博吧。我虽然很喜欢CEM和coding,但家里可等不了我博士熬出头了,今年秋招希望找个好工作吧。
欢迎做MoM的同行一起交流。
作者:一边学术一边艺术
来源:知乎
目前EDA国家很需要,企业也会陆续搞起来(华为最近就在招人),我觉得就业应该比以前好。此外,研究所对CEM和多物理仿真的需求也比较大。
从学术角度,先学好电磁理论(没有强大的数学物理基础,CEM基本学不好),学透一种算法(IE, FDTD, FEM中的某一个),把程序写好、写清楚、写高效,多向前辈请教。然后考虑研究下前沿的CEM问题及多物理问题,做些商业软件没有的solver或算起来不准或很慢的应用。否则,你的Solver有啥价值呢?当然能提出新的算法,速度或内存,有1个量级以上的的改善也是很好的,但不容易。最后,开源是趋势。看看CPC期刊,热门领域的开源软件,2年引用破100的实在是太多了。
CEM这一行关键是热爱,要有激情,对建模过程的无比享受,对代码的灵感与敏锐要有,才能做得好。要不断学习,我的导师 Weng Cho Chew 教授快退休的年纪,还一直学量子力学、量子光学知识,并将CEM用到其中,开辟计算量子电磁这个新领域。他告诉我一句话:要在年轻时候尽量多的学习,因为老了就学的慢。就像下棋,一开始很精彩,后面就是残局。
与诸位共勉!
作者:匿名用户
来源:知乎
1、关于仿真软件。目前仿真软件的功能已经很强大,但在一个问题里大多只能使用单个求解器,很少有软件能做好两种算法的hybrid(据我有限的了解,HFSS15里有FEBI,但16里又没了;FEKO7.0里也有FEBI,这些都是频域的)。在实际的电磁仿真中,人们还是希望能够将多个求解器融合起来。另外,即使像CST这样功能强大的软件,对多核计算的支持也比较有限(96个核),要使用更多的核就要花数百万的钱升级。只要多与做应用的人交流,总能发现可以改进的地方。
2、关于学业规划。CEM虽然只是电磁场与波二级学科里面的一个小分支,但里面涉及的方法范围很广,知识体系完备、庞杂,在实际工作中说不定就要用到哪部分的内容(外行是默认搞CEM的对频域、时域、高频的算法都懂,熟悉有损介质格林函数、PML等)。所以为了日后事业发展,有必要把各种算法的基础打得扎实一些,横向拓宽知识面。对于自己研究的具体纵向课题,则需要及时跟导师沟通,跟进导师的想法。做学生的最容易困在公式的形式、coding的细节里,看不清要解决的问题和最终的目标,很容易自己把自己逼疯。
3、关于职业规划。这个还没相应的经验,但感觉电磁兼容是个很不错的领域,适合有算法背景+工程经验的同仁尝试。
原文始发于微信公众号(射频学堂)