2008年1月28日星期一

昨晚看了集结号

刚买了一个笔记本,这下回去也有事了。
早就听说了集结号了,大名鼎鼎。
其实我很久没有看电影了,看也只是偶尔。总是觉得看电影一个人很没有意思,现在孤单一人,很希望能和一个自己心爱的一起看,所以权作储备吧。
我是很喜欢看电影,喜欢那种融入电影中的感觉。
放假了,同学们走的差不多了,同宿舍的也走了,就把另一个同学给叫过来。现在集结号的DVDrip出来了,于是在emule上下了下来,速度还是挺快的。

因为之前也有所耳闻,所以还是静静的把它看完了。
首先就是镜头晃啊的那种,给人感觉真是越来越像好莱坞电影了。因为以前看过韩国的那个《太极旗飘扬》,之前又听说过这个电影的战斗场面是韩国的那个组做 的,不过不管怎么说和以前的战争片有了很大的区别,虽说里面有些场面确实听残酷的,不忍看,但也因此让人认识到战争的残酷。

里面谷子地的连队以47人血肉之躯抵抗那么多国民党军,在我看来简直就是不可能完成的任务,说实在的就是让他们去送死,他们的伤亡是必然的,我想那个刘团长不去找他们也是认为他们都死光了,他也是带着愧疚的心,最后谷子地原谅了他,也是可以理解的。
这个电影很感人,我想电影的核心是说的战友之情,在生与死之间的友情是超越一切的,最后只有自己一个人留下了,实际上我想谷子地是感到愧疚的,他要为他的弟兄们正名,不管一切,不惜一切代价的那种精神实际上就是建立在自己苟活在世上的目的就是这个了,其他的都是算奖励了。

许多人看过这个电影说了句玩笑话:组织不可靠;看过后确实有一段感觉太不近人情了,战争时期出生如死的人到头来还有被审查,听着,看着都可气,虽然最后为9连的人都正名了,但如果不是谷子地多年的努力几乎是不可能的。而且我想这种现象在以前绝对不是少数。战争太残酷了。
而且看了这个电影的都有感觉的,因为描述的是国内战争,这种感觉会更加深,大家都是中国人,拼死拼活的打仗都是因为大家的信仰不一样就互相残杀。
希望这种情况不再出现!

2008年1月21日星期一

踏上ipv6的大道

也不知道是怎么碰上的,今天把自己电脑也用上了ipv6。
对于ipv6,大家都不陌生,喊了很多年了,但是现在似乎仍然看不到,摸不到,仍然还在实验室内呆着。其实不尽然,主要是现在仍然主流的是ipv4,所以为保证IPv4能够平稳过渡到IPv6,研究者提出了多种技术方案。主要有双协议栈、隧道技术、NAT-PT等。
隧道技术提供了一种以现有IPv4路由体系来传递IPv6数据的方法:将IPv6的分组作为无结构意义的数据,封装在IPv4数据报中,被IPv4网络传输。
我走上这个ipv6的路就是搭的这个路-隧道技术。对于隧道技术也是有几种类型的: (1)手工配置隧道 ( Configured Tunnel)、 (2) 自动配置的隧道 ( Auto-configured Tunnel )和 (3) 隧道中介(Tunnel Broker)三种主要的,以及其他方式包括6to4,ISATAP等。具体的内容可见http://202.196.65.45/learn.html
这里我通过的方式是第三种隧道中介(Tunnel Broker)。
这里要记住这个网站http://ipv6.ha.edu.cn/,这是郑州大学的ipv6试验网。河南省网络中心(位于郑州大学)在2007年12月7日启用了ipv6的隧道代理,暂为大家免费提供访问IPv6网服务。这需要我们先到http://202.196.65.45/上免费注册,然后就可以获得自己的IPv6地址了。
登上这个网站后,里面有详细的步骤,我来简化之:
1,点击用户注册,填上诸如用户名,单位、用途之类的简单信息即可注册成功;
2,成功后即可马上登录,然后就会显示让激活,点击激活,最上面会有红色的文字告诉你已经为你分配通道及ipv6的地址;接下来还需要做一些工作
3,对于我现在使用的windows xp来说(其他诸如linux之类,以后用的时候再研究)首先要安装ipv6协议栈:
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

