Skip to content

Latest commit

 

History

History
48 lines (36 loc) · 2.19 KB

README.md

File metadata and controls

48 lines (36 loc) · 2.19 KB

Interpolative Separable Density Fitting for the Bethe-Salpeter Equation

The code in this repository was used in the the paper

F. Henneke, L. Lin, C. Vorwerk, C. Draxl, R. Klein, C. Yang, Fast optical absorption spectra calculations for periodic solid state systems, submitted

see arxiv for a preprint. The software is written in julia.

Documentation

The software requires julia 1.0 to be available on the machine. It can then be installed from within the julia REPL using the command

    ]add https://github.com/fhenneke/BSE_k_ISDF.jl

The tests can then be run using

    ]test BSE_k_ISDF

To run the examples, you need to install additional dependencies via

    ]add BenchmarkTools JLD2 FileIO FFTW Arpack

The one-dimensional examples is self-contained and can be run from within the folder examples. The three commands

    include("benchmarks_1d.jl") # takes about  400 seconds
    include("errors_1d.jl")     # takes about 4000 seconds

should run the code to compute benchmarks and errors.

To produce the figures from the article you additionally have to use the PGFPlotsX package. The figures are the created using the command

    include("plotting_1d.jl")

For the three-dimensional examples, additional input files have to be obtained. This can be done in two ways.

  1. Download the additional files from (example_data.zip; ~11 GB) and add them to the examples folder.
  2. Generate the input files using the electronic structure code exciting (add link) using the provided input files. It should be noted that some of the computations require multiple thousands of CPU hours. The version of exciting used to generate the date for the article was in development at the time of submission and has git hash (add hash of commit). The features used are expected to be included in the next major release of the exciting software.

The diamond and graphene examples can then be run using the commands

    include("benchmarks_3d.jl") # takes about  1200 seconds
    include("errors_3d.jl")     $ takes about 40000 seconds
    include("plotting_3d.jl")