From 10018c6aa6b444ef0e19a89e641678941504ef3b Mon Sep 17 00:00:00 2001 From: aichhorn Date: Mon, 6 Aug 2018 14:41:54 +0200 Subject: [PATCH] first version of the SrVO3 tutorial / Wien2k version --- doc/tutorials/images_scripts/SrVO3.indmftpr | 15 +++++ doc/tutorials/images_scripts/SrVO3.struct | 25 ++++++++ doc/tutorials/srvo3.rst | 69 ++++++++++++++++++--- 3 files changed, 102 insertions(+), 7 deletions(-) create mode 100644 doc/tutorials/images_scripts/SrVO3.indmftpr create mode 100644 doc/tutorials/images_scripts/SrVO3.struct diff --git a/doc/tutorials/images_scripts/SrVO3.indmftpr b/doc/tutorials/images_scripts/SrVO3.indmftpr new file mode 100644 index 00000000..6f36362d --- /dev/null +++ b/doc/tutorials/images_scripts/SrVO3.indmftpr @@ -0,0 +1,15 @@ +3 ! Nsort +1 1 3 ! Mult(Nsort) +3 ! lmax +complex ! choice of angular harmonics +1 0 0 0 ! l included for each sort +0 0 0 0 ! If split into ireps, gives number of ireps. for a given orbital (otherwise 0) +cubic ! choice of angular harmonics +1 1 2 0 ! l included for each sort +0 0 2 0 ! If split into ireps, gives number of ireps. for a given orbital (otherwise 0) +01 ! +0 ! SO flag +complex ! choice of angular harmonics +1 1 0 0 ! l included for each sort +0 0 0 0 ! If split into ireps, gives number of ireps. for a given orbital (otherwise 0) +-0.11 0.14 \ No newline at end of file diff --git a/doc/tutorials/images_scripts/SrVO3.struct b/doc/tutorials/images_scripts/SrVO3.struct new file mode 100644 index 00000000..d0f2642f --- /dev/null +++ b/doc/tutorials/images_scripts/SrVO3.struct @@ -0,0 +1,25 @@ +SrVO3 +P LATTICE,NONEQUIV.ATOMS: 3221_Pm-3m +MODE OF CALC=RELA unit=bohr + 7.261300 7.261300 7.261300 90.000000 90.000000 90.000000 +ATOM 1: X=0.00000000 Y=0.00000000 Z=0.00000000 + MULT= 1 ISPLIT= 2 +Sr NPT= 781 R0=0.00001000 RMT= 2.50000 Z: 38.0 +LOCAL ROT MATRIX: 1.0000000 0.0000000 0.0000000 + 0.0000000 1.0000000 0.0000000 + 0.0000000 0.0000000 1.0000000 +ATOM 2: X=0.50000000 Y=0.50000000 Z=0.50000000 + MULT= 1 ISPLIT= 2 +V NPT= 781 R0=0.00005000 RMT= 1.91 Z: 23.0 +LOCAL ROT MATRIX: 1.0000000 0.0000000 0.0000000 + 0.0000000 1.0000000 0.0000000 + 0.0000000 0.0000000 1.0000000 +ATOM -3: X=0.00000000 Y=0.50000000 Z=0.50000000 + MULT= 3 ISPLIT=-2 + -3: X=0.50000000 Y=0.00000000 Z=0.50000000 + -3: X=0.50000000 Y=0.50000000 Z=0.00000000 +O NPT= 781 R0=0.00010000 RMT= 1.70 Z: 8.0 +LOCAL ROT MATRIX: 0.0000000 0.0000000 1.0000000 + 0.0000000 1.0000000 0.0000000 + -1.0000000 0.0000000 0.0000000 + 0 NUMBER OF SYMMETRY OPERATIONS diff --git a/doc/tutorials/srvo3.rst b/doc/tutorials/srvo3.rst index 82612720..578f2b39 100644 --- a/doc/tutorials/srvo3.rst +++ b/doc/tutorials/srvo3.rst @@ -14,18 +14,67 @@ rotational-invariant Slater interaction Hamiltonian (:download:`dft_dmft_cthyb_s `). The user has to adapt these scripts to his own needs. How to execute your script is described :ref:`here`. -The conversion will now be discussed in detail for the Wien2k and VASP packlages. For more details we refer to the :ref:`documentation `. +TODO: At the end of this section we also provide hdf5 archives for this example, including data as function of DMFT iterations. + +The conversion will now be discussed in detail for the Wien2k and VASP packages. For more details we refer to the :ref:`documentation `. -Wien2k setup and conversion -=========================== +Wien2k +====== -TODO +DFT setup +--------- -VASP setup and conversion -========================= +First, we do a DFT calculation, using the Wien2k package. As main input file we have to provide the so-called struct file :file:`SrVO3.struct`. We use the following: + +.. literalinclude:: images_scripts/SrVO3.struct + +Instead of going through the whole initialisation process, we can use :: + + init -b -vxc 5 -numk 5000 + +This is setting up a non-magnetic calculation, using the LDA and 5000 k-points in the full Brillouin zone. As usual, we start the DFT self consistent cycle by the Wien2k script :: + + run + +Wannier orbitals +---------------- + +As a next step, we calculate localised orbitals for the t2g orbitals. We use the same input file for :program:`dmftproj` as it was used in the :ref:`documentation`: + +.. literalinclude:: images_scripts/SrVO3.indmftpr + +To prepare the input data for :program:`dmftproj` we execute lapw2 with the `-almd` option :: + + x lapw2 -almd + +Then :program:`dmftproj` is executed in its default mode (i.e. without spin-polarization or spin-orbit included) :: + + dmftproj + +This program produces the necessary files for the conversion to the hdf5 file structure. This is done using +the python module :class:`Wien2kConverter `. A simple python script that initialises the converter is:: + + from triqs_dft_tools.converters.wien2k_converter import * + Converter = Wien2kConverter(filename = "SrVO3") + +After initializing the interface module, we can now convert the input +text files to the hdf5 archive by:: + + Converter.convert_dft_input() + +This reads all the data, and stores everything that is necessary for the DMFT calculation in the file :file:`SrVO3.h5`. + + +VASP +==== + +DFT setup +--------- + +Wannier orbitals +---------------- -TODO The DMFT calculation ==================== @@ -237,3 +286,9 @@ of the self energy and to stop (:emphasis:`fit_max_n`) before the noise fully ta If it is difficult to find a reasonable fit in this region you should increase your statistics (number of measurements). Keep in mind that :emphasis:`fit_min_n` and :emphasis:`fit_max_n` also depend on :math:`\beta`. + +Data for benchmark / comparison +------------------------------- + +TODO: We should provide two h5 files, one fore Wien2k and one for VASP, with selfs for, say, 15 DMFT iterations. Then people can check what they are doing. +