E:\Program Files\PowerCmd\PowerCmd>ipv6 install
Installing...
Succeeded.

然后执行下列命令:
E:\Program Files\PowerCmd\PowerCmd>netsh
netsh>int ipv6
netsh interface ipv6>add v6v4 "chenweiguangtunnel" 202.196.74.100 202.196.65.45
Ok.
其中:"chenweiguangtunnel" 为自己申请隧道名称,通常为"用户名+tunnel",202.196.74.100为自己电脑的ipv4地址,202.196.65.45为提供隧道中介的ipv4地址;

接下来查询本机接口状态:
netsh interface ipv6>sh int
Querying active state...

Idx Met MTU State Name
--- ---- ----- ------------ -----
6 1 1280 Connected chenweiguangtunnel
5 0 1500 Connected Local Area Connection
4 2 1280 Disconnected Teredo Tunneling Pseudo-Interface
3 1 1280 Connected 6to4 Tunneling Pseudo-Interface
2 1 1280 Connected Automatic Tunneling Pseudo-Interface
1 0 1500 Connected Loopback Pseudo-Interface
左边为接口index,可以看到"chenweiguangtunnel"所对应的为6(这个下面会有说明),并且已经连接上,其他的不知亦可;

接下来需要为本机配置ipv6地址:
netsh interface ipv6>add address "chenweiguangtunnel" 2001:da8:a5:fe:1c::2
Ok.
其中最后一个2001:da8:a5:fe:1c::2为所分配给自己的ipv6地址;

然后添加路由:
netsh interface ipv6>add route 2001:da8::/32 "chenweiguangtunnel" 2001:da8:a5:fe:1c::1
Ok.

netsh interface ipv6>add route 2001:250::/32 "chenweiguangtunnel" 2001:da8:a5:fe:1c::1
Ok.
其中2001:da8:a5:fe:1c::1为您的ipv6网关是: 2001:da8:a5:fe:1c::1/64,2001:da8::/32和2001:250::/32的含义还不甚明了,似乎都是一样的,照抄下来就可以了,从命令帮助来看是路由前缀,姑且这么理解;

加完之后我们可以看一下:
netsh interface ipv6>show route
Querying active state...

Publish Type Met Prefix Idx Gateway/Interface Name
------- -------- ---- ------------------------ --- ---------------------
no Manual 1 2001:250::/32 6 2001:da8:a5:fe:1c::1
no Manual 1 2001:da8::/32 6 2001:da8:a5:fe:1c::1
这说明我们已经加上了;

这个时候我们退出:
netsh interface ipv6>exit

然后使用ipv6协议ping6下网关:
E:\Program Files\PowerCmd\PowerCmd>ping6 2001:da8:a5:fe:1::1

Pinging 2001:da8:a5:fe:1::1
from 2001:da8:a5:fe:1c::2 with 32 bytes of data:

Reply from 2001:da8:a5:fe:1::1: bytes=32 time<1ms bytes="32" bytes="32" bytes="32" sent =" 4," received =" 4," lost =" 0" minimum =" 0ms," maximum =" 0ms," average =" 0ms">ping6 www.6bone.net

Pinging 6bone.net [2001:5c0:0:2::24]
from fe80::211:9ff:fe0f:decd%5 with 32 bytes of data:

Reply from fe80::211:9ff:fe0f:decd%5: Destination address unreachable.
Reply from fe80::211:9ff:fe0f:decd%5: Destination address unreachable.
Reply from fe80::211:9ff:fe0f:decd%5: Destination address unreachable.
Reply from fe80::211:9ff:fe0f:decd%5: Destination address unreachable.

Ping statistics for 2001:5c0:0:2::24:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
发现不通,我们需要再做一下事情:
E:\Program Files\PowerCmd\PowerCmd>ipv6 ifcr v6v4 202.196.74.100 202.196.65.45
首先要说明一下:这个命令应该在最早执行
这个时候会返回来一个值,就是上面提到的6,这说明新添加了一个interface

