Örs Legeza
Cătălin Paşcu Moca
Anna Tóth
Ireneusz Weymann
Gergely Zaránd
What
is Flexible DM-NRG?
The
numerical
renormalization group method (NRG) was first introduced by Wilson in
the
late 70's to solve the Kondo problem. Later NRG became one of the most
popular tools to solve quantum impurity problems: It can be used to
compute dynamical correlation functions as well as thermodynamic
quantities, and very recently it has also been used to evaluate
time-dependent correlation functions.
To perform efficient NRG calculations, one needs to exploit the
symmetries
as much as possible. Furthermore, for more delicate problems it is also
essential to use a density matrix approach combined with recent
spectral sum-conserving methods.
The DM-NRG code available here is one of the most efficient NRG codes
and it is FREE for everyone. This code combines the spectral
sum-conserving methods of Weichselbaum and von Delft and
of Peters, Pruschke and Anders (both relying upon the complete
basis set construction of Anders and Schiller) with the use of
non-Abelian
symmetries in a flexible manner: Essentially any non-Abelian
symmetry can be taught to the code, and any number of such symmetries
can be used throughout the computation for any density of states, and
to compute any local operators' correlation function's real and
imaginary parts or any thermodynamical expectation value. The code
works both at zero and finite temperatures.
This is the first release of the code. It will be continually developed
and
maintained, with a new release about once a year.
Features
Zero and finite temperature calculations of the spectral
function of any pair of local operators.
Dynamical use of any number of symmetries.
Static averages of various local operators.
Perform conventional NRG as well as Density
Matrix NRG with the full set of Anders-Schiller basis.
Single input file and input file examples. Examples are
available for Anderson as well as
Kondo Hamiltonians in the presence of U(1) and spin
and charge SU(2)
symmetries.
Mathematica
utility to construct your own input file for your own problem.
Calculations for flat density of states as well as any
energy-dependent density of states (using arbitrary
precision routines).
Utility for spectral function evaluation and Hilbert
transform is provided.
Utility for computing the on-site energies and the hopping
parameters for a user-defined density of states.
License,
Registration, and CreditLicense,
Registration
Flexible
DM-NRG is
distributed under the GNU LGPL.
This license makes the code free to use, share, and improve, and allows
you to pass on the resulting code. The license gives freedom, but also
sets
firm restrictions on the use with non-free programs. Registration
is not necessary to download and use the code, you can just go ahead
and click on the link below to download it. However, registration
will help us to keep track of the usage of this code. Also, if you
register, you have an option to get automatic alerts on updates and bug
fixes.
To register, please, fill in the form below (all the fields are
required)
Credit
Although Flexible DM-NRG is a free program, we would appreciate if you
could cite our web site and/or
the following paper when publishing results obtained through
Flexible DM-NRG code or its modified version:
A. I. Toth, C. P. Moca, O. Legeza, and G. Zarand, Phys. Rev. B 78, 245109 (2008) (also cond-mat/0802.4332): The
formalism described in this paper made it possible to construct this
Flexible DM-NRG code.
In case of an oral/poster presentation, where you show results
obtained with the present code, we would also be glad if you could
advertise the code and display our web address, http://www.phy.bme.hu/~dmnrg.
If you post some results on your home page that you obtained
with the present code, please, also include a link to our web address
so that more
people become aware of this opportunity.
If you have a manuscript/paper in which you present results
obtained with this code, send us an e-mail so that we can add a link on
this page to your work. Documentation/Manual
User manual of Flexible DM-NRG code in the pdf format is available for
download here.
This manual gives you only a basic introduction to NRG. To learn more
about NRG, please refer to
the following papers:
To learn the basic NRG idea probably the best reference is
Wilson's original NRG paper:
You need to have root
privileges to properly install these libraries.
A technical advice: it is better to install the libraries as rpm
packages, although for that you also need root privileges. If you have
an
x86_64 machine, install only the 64 bit libraries and link to them.
Combining the
32 and 64 bits libraries is not recommended, because you may run into
troubles when trying to link them to each other.
Advanced installation
We have tested the code by compiling it also with icc (Intel compiler)
and linked with mkl_lapack libraries from Intel. Creating the proper
configuration (make.sys file) needs some extra effort,
but the gain in the speed deserves it. You could also
link to optimized lapack and blas libraries to speed up the code. Installation
instructions
1. Download the file using the link provided under "Licence,
Registration, and Credit".
2. Copy the downloaded file in a folder at your wish.
3.
Unzip the package by
running the following command in a shell:
tar xvzf
flexible-dm-nrg-1.0.0.tgz
4.
Install the libraries listed in the Prerequisites
section.
5.
Compile the code:
In a shell console in the main folder of the code run
./configure
make
install
6.
Run the code with
./fnrg
using an input file provided
in the package to make sure that everything works.
The input files are located in
the ./input_file
folder that comes with the package.
To calculate the spectral
functions, run
./sfb
7.
Check the output in the ./results
folder of the main directory of the code.
8.
To analyze the finite size spectrum, run ./es
9. To improve the speed of the code, you can use other
compilers and link to optimized lapack/blas libraries.
To do this, consult the manual.
Improving
Flexible DM-NRG
Since Flexible DM-NRG is a free software, anybody can improve it and
pass on the results, as
permitted by the GNU
LGPL.
If you have written an improvement and you want to make it publicly
available, please send it
to dmnrg@neumann.phy.bme.hu
so
that it may be included in the next public release. Of course, a proper
credit will be given to you and your name will also appear on this page
in case your work is included in the package. Before starting to
work on an improvement, please write to the same address to make
sure your work is not being done by somebody else at the same time. An
up-to-date list of the improvements in progress will be posted on this
web site as
soon as possible.
Contact,
Reporting
BUGS and Comments
Before sending us a bug-report, please, first have a look here
on how to report bugs. The proper
address for bug reports is dmnrg@neumann.phy.bme.hu
(use subject BUG REPORT). For any other comments/questions related to
the code, please, do not hesitate to contact us by using the same
e-mail address.