1 unstable release

0.1.0 Aug 24, 2020

#8 in #waves

Apache-2.0

70KB
1K SLoC

wavecar_rs

Rust

A crate to manipulate wavefunction from VASP WAVECAR.

Example

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(())
}

Features

  • Get the meta information of WAVECAR;
  • Transform wavefunction from k-spake into real-space;
  • Save the wavefunction as CHGCAR format to visualize the spatial distribution;
  • Apply phase on the wavefunction to get full bloch waves;

Acknowledgement

Dependencies

~10MB
~245K SLoC