josefkaufmann / ana_cont Goto Github PK
View Code? Open in Web Editor NEWPackage for analytic continuation of many-body Green's functions
License: MIT License
Package for analytic continuation of many-body Green's functions
License: MIT License
Dear developers,
recently I modified the ana_cont package to calculate the deconvolution of surface density of states from differential conductance data measured using superconducting STM tip (see supplement of arXiv:2408.05115 for details). During the modifications, I found two ways to speed up the calculation that you might consider worth implementing:
setting optimize=True
in np.einsum()
in solvers.py
while calculating W2
, M2
, Evi
and d2chi2
matrices speeds up significantly (up to 5x on my PC) the matrix operations without any lose of precision.
W3
and M3
matrices are not stored in C order. Corrrecting the order speeds up significantly the performance of compute_f_J_diag
and compute_f_J_offdiag
functions.
self.W3 = np.array(self.W2[:, None, :] * (self.V_svd[None, :, :]).transpose((0, 2, 1)),order='C')
self.M3 = np.array(self.M2[:, None, :] * (self.V_svd[None, :, :]).transpose((0, 2, 1)),order='C')
Dear developer, following the recommended installation path I upgraded my python libraries (they currently update to PyQt5-Qt5-5.15.14 PyQt5-sip-12.15.0 cython-3.0.10 h5py-3.11.0 matplotlib-3.9.1 pyqt5-5.15.11 scipy-1.14.0 wheel-0.43.0), installed the code via pip and ran it in a Jupyter notebook.
I got a 'module scipy.integrate doesn't have an attribute simps' error - full error message in attachement.
The fix seems to be to change 'simps' to 'simpson'.
I would like to suggest the following possibility: offer the user the option to not supply the AnalyticContinuationProblem constructor with data for the im_axis
parameter. In case this parameter is not supplied, the AnalyticContinuationProblem would build it in the most straightforward way, using
im_data
array for the number n of imaginary frequencieskernel_mode
to determine if these frequencies are bosonic or fermionicbeta
I think it would simplify further the inputs, and would correspond to most of the use cases?
Line 701 in solvers.py has an error. I believe it should read
result_dict.update({"probability": prob})
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.