然后执行:
E:\Program Files\PowerCmd\PowerCmd>ipv6 adu 6/2001:da8:a5:fe:1c::2
给指定接口配置 IPv6 地址,注意这里的6,斜杠后面为自己本机所分配到的ipv6地址;

接下来执行:
E:\Program Files\PowerCmd\PowerCmd>ipv6 rtu 2001:da8:a5:fe:1c::1 6
添加路由表,注意最后的6,中间的地址为ipv6网关;

最后执行命令:
E:\Program Files\PowerCmd\PowerCmd>ipv6 rtu 2000::/3 6
也是加路由表;

E:\Program Files\PowerCmd\PowerCmd>ipv6 ifc 6 forwards
做端口转发

到此为止大功告成,试试:
E:\Program Files\PowerCmd\PowerCmd>ping6 www.6bone.net

Pinging 6bone.net [2001:5c0:0:2::24]
from 2001:da8:a5:fe:1c::2 with 32 bytes of data:

Reply from 2001:5c0:0:2::24: bytes=32 time=373ms
Reply from 2001:5c0:0:2::24: bytes=32 time=376ms
Reply from 2001:5c0:0:2::24: bytes=32 time=380ms
Reply from 2001:5c0:0:2::24: bytes=32 time=379ms

Ping statistics for 2001:5c0:0:2::24:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 373ms, Maximum = 380ms, Average = 377ms
成功!
可以体验一下ipv6了,上面有一些不错的资源:
比如:http://video6.sjtu.edu.cn/,呵呵

2008年1月20日星期日

处理PWSCF计算出来的本征值(画能带图)[zz]

pwscf 附带了band.x和plotband.x的工具,前者是将计算出来k点坐标以及相应的本征值从out文件中收集起来(或取出)专门存储到一个文件中,以 便后一个工具plotband.x进行处理。在计算能带时,先设置k点网格进行一次自洽计算,然后自己输入要计算的特殊k点并进行一次非自洽计算,得到这 些特殊k点的本征值。再用band.x和ploband.x进行处理。

1). band.x的输入文件格式
&inputpp
prefix = 'si'
outdir = './tmp'
filband = 'sibands.dat'
spin_component=1
/
其中 prefix设置所计算体系的标题,以及输入文件的文件名(不包括扩展名,也就是. 'dot'后面的));
outdir用来设置上一步非自洽计算中的输出文件的目录;
filband用来设置这一步band.x处理出来的k点和本征值的输出文件(也就是将这些k点-本征值放到哪个文件中);
spin_component为1表示处理的是非自旋极化计算的本征值,如果是2表示处理的是自旋极化计算的本征值。

band.x的输出文件(fiband所设置的)的格式为:
&plot nbnd= 8, nks= 36 /
0.500000 0.500000 0.500000
-3.418 -0.822 5.029 5.029 7.814 9.597 9.597 13.838
0.400000 0.400000 0.400000
-3.891 -0.102 5.102 5.102 7.900 9.679 9.679 13.959
0.300000 0.300000 0.300000
-4.659 1.404 5.319 5.319 8.138 9.803 9.803 13.845
。。。。。。。。。
与在声子计算中matdyn.x得到的q点与本征值的文件的格式是一样的。
第一行中nbnd告诉了每个有多少个本征值,本征值单位是eV。nks告诉了总共有多少k点。第2行是k点的坐标,第3行是该k点对应的本征值。下面的与2、3两行类似。

2)、plotband.x的输入文件格式
sibands.dat
-6.0 10
sibands.xmgr
sibands.ps
6.255
1.0 6.255

第一行是band.x处理得到的k点本征值文件 此例子中是sibands.dat;
第二行是在这一步中输出的ps文件中纵坐标(本征值能量)刻度的最小值与最大值;
第三行是用来设置所出输出xmgr格式的文件的文件名;
第四行是用来设置所输出文件ps格式的文件名;
第五行是费米能级的值,这个在自洽计算的out文件中可以找到;
第六行中第一个数是用来设置输出 ps格式文件纵坐标(能量)刻度的大小,第二个数是用来设置标出费米能级的位置,它与第五行中的数相同。

同样ploband.x也可以用来处理声子本征值文件。

