| 查看: 1323 | 回复: 3 | |||||
| 【悬赏金币】回答本帖问题,作者@七安将赠送您 10 个金币 | |||||
[求助]
如何提取siesta输出的hamiltonian和overlap
|
|||||
|
在输入文件中已设置Save HS True并且计算已输出label.HSX文件,现需要查看其中计算的哈密顿量,如何才能从该文件中提取哈密顿量? 发自小木虫手机客户端 |
» 猜你喜欢
300求调剂
已经有9人回复
291求调剂
已经有7人回复
求调剂推荐
已经有7人回复
289 分105500药学专硕求调剂(找B区学校)
已经有4人回复
0854求调剂
已经有13人回复
初试324 中药学 一志愿天中医 求调剂
已经有3人回复
药学求调剂
已经有14人回复
327求调剂
已经有27人回复
急需调剂
已经有5人回复
271求调剂
已经有33人回复
卡开发发
专家顾问 (著名写手)
Ab Initio Amateur
-

专家经验: +224 - 1ST强帖: 2
- 应助: 47 (小学生)
- 金币: 3525.8
- 散金: 14
- 红花: 223
- 帖子: 2477
- 在线: 1254小时
- 虫号: 1369423
- 注册: 2011-08-16
- 性别: GG
- 专业: 金属材料的磨损与磨蚀
- 管辖: 第一性原理
|
虽然我没具体研究和折腾过,可行的方式有如下几种: 1、直接读取HSX。但HSX是Fortran写入的二进制文件,可能需要去了解HSX读取或者写入逻辑。例如SIESTA程序提供的Utils当中有hsx2hs.f90,其中有读取HSX文件的逻辑,或者你可以参考DeepH程序,当中preprocess/siesta_get_data.py提供了python语言处理HSX的功能。 2、对SIESTA源码部分进行修改,将HSX的写入格式从unformatted改成formatted后重新编译,这样你能得到一份“人类可读”的HSX,然后写程序读取之,只不过可能其他模块并不兼容。 3、在SIESTA编译时挂上NetCDF4,然后计算时使用Write.DMHS.History.NetCDF,然后HS可以按照NetCDF4进行存储,使用相应语言的NetCDF4的库并写程序读取之。 |

2楼2025-08-04 06:26:17
|
siesta编译已具有netcdf4模块,只是在siesta生成的TSHS或HSX文件中读取哈密顿量时有些困难,即使用Python语言提取的哈密顿量也是错误提取 发自小木虫手机客户端 |
3楼2025-08-18 17:55:52
卡开发发
专家顾问 (著名写手)
Ab Initio Amateur
-

专家经验: +224 - 1ST强帖: 2
- 应助: 47 (小学生)
- 金币: 3525.8
- 散金: 14
- 红花: 223
- 帖子: 2477
- 在线: 1254小时
- 虫号: 1369423
- 注册: 2011-08-16
- 性别: GG
- 专业: 金属材料的磨损与磨蚀
- 管辖: 第一性原理

4楼2025-08-20 10:15:33













回复此楼
5