mirror of
https://github.com/triqs/dft_tools
synced 2024-12-21 11:53:41 +01:00
Add doc to VASP converter concerning block structure
This commit is contained in:
parent
2af2bac8d6
commit
ba0cfa9013
@ -183,7 +183,7 @@ will be stored in a separate subgroup in the hdf5 file, called `dmft_output`.
|
||||
Note that this script performs 15 DMFT cycles, but does not check for
|
||||
convergence. Of course, it would be possible to build in convergence criteria.
|
||||
A simple check for convergence can be also done if you store multiple quantities
|
||||
of each iteration and analyze the convergence by hand. In general, it is advisable
|
||||
of each iteration and analyse the convergence by hand. In general, it is advisable
|
||||
to start with a lower statistics (less measurements), but then increase it at a
|
||||
point close to converged results (e.g. after a few initial iterations). This helps
|
||||
to keep computational costs low during the first iterations.
|
||||
|
@ -263,6 +263,15 @@ For the conversion to a h5 file we use on the python level (in analogy to the Wi
|
||||
Converter = VaspConverter(filename = filename)
|
||||
Converter.convert_dft_input()
|
||||
|
||||
As usual, the resulting h5-file can then be used with the SumkDFT class.
|
||||
|
||||
Note that the automatic detection of the correct blockstructure might fail for VASP inputs.
|
||||
This can be circumvented by increase the :class:`SumkDFT <dft.sumk_dft.SumkDFT>` threshold to e.g.::
|
||||
|
||||
SK.analyse_block_structure(threshold = 1e-4)
|
||||
|
||||
However, only do this after a careful study of the density matrix and the dos in the wannier basis.
|
||||
|
||||
A general H(k)
|
||||
--------------
|
||||
|
||||
@ -445,7 +454,7 @@ In our `Pnma`-LaVO\ :sub:`3` example, for instance, we could use::
|
||||
where the ``x=-1,1,0`` option indicates that the V--O bonds in the octahedra are
|
||||
rotated by (approximatively) 45 degrees with respect to the axes of the `Pbnm` cell.
|
||||
|
||||
The converter will analyze the matrix elements of the local Hamiltonian
|
||||
The converter will analyse the matrix elements of the local Hamiltonian
|
||||
to find the symmetry matrices `rot_mat` needed for the global-to-local
|
||||
transformation of the basis set for correlated orbitals
|
||||
(see section :ref:`hdfstructure`).
|
||||
|
@ -58,7 +58,7 @@ class SumkDFT(object):
|
||||
If True, the local Green's function matrix for each spin is divided into smaller blocks
|
||||
with the block structure determined from the DFT density matrix of the corresponding correlated shell.
|
||||
|
||||
Alternatively and additionally, the block structure can be analyzed using :meth:`analyse_block_structure <dft.sumk_dft.SumkDFT.analyse_block_structure>`
|
||||
Alternatively and additionally, the block structure can be analysed using :meth:`analyse_block_structure <dft.sumk_dft.SumkDFT.analyse_block_structure>`
|
||||
and manipulated using the SumkDFT.block_structre attribute (see :class:`BlockStructure <dft.block_structure.BlockStructure>`).
|
||||
dft_data : string, optional
|
||||
Name of hdf5 subgroup in which DFT data for projector and lattice Green's function construction are stored.
|
||||
|
@ -5,7 +5,7 @@ file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/${all_h5_files} DESTINATION ${CMAKE_CURREN
|
||||
FILE(COPY SrVO3.pmat SrVO3.struct SrVO3.outputs SrVO3.oubwin SrVO3.ctqmcout SrVO3.symqmc SrVO3.sympar SrVO3.parproj SrIrO3_rot.h5 hk_convert_hamiltonian.hk LaVO3-Pnma_hr.dat LaVO3-Pnma.inp DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
# List all tests
|
||||
set(all_tests wien2k_convert hk_convert w90_convert sumkdft_basic srvo3_Gloc srvo3_transp sigma_from_file blockstructure analyze_block_structure_from_gf analyze_block_structure_from_gf2)
|
||||
set(all_tests wien2k_convert hk_convert w90_convert sumkdft_basic srvo3_Gloc srvo3_transp sigma_from_file blockstructure analyse_block_structure_from_gf analyse_block_structure_from_gf2)
|
||||
|
||||
foreach(t ${all_tests})
|
||||
add_test(NAME ${t} COMMAND python ${CMAKE_CURRENT_SOURCE_DIR}/${t}.py)
|
||||
|
@ -32,13 +32,13 @@ G_new = SK.analyse_block_structure_from_gf(G)
|
||||
# the new block structure
|
||||
block_structure2 = SK.block_structure.copy()
|
||||
|
||||
with HDFArchive('analyze_block_structure_from_gf.out.h5','w') as ar:
|
||||
with HDFArchive('analyse_block_structure_from_gf.out.h5','w') as ar:
|
||||
ar['bs1'] = block_structure1
|
||||
ar['bs2'] = block_structure2
|
||||
|
||||
# check whether the block structure is the same as in the reference
|
||||
with HDFArchive('analyze_block_structure_from_gf.out.h5','r') as ar,\
|
||||
HDFArchive('analyze_block_structure_from_gf.ref.h5','r') as ar2:
|
||||
with HDFArchive('analyse_block_structure_from_gf.out.h5','r') as ar,\
|
||||
HDFArchive('analyse_block_structure_from_gf.ref.h5','r') as ar2:
|
||||
assert ar['bs1'] == ar2['bs1'], 'bs1 not equal'
|
||||
a1 = ar['bs2']
|
||||
a2 = ar2['bs2']
|
@ -3,7 +3,7 @@ from sumk_dft import SumkDFT
|
||||
import numpy as np
|
||||
from pytriqs.utility.comparison_tests import assert_block_gfs_are_close
|
||||
|
||||
# here we test the SK.analyze_block_structure_from_gf function
|
||||
# here we test the SK.analyse_block_structure_from_gf function
|
||||
# with GfReFreq, GfReTime
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user