Source code for fcdmft.utils.write

import numpy as np

[docs] def write_dos(filename, freqs, ldos, occupancy=None): spin = ldos.shape[0] if spin == 1: with open(filename+'.dat', 'w') as f: if occupancy: f.write('# n = %0.12g\n'%(occupancy)) for w,freq in enumerate(freqs): f.write('%0.12g %.12g\n'%(freq, ldos[0][w])) else: with open(filename+'.dat', 'w') as f: if occupancy: f.write('# n = %0.12g\n'%(occupancy)) for w,freq in enumerate(freqs): f.write('%0.12g %.12g %.12g %.12g\n'%(freq, ldos[0][w], ldos[1][w], 0.5*(ldos[0][w]+ldos[1][w])))
[docs] def write_gf_to_dos(filename, freqs, gf): ldos = -1./np.pi * np.trace(gf.imag,axis1=1,axis2=2) spin = ldos.shape[0] if spin == 1: with open(filename+'.dat', 'w') as f: for w,freq in enumerate(freqs): f.write('%0.12g %.12g\n'%(freq, ldos[0][w])) else: with open(filename+'.dat', 'w') as f: for w,freq in enumerate(freqs): f.write('%0.12g %.12g %.12g %.12g\n'%(freq, ldos[0][w], ldos[1][w], 0.5*(ldos[0][w]+ldos[1][w])))
[docs] def write_sigma(filename, freqs, sigma): sig = np.trace(sigma.imag,axis1=1,axis2=2) spin = sig.shape[0] if spin == 1: with open(filename+'.dat', 'w') as f: for w,freq in enumerate(freqs): f.write('%0.12g %.12g\n'%(freq, sig[0][w])) else: with open(filename+'.dat', 'w') as f: for w,freq in enumerate(freqs): f.write('%0.12g %.12g %.12g %.12g\n'%(freq, sig[0][w], sig[1][w], 0.5*(sig[0][w]+sig[1][w])))
[docs] def write_sigma_elem(filename, freqs, sigma): spin = sigma.shape[0] if spin == 1: with open(filename+'.dat', 'w') as f: for w,freq in enumerate(freqs): f.write('%0.12g %0.12g %.12g\n'%(freq, sigma[0][w].real, sigma[0][w].imag)) else: with open(filename+'.dat', 'w') as f: for w,freq in enumerate(freqs): f.write('%0.12g %0.12g %.12g %.12g %.12g\n'%(freq, sigma[0][w].real, sigma[0][w].imag, sigma[1][w].real, sigma[1][w].imag))