#vasp #manipulate #waves #grid #lib #wavecar #wave-function

wavecar_rs

一个用于操作VASP的WAVECAR的库

1个不稳定版本

0.1.0 2020年8月24日

#8 in #waves

Apache-2.0

70KB
1K SLoC

wavecar_rs

Rust

一个用于操作VASP WAVECAR中波函数的crate。

示例

use wavecar_rs::*;
use vaspchg_rs::ChgType;
use vasp_poscar::Poscar;

fn main() -> io::Result<()> {
    let mut wavecar = Wavecar::from_file("WAVECAR")?;
    // if your calculation is done via vasp5.2.x or lower in parallel
    // you need to set the wavecar type
    // wavecar.set_wavecar_type(WavecarType::GammaHalf(GammaHalfDirection::Z));

    let poscar = Poscar::from_path("POSCAR").unwrap();
    wavecar.get_wavefunction_in_realspace_default_grid(0, 0, 5)
        .unwrap()
        .apply_phase(&[0.5f64, 0.5, 0.5])
        .into_vesta_obj(&poscar)
        .write_file("wfc_xx.vasp", ChgType::Parchg)
        .unwrap();
    Ok(())
}

功能

  • 获取WAVECAR的元信息;
  • 将波函数从k空间转换到实空间;
  • 将波函数以CHGCAR格式保存,以可视化空间分布;
  • 对波函数应用相以获取完整的布洛赫波;

感谢

依赖

~10MB
~241K SLoC