[笔记1.2]善用软件包的文档及其他

[生成 AFEPack 的文档]
      源程序:/usr/local/AFEPack/library/include
                 /usr/local/AFEPack/library/src
      参考文档:http://circus.math.pku.edu.cn/AFEPack/html/index.html
                也可以用 /usr/local/AFEPack/doc$ doxygen AFEPack.cfg
                在本机 /usr/local/AFEPack/doc 目录下生成以上网址提供的参考文档以便于查看

[生成 deal.II 的文档]

$ cd /usr/local/deal.II/
/usr/local/deal.II$ vi Makefile
...
        @echo "=  online-doc: generate the documentation in HTML format             ="
...
/usr/local/deal.II$ sudo make online-doc

[变量命名方式]

Pascal(帕斯卡):每个单词首字母均大写,MyCar
Camel(骆驼): 第一个单词首字母小写,其余单词大写,
下划线:my_car

AFEPack:
自定义类型名(类、结构)  Pascal
变量和类的数据成员          下划线
成员函数                       camel

Deal.II: Pascal和下划线命名

[设置环境变量:AFEPACK_TEMPLATE_PATH]
读入参考单元信息的路径,查看用 $ echo $AFEPACK_TEMPLATE_PATH

1、命令行直接敲,比如:(比较麻烦,偷懒的话用2、)
export AFEPACK_TEMPLATE_PATH=/usr/local/AFEPack/template/triangle:/usr/local/AFEPack/template/rectangle

2、若要环境变量在启动计算机时即生效,在 ~/.bashrc加入:
export AFEPACK_TEMPLATE_PATH = ... (根据需要选择参考单元的路径)

3、运行程序时用shell脚本:(可灵活设置不太常用的参考单元路径)
如/usr/local/AFEPack/example/possion_equation/run
在run里根据需要修改 AFEPACK_PATH 和 AFEPACK_TEMPLATE_PATH 两个变量:

export AFEPACK_PATH="/usr/local/AFEPack"
export AFEPACK_TEMPLATE_PATH="$AFEPACK_PATH/template/triangle"
export AFEPACK_TEMPLATE_PATH="$AFEPACK_TEMPLATE_PATH":/usr/local/AFEPack/template/rectangle
export AFEPACK_TEMPLATE_PATH="$AFEPACK_TEMPLATE_PATH":/usr/local/AFEPack/template/interval

[学会看源代码和文档,有效检索信息]

我的起点不高,完整学过一本入门级C++编程中文教材,用面向过程的方式编过比较丑陋的有限元程序。其它高级的编程/数学思想仅局限在纸上谈兵的程度。虽然有限元的思想现在看似简单,但具体到程序实现,采用的步骤和模块划分可能和AFEPack包不尽相同,若能站在细节之外整体了解作者当初设计时的构思框架可能是最好的开始,幸而现在可以在作者的Blog里一窥。

初学AFEPack时,感觉非常生涩,浩如烟海的程序/文档对我而言没有任何语意,最初晕头转向,四顾茫然(这时如果身边能有一个熟悉的万事通莅临指导,估计能事倍功半,但有了领路人依然要自己多下功夫)。

学习一段时间后,感觉可以跳出某一部分,俯视之时,就整理一些笔记以备忘。若能对如我般初学者有所帮助,那更好。但是限于个人水平以及考虑问题的差异,这些笔记并不完善,且可能只反映我个人认为比较流畅的学习路径——

从例程开始深入代码相关部分*,细读几个大型类的实现,以及如何整合成了最后的程序,开始光看文档的话可能会对底层的实现感到困惑。(*:用 grep命令帮着定位调用在源代码的位置,或者参考文档查找。我算是从比较底层的地方开始学习的,觉得很耗时,但也有意外收获。) 熟悉程序/文档结构后可以结合着看,用文档速查还是很方便的,可以很快找到需要查询的信息。

关于生成的web文档,虽然已经很好了,但是我还是不太满意它们对于新手的易读性。当右边的滚动条缩成小小的一块时,一目了然化为乌有,早日熟能生巧才是王道。(一点想法: UltraEdit®( http://www.ultraedit.com/)的代码折叠功能很方便,按照思维导图的样式设计可折叠的文档会不会更加易读呢?)

你可能感兴趣的:(编程,文档,Path,documentation,pascal,makefile)