PWSCF计算实例分析(1)[zz]

PWSCF 程序包(早期的叫法),或称为ESPRESSO程序(改名后的叫法),它包括了多几个计算模块,主要的是电子自洽计算模块pw.x,晶格动力学计算模块 (ph.x, phcg.x, dynmat.x,d3.x等),后续数据处理模块pp.x,电子输运性质计算模块pwcond.x,分子动力学模块cp.x等
一、自洽计算
例子:fcc Cu的自洽计算
&control
calculation='scf'
restart_mode='from_scratch',
pseudo_dir = './',
outdir='./'
prefix='cu'
tstress = .true.
tprnfor = .true.
/
&system
ibrav = 2, celldm(1) =6.73, nat= 1, ntyp= 1,
ecutwfc = 25.0, ecutrho = 300.0
occupations='smearing', smearing='gaussian', degauss=0.02
/
&electrons
diagonalization='david'
conv_thr = 1.0e-8
mixing_beta = 0.7
/
ATOMIC_SPECIES
Cu 63.55 Cu.pz-d-rrkjus.UPF
ATOMIC_POSITIONS
Cu 0.0 0.0 0.0
K_POINTS (automatic)
8 8 8 0 0 0

解释:
在电子自洽计算中需设置以下几个方面的参数:
1)控制计算的部分,也就是要设置
&control
.....
第一个'/'之间的关键词。
关键词calculation赋值为'scf'表示此计算是进行自洽电荷密度计算;
restart_mode表示是否是接着上一次的计算而继续的计算,赋值为'from_scratch'意味着是进行一次全新的计算开始;
pseudo_dir用来设置赝势文件所在的目录,赋值为'./'表示赝势文件放在当前计算目录;
outdir用来设置计算过程中输出文件(比如波函数、电荷密度以及势)输出到哪个目录中。赋值为'./'表示这些输出文件将放到当前计算目录中;
prefix用来定义当前计算作业的标题名,它将是一些主要输出文件的文件名。赋值为'cu'用来标记当前计算作业是对Cu进行计算;
tstress 用来设置在自洽计算过程中是否计算体系的应力,设置为 .true.表示在自洽计算过程中要计算体系的应力;
tprnfor 用来设置在自洽计算过程中是否计算体系中原子所受的力,设置为 .true.表示在自洽计算过程中要计算体系中原子所受的力;

2)、 描述所计算的体系(包括它的晶格类型、晶格常数或结构参数、原胞基矢、原胞中原子的类型数目和总的原子数目)、平面波的切断动能(也就是在展开KS轨道或 晶体波函数的平面波切断动能;另外,还包括在计算电荷密度时,展开的平面波的切断动能)、确定电子占有数的方法及相关的参数。也就是由
&system
..........
第二'/'之间的关键词来设置。
ibrav用来归属体系所属的晶格类型,赋值为2表示所计算的体系是fcc结构;
celldm(1)用来设置体系的第一个晶格常数,因为所计算的体系是fcc结构,只需设置celldm(1),相当于指定晶格常数a的值;
nat用来指明体系的原胞中原子的总共数目,赋值为1表示所计算的原胞中只有一个原子;
ntyp用来指明体系中原子类型的数目,赋值为1表示所计算的体系只有一种类型的原子;
occupations用来设置确定电子占有数的方法,赋值为'smearing'表示采用smearing的方法来确定电子的占有数,随后须设置smearing和degauss关键词;
smearing用来指明确定电子占有数的一种具体的smearing方法,赋值为'gaussian'表示采用Gaussian函数来确定电子占有数;
degauss用来确定smearing方法中有关函数的展宽参数,赋值为0.02表示上面Gaussian函数中的展宽参数为0.02。

3)、设置电子自洽计算中本征矢量(波函数)和本征值的计算算法,自洽收敛的标准。也就是
&electrons
......
和第三个'/'之间的关键词来设置。
diagonalization用来设置在求KS方程的本征矢量和本征值时,采用具体的什么算法,赋值为'david'表示采用Davidson iterative diagonalization with overlap matrix方法;
conv_thr用来设置自洽收敛标准,赋值为自洽循环过程总能的变化小于1.0e-8的化,那自洽计算就停止;
mixing_beta用来设置自洽计算过程中前后两次电荷密度混合的参数。

