Welcome to BerkeleyGW.org, the home of the Berkeley GW / Bethe-Salpeter Equation computer package. See the details section for more information and citation/acknowledgment requirements when using this package.

In order to download the package you must be a registered user at this site.

Training material (presentations and examples) from our 2014 tutorial is available here.

jornada's picture


Submitted by jornada on Wed, 08/31/2016 - 18:10

We are excited to announce the release of BerkeleyGW version 1.2.0! This major version is the result of years of work, and includes many new features, performance increase across the board, and several optimizations. Highlights of this new version are summarized below. The new version can be obtained from the downloads page.

Berkeley 1.2.0 (Aug/2016)

F. H. da Jornada, J. Deslippe, D. Vigil-Fowler, J. I. Mustafa, T. Rangel,
F. Bruneval, F. Liu, D. Y. Qiu, D. A. Strubbe, G. Samsonidze, J. Lischner.

Features marked with [*] change the default behavior of the code relative to
BGW-1.1 and may cause a small change in the numbers produced by the code.

New features

1) Added new methods to deal with the frequency-dependence of the polarizability:
1.1) Added Godby-Needs (GN) plasmon-pole model.
1.2) Added spectral method for real-axis (RA) full-frequency (FF) calculations.
The spectral method allows one to compute the dielectric matrix much faster for
many frequency points on the real axis. The old method for RA-FF calculations
is now refered to as the Adler-Wiser method. Still, RA is no longer the default
FF method (see next item).
1.3) Added Contour-deformation (CD) full-frequency (FF) formalism.
The CD is the recommended (and default) scheme for calculations performing an
explicit evaluation of the dynamical effects of the dielectric matrix without
plasmon-pole models. It requires the evaluation of the dielectric matrix on
both real and imaginary frequencies, but with typically a much smaller number
of frequencies. The previous formalism is now refered to as real-axis (RA)
full-frequency (FF) formalism. CD is now the default method for FF calculations.

2) Released non-linear optics post-processing utility.
This codes allows one to compute the inter-exciton transitions in non-linear-optics

3) Improved usability in the code output and added dynamic verbosity switch.
BerkeleyGW has now a much simpler and neater output. The code gives time estimates
for most tasks it performs -- at least for those that are more time-consuming.
There is also a run-time flag supported by all codes to switch the amount of
verbosity the code produces. The old compilation flag "-DVERBOSE" is now

4) Improved usability in the code input.
Several input parameters, such as band occupations, are automatically detected.
If not set, parameters such as the cutoff for the bare and screened Coulomb
potential are also read from the wave function and dielectric matrix,

5) Automatic solution of Dyson's equation in FF calculations.
BerkeleyGW now automatically solves Dyson's equation for FF calculations. It uses
a varying number of frequencies to find the graphical solution for the
quasiparticle energies, and perform extrapolation (with appropriate warning
messages) if no intersection could be found. The code will also output the files
"eqp0.dat" and "eqp1.dat" directly, containing the off-shell and on-shell
quasiparticle energies.

6) Added ABINIT wrapper.
It is possible to interface the ABINIT code with BerkeleyGW. For now, the
wrapper can only output complex-valued wavefunctions, even for systems with
inversion symmetry.


1) Added support for Xeon-Phi Knight's Landing (KNL)-based systems.

2) Improved OpenMP scaling throughout.
Using OpenMP is now recommended for large-scale computations.

3) Added new and more performant HDF5 file formats for epsmat and bsemat matrices.
This is recommend as default for all builds. Note that files are generally not
compatible with BerkeleyGW 1.1 and earlier. Binary epsmat files can be
converted to the HDF5 format with the epsmat_old2hdf5 utility. Older epsmat.h5
files from BerkeleyGW-1.1-beta2 can be converted to the current format with the
epsmat_hdf5_upgrade utility.

4) Added parallelization over frequencies in the epsilon code.
This allows for better scalability in full-frequency calculations. This
scheme is supported in the old Adler-Wiser and in the new Contour-Deformation

5) Improved the Monte-Carlo average scheme used to compute the Coulomb potential. [*]
For bulk systems, the new default scheme is to compute the average of Coulomb
potential v(q+G) for all q-points and G-vectors. We use a hybrid scheme to make
this evaluation faster. While the code is slightly slower for small calculations,
results should converge much faster with k-point sampling. One can still use the
old defaults with the input option "cell_average_cutoff 1.0d-12". Note that
no change was performed for 2D, 1D and 0D systems, or 3D metals.

