24小时热门版块排行榜    

查看: 1930  |  回复: 16

tsh8167

木虫 (小有名气)

[求助] 怎么读取Siesta输出的Hamiltonian and overlap矩阵(*.HSX文件)?

如题,我想计算体系的Hamiltonian and overlap,按Siesta3.1的手册说明,在输入文件里设置参数SaveHS T 后,得到的 *.HSX文件却是乱码,该如何操作了?
回复此楼

» 收录本帖的淘帖专辑推荐

我的宝贝帖子 计算-siesta

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhangguangping

木虫 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
tsh8167: 金币+20, ★★★很有帮助 2012-05-04 20:24:27
fzx2008: 金币+3, 谢谢指教 2012-05-04 20:58:06
tsh8167: 金币+20, ★★★很有帮助 2012-05-30 12:26:27
那个文件是用的unformated格式记录的,机器能读。你要是想看的话,你可以将Src目录m_hsx.F文件中第106行
          open( iu, file=fname, form='unformatted', status='unknown' )
修改为
          open( iu, file=fname, form='formatted', status='unknown' )
输出的文件,你打开就可以看了。
弘德明志博学笃行
2楼2012-05-04 19:03:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhangguangping

木虫 (著名写手)

★ ★
fzx2008: 金币+2, 谢谢指教 2012-05-04 20:58:13
当然,你修改文件后,替换掉原来的。需要对代码重新编译。一个最简单的办法就是将Scr的m_hsx.F文件修改后,在编译目录下面(估计你用的是Obj目录)只把以m_hsx.mod,m_hsx.o删除后,然后直接make开始编译。这样编译省不少时间。
弘德明志博学笃行
3楼2012-05-04 19:08:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tsh8167

木虫 (小有名气)

引用回帖:
3楼: Originally posted by zhangguangping at 2012-05-04 19:08:22:
当然,你修改文件后,替换掉原来的。需要对代码重新编译。一个最简单的办法就是将Scr的m_hsx.F文件修改后,在编译目录下面(估计你用的是Obj目录)只把以m_hsx.mod,m_hsx.o删除后,然后直接make开始编译。这样编译 ...

我照改了,但是重新编译后,计算会出现
forrtl: severe (256): unformatted I/O to unit open for formatted transfers, unit 15, file /home/tsh/softs/siesta/siesta-3.1/Tests/h2o/h2o.HSX 的错误,不知该如何处理?
4楼2012-05-04 20:25:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhangguangping

木虫 (著名写手)

引用回帖:
4楼: Originally posted by tsh8167 at 2012-05-04 20:25:42:
我照改了,但是重新编译后,计算会出现
forrtl: severe (256): unformatted I/O to unit open for formatted transfers, unit 15, file /home/tsh/softs/siesta/siesta-3.1/Tests/h2o/h2o.HSX 的错误,不知该如 ...

忘记了一点,你还需要将那个文件中所有的
write(iu)
替换成
write(iu,*)
弘德明志博学笃行
5楼2012-05-04 20:56:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tsh8167

木虫 (小有名气)

引用回帖:
5楼: Originally posted by zhangguangping at 2012-05-04 20:56:09:
忘记了一点,你还需要将那个文件中所有的
write(iu)
替换成
write(iu,*)

替换后,重新编译时会在248,339,342行出现错误,提示:line 342:Syntax error, found END-OF-STATEMENT when expecting one of: = .EQV. .NEQV. .XOR. .OR. .AND. .LT. < .LE. <= .EQ. == .NE. /= .GT. > ...   可在相应行删除两个空格来解决。
多谢版主!!!!问题解决了。

另问:版主可否对*.HSX文件里的内容做个说明?我看里面全是数字 ,不知道哪块对应的是Hamiltonian 矩阵,哪块是overlap矩阵。
6楼2012-05-04 21:33:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tsh8167

木虫 (小有名气)

附:这是我得到的H2O的.HSX文件

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : h2o.HSX
  • 2012-05-04 21:40:06, 47.32 K
7楼2012-05-04 21:41:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhangguangping

木虫 (著名写手)

引用回帖:
6楼: Originally posted by tsh8167 at 2012-05-04 21:33:50:
替换后,重新编译时会在248,339,342行出现错误,提示:line 342:Syntax error, found END-OF-STATEMENT when expecting one of: = .EQV. .NEQV. .XOR. .OR. .AND. .LT. < .LE. <= .EQ. == .NE. /= .GT. &g ...

关于内容的问题,你可以直接去看m_hsx.F文件中的write_hsx子过程。
弘德明志博学笃行
8楼2012-05-04 22:32:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tsh8167

木虫 (小有名气)

引用回帖:
8楼: Originally posted by zhangguangping at 2012-05-04 22:32:59:
关于内容的问题,你可以直接去看m_hsx.F文件中的write_hsx子过程。

版主,有两个问题请教:
1、如何像读取*.HSX文件一样读取出*.TSHS文件的内容?该改哪个源文件?
2、siesta中默认的Hamilton的单位是什么?是eV吗?
9楼2012-05-18 15:10:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhangguangping

木虫 (著名写手)

★ ★
fzx2008: 金币+2, 谢谢指教 2012-05-18 22:30:40
引用回帖:
9楼: Originally posted by tsh8167 at 2012-05-18 15:10:19:
版主,有两个问题请教:
1、如何像读取*.HSX文件一样读取出*.TSHS文件的内容?该改哪个源文件?
2、siesta中默认的Hamilton的单位是什么?是eV吗?

1. m_ts_io.F90中有一个子程序ts_iohs这个负责读写TSHS文件。
2. 单位是Ry
弘德明志博学笃行
10楼2012-05-18 22:18:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 tsh8167 的主题更新
信息提示
请填处理意见