4)、指明体系中原子的元素名,原子量以及所采用的赝势,即ATOMIC_SPECIES 后面的设置,它们的顺序要和后面原子的坐标一一对应起来。
Cu 63.55 Cu.pz-d-rrkjus.UPF
表示所计算的体系中原子是Cu,它的原子量为63.55,它的赝势文件为Cu.pz-d-rrkjus.UPF。

5)、给出体系原胞中原子的坐标位置,也就是ATOMIC_POSITIONS 后面的设置:
Cu 0.0 0.0 0.0
表示原胞中第一个原子是Cu,它位于原胞的原点。

6)、k点取样的设置,也就是K_POINTS 后面的设置:
K_POINTS (automatic) 表示由程序采用M-P方法自动确定k点,需给出k点取样网格的大小,以及是否在产生k点后对这些点进行平移。

8 8 8 0 0 0
表示采用8x8x8的网格来确定k点,而且不对k点进行平移。
[ valenhou 发表于 2006-12-2 23:37:00阅读全文 | 回复(1) | 引用通告 | 编辑]
http://blog.edu.cn/user1/11542/archives/2006/1572977.shtml

pwscf的安装编译

PWscf (Plane-Wave Self-Consistent Field)是意大利国际理论物理研究中心主持开发的一个基于平面波的第一性原理计算软件包,目前PWscf Quantum ESPRESSO(ESPRESSO:
opEn-Source Package for Research in Electronic Structure, Simulation,
and Optimization)
的一部分,主要集成了 pwscf.cpmd和fpmd这三个模块,可以进行总能相关计算和分子动力学模拟,功能还是比较强大的,具体可以查看 http://www.pwscf.org
下面简单介绍一下espress软件包的编译安装.现在的稳定版本是espresso-3.2.3,实际上出现了最新的v. 4.0cvs版本,不过还没有经过验证。
首先下载下来,解压缩之,tar xzvf espresso-3.2.3.tar.gz
然后进入目录espresso-3.2.3,执行./configure,默认情况下它会自动探测出你所在机器上的编译器和库文件的位置。然后成功的话会出现一个Makefile,
很不幸,它并没有检测出来我这个cluster的一些信息,这个时候就需要自己手动指定
./configure ARCH=amd64 F90=pgf90 MPIF90=mpif90 MPIF77=mpif77 MPICC=mpicc
最后make all即可,当然如果并不需要所有都编译,也可以单独编译:
make pw compile PW/pw.x (electronic and ionic optimization)-电子和离子优化
make cp compile CPV/cp.x (Car-Parrinello MD with ultrasoft
pseudopotentials)-使用US赝势的CPMD方法
make ph compile PH/ph.x (phonons)-计算声子谱
make pp compile postprocessing codes in the PP directory-对赝势的预处理
make gamma compile Gamma/phcg.x (Gamma-only version of ph.x)-只计算Gamma点的声子频率
make pwcond compile PWCOND/pwcond.x (ballistic conductance)
make d3 compile D3/d3.x (third-order energy derivatives)
make raman compile Raman/ram.x (Raman cross-section calculation)
make tools compile pwtools/* (miscellaneous tools for data analysis)

make ld1 compile atomic/ld1.x code for pseudopotential generation
make upf compile upftools/* (utilities for pseudopotential conversion)

make pwall same as "make pw ph pp d3 raman pwcond gamma tools"
make all same as "make pwall ld1 cp upf"

make clean remove object files and executables
make veryclean remove configuration files too
make tar build a tarball of the current source tree
然后就会在./bin目录里看到生成的程序链接。

对于其他的数学库还没有考虑,以后有时间要试试其他的编译器和数学库。

2008年1月3日星期四

我发现自己是一个完美主义者

但是同时又知道,没有十全十美的,只能达到目前状况的最好,因为自己能意识到这一点,这使得自己很沮丧。
有时候世事繁琐,甚至要打破自己的原则,使用一些可以更好,但是只能取其次的东西,为违背自己的原则而的叹气。
完美主义者注定都是悲剧