6) Rewrote k-point interpolation engine. [*]
The previous k-point interpolation scheme used in the haydock, absorption, and
inteqp codes used a greedy algorithm to search for the closest coarse-grid points
around each fine-grid points, which lead to discontinuities of the interpolands.
The new interpolation engine uses QHull, which is bundled with BerkeleyGW, to
perform a Delaunay tessellation of the coarse-grid k-points. The new interpolation
scheme is much more robust. You can use the old interpolation scheme with the
"greedy_interpolation" flag.

7) Generalized scheme for k-point interpolation.
The k-point interpolation is used in the haydock, absorption, and inteqp codes.
The new scheme is useful for metals and systems with valence-conduction band
character mixing in the BSE.


1) Changed logic to deal with invalid GPP frequency modes. [*]
When the code performs a HL-GPP or a GN-GPP calculation and finds an invalid
mode with frequency with \omega_{G,G`}^2 within the static COHSEX approximation (i.e., move frequency to infinity).
The previous behavior was to "find" a purely complex mode frequency and relax
the causality constraint. One can switch which strategy to use with the
"invalid_gpp_mode" input flag.

2) Many bug fixes and performance improvement.

jdeslip's picture

BerkeleyGW 2015 Workshop Now Accepting Applications

Submitted by jdeslip on Tue, 09/22/2015 - 11:34

The BerkeleyGW 2015 workshop will take place in Oakland, California November 18-20, near NERSC's offices. Please apply now!

New this year is an advanced track for returning attendees and usage of the upcoming 1.2 final release features. We are also looking for contributed presentations and posters from BerkeleyGW users.

More details at: https://www.nersc.gov/users/training/events/berkeleygw2015

dstrubbe's picture

BerkeleyGW 1.1 Beta2

Submitted by dstrubbe on Wed, 12/10/2014 - 13:49

The second release candidate for the 1.1 line of BerkeleyGW is now available on the Downloads page. It has further improvements and bugfixes compared to version 1.1 Beta.

Disclaimers: This release should not be considered production. There are some rough edges here, including the possibility of bugs, sparse documentation and the potential for file-format changes in the future. Please use with caution and, at minimum, test your build using the testsuite (you should actually always do this).

jdeslip's picture

BerkeleyGW 1.1 Beta

Submitted by jdeslip on Mon, 06/30/2014 - 08:39

We are proud to announce the first public preview release in the 1.1 line of BerkeleyGW, on the Downloads page.
Update: the online manual ( html | pdf ) is now available.

Disclaimers: This release should not be considered production. There are some rough edges here, including the possibility of bugs, sparse documentation and the potential for file-format changes in the future. Please use with caution and, at minimum, test your build using the testsuite (you should actually always do this).

That said, there is a lot new in BerkeleyGW 1.1 beta. There have been over 2000 commits since BerkeleyGW 1.0. Highlights include:

1. Performance improvements of roughly 2x throughout the application from new methodologies, libraries, refactoring for improved memory re-use and vectorization.
- Parallel IO support with new HDF5 based file formats for Epsilon and BSE matrices.
- Hybrid MPI/OpenMP Support Throughout
- Support for Many-Core
- FFTW3 Support (and reduced size FFTs)

2. Improved interpolation in BSE, including inteqp.

3. Inclusion of static-remainder technique http://journals.aps.org/prb/abstract/10.1103/PhysRevB.87.165124

4. Improved Full-Frequency integration techniques using advanced quadrature methods.

dstrubbe's picture

tutorial at Benaque TDDFT school, January 2014

Submitted by dstrubbe on Wed, 08/14/2013 - 17:03



The 6th School and Workshop on "Time-Dependent Density-Functional Theory: Prospects and Applications" will include two afternoons of hands-on tutorial using BerkeleyGW, with Octopus as DFT code, as well as lectures on many-body perturbation theory. It will take place Jan 4 - 18, 2014 in Benasque, Spain. For more information see http://benasque.org/2014tddft. Note that the application deadline is at the end of August.

dstrubbe's picture

BerkeleyGW 1.0.4 Released

Submitted by dstrubbe on Mon, 12/10/2012 - 19:27



BerkeleyGW 1.0.4 is now available for download: http://www.berkeleygw.org/?q=node/6

In this release:
* Critical bugfix for q->0 term in Sigma for metals.
* PREBUILT wfns for silicon example are now available for download, rather than being included in the release, to reduce file sizes.
* Fixes for 3D interpolation, shifted Fermi level in BSE, epsomega, epsinvomega, espresso 4.3.2 utilities, JDOS normalization, plotxct
* Improvements to error handling in parallel, examples, eqp.py, documentation, config files, Visual, kgrid.
* PW2BGW can now exclude the NLCC term in VXC as an option.


Subscribe to BerkeleyGW RSS