3
0
mirror of https://github.com/triqs/dft_tools synced 2024-12-23 04:43:42 +01:00

implemented changes requested by @opeil

This commit is contained in:
Alexander Hampel 2020-01-30 14:12:07 -05:00
parent cf6789fd97
commit 25b76e567e
2 changed files with 13 additions and 11 deletions

View File

@ -399,17 +399,19 @@ Another critical point for CSC calculations is the function call of
purposes, but is called every iteration. Removing the call to this function in `electron.F` in line 644 speeds up the calculation significantly in the `ICHARG=5` mode. Moreover, this prevents VASP from generating the `GAMMA` file, which should ideally only be done by the DMFT code after a successful DMFT step, and then be read by VASP. purposes, but is called every iteration. Removing the call to this function in `electron.F` in line 644 speeds up the calculation significantly in the `ICHARG=5` mode. Moreover, this prevents VASP from generating the `GAMMA` file, which should ideally only be done by the DMFT code after a successful DMFT step, and then be read by VASP.
Furthermore, there is an bug in `fileio.F` around line 1710 where the code tries Furthermore, there is a bug in `fileio.F` around line 1710 where VASP tries to
print out "reading the density matrix from Gamma", but this should be done only print "reading the density matrix from Gamma". This should be done only by the
by the master node, and VASP gets stuck sometimes. So I added a `IF (IO%IU0>=0) master node, and VASP gets stuck sometimes. Adding a
THEN ... ENDIF` statement. Also, VASP gets sometimes stuck and does not write ::
the `OSZICAR` file correctly due to a stuck buffer. I added a flush to the IF (IO%IU0>=0) THEN
buffer to have a correctly written `OSZICAR` to extract the DFT energy. To do ...
so, one can add in `electron.F` around line 580 after ENDIF
statement resolves this issue. A similar problem occurs, when VASP writes the
`OSZICAR` file and a buffer is stuck. Adding a `flush` to the buffer in
`electron.F` around line 580 after
:: ::
CALL STOP_TIMING("G",IO%IU6,"DOS") CALL STOP_TIMING("G",IO%IU6,"DOS")
two lines:
::
flush(17) flush(17)
print *, ' ' print *, ' '
resolves this issue. Otherwise the OSZICAR file is not written properly.

View File

@ -53,7 +53,7 @@ DMFT
dmft script dmft script
------------------------------ ------------------------------
Since the python script for performing the dmft loop pretty much resembles that presented in the tutorial on :ref:`SrVO3 <srvo3>`, we will not go into detail here but simply provide the script :ref:`nio.py`. Following Kunes et al. in `PRB 75 165115 (2007) <https://journals.aps.org/prb/abstract/10.1103/PhysRevB.75.165115>`_ we use :math:`U=8` and :math:`J=1`. We se;ect :math:`\beta=5` instead of :math:`\beta=10` to ease the problem slightly. For simplicity we fix the double-counting potential to :math:`\mu_{DC}=59` eV by:: Since the python script for performing the dmft loop pretty much resembles that presented in the tutorial on :ref:`SrVO3 <srvo3>`, we will not go into detail here but simply provide the script :ref:`nio.py`. Following Kunes et al. in `PRB 75 165115 (2007) <https://journals.aps.org/prb/abstract/10.1103/PhysRevB.75.165115>`_ we use :math:`U=8` and :math:`J=1`. We select :math:`\beta=5` instead of :math:`\beta=10` to ease the problem slightly. For simplicity we fix the double-counting potential to :math:`\mu_{DC}=59` eV by::
DC_value = 59.0 DC_value = 59.0
SK.calc_dc(dm, U_interact=U, J_hund=J, orb=0, use_dc_value=DC_value) SK.calc_dc(dm, U_interact=U, J_hund=J, orb=0, use_dc_value=DC_value)