从今天开始到年末回家,要完成对EPOCH3D的小修改——增加输出我们在做MR时非常关心的一些物理量(比如:压力张量的非对角项等等)。
有XZ在2D上所做的工作作为模板,对3D的镜像修改应该不难。(再次多谢XZ!对你谢谢谢不完)
然而本着认真的态度,在完成这项工作的同时,需要同时做好以下几项工作:
- EPOCH Manual的通读并细读;
- 对改动代码所在源文件的注释添加(用好Doxygen工具);
- 熟练使用Git工具(由于EPOCH源码的特殊性,仅仅使用本地功能);
- 学习ZH老师的修改版本(HDF5文件格式);
- 学习Zeltron程序,并与EPOCH结果进行对比,做好Benchmark;
- 学习Zeltron3D中所使用的后处理工具(python);
。。。(以后的想到了再增加)
2015.12.18 Initialization
在L老师服务器上保存好代码之后:
- git init并做好简单的初始config工作。
- 配置git ignore文件,忽略掉并不需要的SDF、OBJ、BIN等文件夹
- 随后便遇到了问题,对git branch的使用不熟。下面转载了一则关于如何使用git branch功能的干货贴,讲解的十分到位。
【转载】git branch 使用详解 - 建立了分支v0.0.1,明天就开始着手阅读并修改代码吧!
期待ing
2015.12.19 -- 2015.12.20
- 开始v0.0.1
- 在L老师服务器上安装Doxygen,并配置好doxyfile。
- 阅读calc_df.F90源代码,经XZ讲解其逻辑之后,代码异常易懂!
但其中不乏一些并不常见的语句和fortran函数,逐一整理在另外的文档中。
一个例子:DO WHILE(ASSOCIATED(current))
- 干了不少花里胡哨的东西,终于要做一些实实在在的事情了——在calc_df.F90中添加了calc_ywp_ux/y/z子函数(只需注意添加z方向的维度,所有ix,iy的后面加上iz;对于x,y的循环也别忘了还有z)
- 添加完成之后,其实是应该编译验证一下的。(但因为不在学校,不方便,所以这很重要的一步留到明天去办公室后的第一件事去做)。
- push到开源中国的私人仓库里去,方便明天从办公室继续修改。
git clone https://git.oschina.net/angangliandudu/epc.git
2015.12.21 -- 2015.12.23
- 完成ux/y/z的添加,并测试成功
- 进行剩余所有压力张量非对角项的输出添加(Txz/Tyz/Txy)
- 以及所有压力张量非对角项的空间导数的输出添加(DxTxz/DxTyz/DxTxy)
2015.12.24 - 2015.12.30
- 通过重复xz的工作,发现了修改部分中存在的particle weight小bug。
- 花了一下午的功夫,最终还是xz发现了,原因也还是在于小小的笔误 -- 'ifndef'和'ifdef'搞混了。。是的没错,“这样也行!?!”
- 解决掉这个问题之后,Txz等压力张量在数量级上的问题就解决了;重新在美国服务器上提交了分辨率扩大8倍的算例,还没来得及处理数据。
TODO:
- XZ用心良苦的Homework -- 增加输出与磁力线方向平行/垂直的温度/压强