@@ -102,7 +102,7 @@ Follow the vendor installation instructions for ``TAU``.
PerfDMF are a set of utilities that allow you to create a database for storing and analayzing your profile data. If you plan to collect any significant amount of profile data, it is highly recommend that you set one up. There are a number of options for the perfmdf database. For must users, the default based on derby is the simplest and it can be created by ``perfdmf_configure --create-default``. Other options are
There may be a number of Makefile TAU stubs available. Choose the one that is appropriate for the profile data that you wish to collect and the compiler. Because automatic instrumentation generally has larger overhead than manual instrumentation, it is recommended to set the compensate option. In this way, the instrumentation time will be substracted out from the time reported by TAU. Without this compensation option, light weight functions may be over-represented in the flat profile.
There may be a number of Makefile TAU stubs available. Choose the one that is appropriate for the profile data that you wish to collect and the compiler. Because automatic instrumentation generally has larger overhead than manual instrumentation, it is recommended to set the compensate option. In this way, the instrumentation time will be subtracted out from the time reported by TAU. Without this compensation option, light weight functions may be over-represented in the flat profile.
The BSE module can work very well for small bulk systems. See gpaw/test/bse_silicon.py as an example.
Recently I have implemented using scalapack library to diagonalize the BSE matrix, so in priciple, it can also work for relatively bigger systems. Bigger tests coming soon.
Recently I have implemented using scalapack library to diagonalize the BSE matrix, so in principle, it can also work for relatively bigger systems. Bigger tests coming soon.
for the self energy and its derivative is carried out, where :math:`\omega = \epsilon_{n \mathbf{k}}`. This is done for every :math:`(n \, \mathbf{k})` and :math:`(m \, \mathbf{k}\!-\!\mathbf{q})` seperately.
for the self energy and its derivative is carried out, where :math:`\omega = \epsilon_{n \mathbf{k}}`. This is done for every :math:`(n \, \mathbf{k})` and :math:`(m \, \mathbf{k}\!-\!\mathbf{q})` separately.
Method 2 (``hilbert_trans = True``) reverses this order by doing the frequency integration first for all :math:`\omega` on the grid. Then, for every :math:`(n \, \mathbf{k})` and :math:`(m \, \mathbf{k}\!-\!\mathbf{q})`, the contributions to :math:`\Sigma(\omega = \epsilon_{n \mathbf{k}})` and its derivative are found by linear interpolation using the two closest points on the frequency grid with :math:`\omega_i \leq \omega = \epsilon_{n \mathbf{k}} < \omega_{i+1}`. For :math:`\omega = 0`, three points are used for the interpolation. This is similar to using the Hilbert transform for the dielectric response function.
...
...
@@ -149,7 +149,7 @@ I/O
All necessary informations of the system are read from ``file = 'filename.gpw'`` which must contain the wavefunctions. This is done by performing ``calc.write('groundstate.gpw', 'all')`` after the groundstate calculation. GW supports grid mode and planewave basis.
Especially for big systems, it might be reasonable to determine the exact exchange contributions seperately and store them in a pickle file which can be read by defining ``exxfile = 'filename.pckl'`` (see below). The band and k-point indices must match the ones used for the GW calculation. The pickle file needs to contain the following data:
Especially for big systems, it might be reasonable to determine the exact exchange contributions separately and store them in a pickle file which can be read by defining ``exxfile = 'filename.pckl'`` (see below). The band and k-point indices must match the ones used for the GW calculation. The pickle file needs to contain the following data:
@@ -167,7 +167,7 @@ See the GW tutorial for an example: :ref:`gw_tutorial`
The output is written to ``txt = 'filename.out'`` which summarizes the input and results and gives an estimation of the timing while the calculation is running. An additional file ``df.out`` is created for the calculation of the dielectric matrix.
All results are also stored in a pickle file called ``GW.pckl`` by default, which contains all data listed in the table above and addionally ``Sigma_skn``, ``Z_skn`` and ``QP_skn`` for the self energy contributions, renormalization factors and the quasi-particle bandstructure, respectively.
All results are also stored in a pickle file called ``GW.pckl`` by default, which contains all data listed in the table above and additionally ``Sigma_skn``, ``Z_skn`` and ``QP_skn`` for the self energy contributions, renormalization factors and the quasi-particle bandstructure, respectively.
2013-10-23 10.1103/PhysRevB.88.155128 Plasmons in metallic monolayer and bilayer transition metal dichalcogenides
2013-12-15 10.1016/j.cpc.2013.07.014 Graphics Processing Unit acceleration of the Random Phase Approximation in the projector augmented wave method
2013-12-26 10.1103/PhysRevB.88.245309 How dielectric screening in two-dimensional crystals affects the convergence of excited-state calculations: Monolayer MoS2
2013-12-27 10.1103/PhysRevB.88.245204 Calculated formation and reaction energies of 3d transition metal oxides using a hierachy of exchange-correlation functionals
2013-12-27 10.1103/PhysRevB.88.245204 Calculated formation and reaction energies of 3d transition metal oxides using a hierarchy of exchange-correlation functionals
2014-04-28 10.1063/1.4871875 Static correlation beyond the random phase approximation: Dissociating H-2 with the Bethe-Salpeter equation and time-dependent GW
2014-05-15 10.1007/s00339-013-8034-3 Atomistic approach for simulating plasmons in nanostructures
2014-05-21 10.1103/PhysRevLett.112.203001 Accurate Ground-State Energies of Solids and Molecules from Time-Dependent Density-Functional Theory
@@ -19,7 +19,7 @@ The current implementation *lacks* the following features:
* Fractional occupations.
For technical reasons, we had to decouple occupied and unoccupied states. This makes fractional occupations imposible. (Warning: the code will not raise an exception, but probably won't converge).
* Speed.
Inclusion of Fock exchange is exceedingly slow. The bottleneck is solving the poisson integrals of the Fock operator, which is currently done using an iterative real-space solver with a zero initial guess for the potential at each SCF cycle. This chould be optimized.
Inclusion of Fock exchange is exceedingly slow. The bottleneck is solving the poisson integrals of the Fock operator, which is currently done using an iterative real-space solver with a zero initial guess for the potential at each SCF cycle. This should be optimized.
One way to speed up an exact-exchange (or hybrid) calculation is to use the coarse grid (used for wave functions) instead of the finegrid (used for for densities) for the Fock potentials. This should give a speed-up factor of 8. This can be specified in the ``xc`` keyword like in this example :svn:`~gpaw/test/exx_coarse.py`