Git Product home page Git Product logo

bgw_wfn_io's Introduction

BGW WFN IO

A pure C library to read and write wavefunction files in HDF5 format according to the BerkeleyGW format specification.

Instructions

You should build the code using either CMake or by adjusting the provided Makefile template.

Using CMake

Follow these steps:

mkdir build && cd build
cmake ../
make
make test

You may need to manually specify the compiler with the CC flag, e.g., CC=mpicc cmake ../.

Manually editting the sample Makefile

Manually edit the Makefile and make the project. A library libbgw_wfn_io.so will be created.

Testing

  1. Run ./test_bindings.x to test the library. It will read the input file WFN_in.h5 and write the output file WFN_out.h5.
  2. You can check the correctness of the program with h5diff -v -c WFN_in.h5 WFN_out.h5 /

TODO

  • Improve CMake support.
  • Improve documentation.
  • Implement parallel I/O for wavefunction coefficients (check distrib. w/ Alfredo).
  • Add optional flag in the WFN file when the wavefunction is stored in the full FFT grid. Can optimize BGW for that case (e.g., Umklapp vectors -> cycle shift).

Developers

bgw_wfn_io's People

Contributors

jornada avatar

Watchers

Jack Deslippe avatar James Cloos avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.