NRG Ljubljana

NRG Ljubljana is a hybrid Mathematica and C++ framework for numerical renormalization group calculations on quantum impurity models. The repository contains the low-level iterative solver, the model initialization pipeline, a large collection of analysis tools, and a substantial regression and unit test suite.

This documentation set is aimed primarily at contributors and advanced users who need to understand how the repository is organized and how data flows through the code.

The Big Picture

The project has three major layers:

  1. nrginit/ prepares the initial Hamiltonian, basis, operators, and Wilson chain inputs.
  2. c++/ runs the iterative NRG calculation, truncation, operator recalculation, and optional DM-NRG or FDM workflows.
  3. tools/ provides standalone utilities for preprocessing and postprocessing data.

The input side is centered around the param and data files. The runtime side revolves around a parameter object, a symmetry backend, eigenspectra for each invariant subspace, operator containers, and iteration history stores.

Start Here

Documentation Scope

The goal of this MkDocs tree is to document the codebase as it exists in the repository:

  • subsystem boundaries
  • execution flow
  • main data structures
  • testing and maintenance workflow

It is not yet intended as a full scientific manual or end-user tutorial replacement for all legacy materials in doc/.