3
0
mirror of https://github.com/triqs/dft_tools synced 2024-12-21 11:53:41 +01:00

New test added for build_sigma_from_txt.py

This commit is contained in:
Manuel Zingl 2015-08-21 12:24:54 +02:00
parent 9935aa552d
commit 61747745f4
4 changed files with 36 additions and 0 deletions

View File

@ -1,3 +1,7 @@
import numpy
import string
from pytriqs.gf.local import *
def read_fortran_file (filename):
""" Returns a generator that yields all numbers in the Fortran file as float, one by one"""
import os.path
@ -17,6 +21,7 @@ def constr_Sigma_real_axis(self, filename, hdf=True, hdf_dataset='SigmaReFreq',n
if (len(ol)==1): # if blocks are of size one
Fname = filename+'_'+bl+'.dat'
else:
print 'TEST'
Fname = filename+'_'+bl+'/'+str(ol[0])+'_'+str(ol[0])+'.dat'
R = read_fortran_file(Fname)

View File

@ -7,3 +7,4 @@ triqs_add_test_hdf(hk_convert " -p 1.e-6" )
triqs_add_test_hdf(sumkdft_basic " -d 1.e-6" )
triqs_add_test_hdf(srvo3_Gloc " -d 1.e-6" )
triqs_add_test_hdf(srvo3_transp " -d 1.e-6" )
triqs_add_test_hdf(sigma_from_file " -d 1.e-6" )

Binary file not shown.

30
test/sigma_from_file.py Normal file
View File

@ -0,0 +1,30 @@
from pytriqs.archive import *
from pytriqs.gf.local import *
from pytriqs.applications.dft.sumk_dft_tools import *
from pytriqs.applications.dft.build_sigma_from_txt import *
import numpy as np
# Read self energy from hdf file
ar = HDFArchive('SrVO3_Sigma.h5','r')
Sigma_hdf = ar['dmft_transp_input']['Sigma_w']
# Save self energy to txt files
for name, s in Sigma_hdf:
mesh = np.array([p for p in s.mesh]).reshape(-1,1).real
re_data = s.data.real.reshape((s.data.shape[0],-1))
im_data = s.data.imag.reshape((s.data.shape[0],-1))
mesh_a_data = np.hstack((mesh,re_data,im_data))
np.savetxt('Sigma_' + name + '.dat', mesh_a_data)
# Read self energy from txt files
SK = SumkDFTTools(hdf_file = 'SrVO3.h5', use_dft_blocks = True)
Sigma_txt = constr_Sigma_real_axis(SK, 'Sigma', hdf=False, n_om=101, orb=0)
SK.put_Sigma(Sigma_imp = [Sigma_txt])
SK.hdf_file = 'sigma_from_file.output.h5'
SK.save(['Sigma_imp_w'])
if ((Sigma_txt - Sigma_hdf).real < 1e-6) & ((Sigma_txt - Sigma_hdf).imag < 1e-6):
print 'Conversion: HDF -> TRIQS -> TXT -> TRIQS successful!'