Hierarchical Kondo model

In this document, we discuss the meankondo configuration files and scripts used to study the hierarchical Kondo model, as defined in [G.Benfatto, G.Gallavotti, I.Jauslin, 2015]

Table of contents

Portability

The configuration files are compatible with meankondo versions 1.2 through 1.4. The scripts are bash scripts, and should run on most recent versions of bash.

Various options can be set in the 'scripts/kondo_options.sh' file.

Quickstart

We start out by giving the commands needed to compute the flow equation for the hierarchical Kondo model. We will describe the specificities of the configuration files and the scripts the computation relies on in the following sections. The current directory is assumed to be the 'kondo' directory, which contains the 'configs' and 'scripts' directories.

The model

We specify the hierarchical Kondo model by listing its internal and external fields and giving expressions for the propagator between them. We will not focus on why the model is defined as it is, since such details can be found in [G.Benfatto, G.Gallavotti, I.Jauslin, 2015]. The discussion below may look somewhat daunting, but its main purpose is merely to settle the notations, and may be skipped.

The flow equation of the hierarchical Kondo model is defined as the map relating \(\ell^{[m-1]}\) to \(\ell^{[m]}\) in $$ C^{[m]}\left(1+\sum_{n=0}^8\ell^{[m-1]}_{n}O_{n}^{[\le m-1]}\right)= \left<\prod_{\eta=\pm}\left(1+\sum_{n=0}^8\ell_n^{[m]}O_{n,\eta}^{[\le m]}\right)\right>_m $$ where $$ O^{[\le m]}_{0,\eta}:=\frac12\mathbf A^{[\le m]}_\eta\cdot\mathbf B^{[\le m]}_\eta,\quad O^{[\le m]}_{1,\eta}:=\frac12\mathbf B^{[\le m]}_\eta\cdot\mathbf B^{[\le m]}_\eta $$ $$ O^{[\le m]}_{2,\eta}:=\frac12\mathbf A^{[\le m]}_\eta\cdot\mathbf A^{[\le m]}_\eta,\quad O^{[\le m]}_{3,\eta}:=\frac12\left(\mathbf A^{[\le m]}_\eta\cdot\mathbf A^{[\le m]}_\eta\right)\left(\mathbf B^{[\le m]}_\eta\cdot\mathbf B^{[\le m]}_\eta\right) $$ $$ O^{[\le m]}_{4,\eta}:=\frac12\mathbf A^{[\le m]}_\eta\cdot\omega,\quad O^{[\le m]}_{5,\eta}:=\frac12\mathbf B^{[\le m]}_\eta\cdot\omega,\quad O^{[\le m]}_{6,\eta}:=\frac12\left(\mathbf A^{[\le m]}_\eta\cdot\omega\right)\left(\mathbf B^{[\le m]}_\eta\cdot\omega\right) $$ $$ O^{[\le m]}_{7,\eta}:=\frac12\left(\mathbf A^{[\le m]}_\eta\cdot\mathbf A^{[\le m]}_\eta\right)\left(\mathbf B^{[\le m]}_\eta\cdot\omega\right) O^{[\le m]}_{8,\eta}:=\frac12\left(\mathbf B^{[\le m]}_\eta\cdot\mathbf B^{[\le m]}_\eta\right)\left(\mathbf A^{[\le m]}_\eta\cdot\omega\right),\quad $$ in which \(\omega\in\mathbb R^3\) is of norm 1 and \(\mathbf A_\eta^{[\le m]}\) and \(\mathbf B_\eta^{[\le m]}\) are vectors whose \(j\)-th component, for \(j\in\{1,2,3\}\), is $$ A^{[\le m]j}_\eta:=\sum_{(\alpha,\alpha')\in\{\uparrow,\downarrow\}^2}\psi_{\alpha,\eta}^{[\le m]+}\sigma^j_{\alpha,\alpha'}\psi_{\alpha',\eta}^{[\le m]-},\quad B^{[\le m]j}_\eta:=\sum_{(\alpha,\alpha')\in\{\uparrow,\downarrow\}^2}\varphi_{\alpha,\eta}^{[\le m]+}\sigma^j_{\alpha,\alpha'}\varphi_{\alpha',\eta}^{[\le m]-} $$ in which \(\sigma^j\) is the \(j\)-th Pauli matrix; $$ \psi_{\alpha,\eta}^{[\le m]\pm}:=\frac1{\sqrt2}\psi_\alpha^{[\le m-1]\pm}+\psi_{\alpha,\eta}^{[m]\pm},\quad \varphi_{\alpha,\eta}^{[\le m]\pm}:=\frac1{\sqrt2}\phi_\alpha^{[\le m-1]\pm}+\varphi_{\alpha,\eta}^{[m]\pm}; $$ \(O_n^{[\le m-1]}\) is defined like \(O_{n,\eta}^{[\le m]}\) with \(\psi_{\alpha,\eta}^{[\le m]\pm}\) and \(\varphi_{\alpha,\eta}^{[\le m]\pm}\) replaced by \(\psi_\alpha^{[\le m-1]\pm}\) and \(\varphi_\alpha^{[\le m-1]\pm}\); and \(\left<\cdot\right>_m\) is the average over \(\psi_{\alpha,\eta}^{[m]\pm}\) and \(\varphi_{\alpha,\eta}^{[m]\pm}\).

There are therefore 16 internal fields: $$ \psi_{\alpha,\eta}^{[m]\pm},\quad \varphi_{\alpha,\eta}^{[m]\pm},\qquad \alpha\in\{\downarrow,\uparrow\},\ \eta\in\{-,+\}; $$ 8 external fields: $$ \psi_{\alpha}^{[\le m-1]\pm},\quad \varphi_{\alpha}^{[\le m-1]\pm},\qquad \alpha\in\{\downarrow,\uparrow\}; $$ and 3 super-external fields: $$ \omega_j,\qquad j\in\{1,2\} $$ (the condition that \(\omega\) be of norm 1 is implemented using the #!identities entry).

The propagator is defined as $$ \left<\psi_{\alpha',\eta'}^{[m]-}\psi_{\alpha,\eta}^{[m]+}\right>=\delta_{\alpha,\alpha'}\delta_{\eta,-\eta'}\eta,\quad \left<\varphi_{\alpha',\eta'}^{[m]-}\varphi_{\alpha,\eta}^{[m]+}\right>=\delta_{\alpha,\alpha'}\delta_{\eta,-\eta'}\eta,\quad \left<\psi_{\alpha',\eta'}^{[m]-}\varphi_{\alpha,\eta}^{[m]+}\right>= \left<\varphi_{\alpha',\eta'}^{[m]-}\psi_{\alpha,\eta}^{[m]+}\right>=0. $$

Preprocessing

The kondo_preprocess tool was written to simplify the writing of configuration files for this model, which is indeed quite intricate. Essentially, it defines the \(\mathbf A\) and \(\mathbf B\) variables, in terms of which the model can be easily specified.

More precisely, kondo_preprocess defines $$ {\tt A1}\equiv\mathbf A_+^{[\le m]},\quad {\tt A2}\equiv\mathbf A_-^{[\le m]},\quad {\tt a}\equiv\mathbf A^{[\le m-1]},\qquad {\tt B1}\equiv\mathbf B_+^{[\le m]},\quad {\tt B2}\equiv\mathbf B_-^{[\le m]},\qquad {\tt b}\equiv\mathbf B^{[\le m-1]}. $$ The #!input_polynomial and #!id_table entries of the configuration file can then make use of these variables as well as their scalar product, which greatly simplifies them (see the kondo_preprocessor(1) man page for details). The #!propagator entry is simplified as well by allowing the use of \(\tt A1\) as a shorthand for \(\psi_{\alpha,+}^{[m]}\) for any \(\alpha\) and similarly for the other variables, which reduces the number of entries of the propagator by a factor 2.

In addition, kondo_preprocessor generates the appropriate #!fields, #!symbols, #!identities and #!groups entries of the configuration file.

The configuration file therefore reduces to reduced #!propagator and #!input_polynomial entries, as well as a #!id_table entry that contains the expressions of \(O_{n}^{[\le m-1]}\) (remark: since \(\tt a\) was defined without a rescaling factor, the entries of the #!id_table must contain the appropriate rescaling factor (1, 2 or 4 depending on the number of \(\tt a\))).

The kondo script

The kondo script, located in the 'scripts' directory, was written to automate the steps of the computation of the flow equation and its iterates in the \(h=0\) case, in which \(\ell_n=0\) for \(n\ge4\). A comprehensive description of the usage of the kondo script can be found at the beginning of the 'scripts/kondo' file itself.

The first manipulation which is automated by the kondo script is the writing of the flow equation to a new configuration file which can be read to perform numerical iterations of the flow without re-computing the equation. To that end, a new configuration file is created in the same directory as the previous configuration files (which must therefore be writable by the user running the script), containing the flow equation as well as the entries required by numkondo. The name of the new file is obtained by removing '.pre' from the initial configuration file and appending '_num', e.g. 'kondo.pre' becomes 'kondo_num'.

Second, the initial condition for the effective potential is expressed in terms of \(\alpha^{[0]}\): $$ \exp\left(\sum_{n=0}^3\alpha_n^{[0]}O_n^{[\le 0]}\right) =1+\sum_{n=0}^3\ell_n^{[0]}O_n^{[\le 0]} $$ so the relation between \(\alpha^{[0]}\) and \(\ell^{[0]}\) must be computed before starting the numerical iteration, via the meantools exp tool. This is handled by the kondo script.

The kondo_susceptibility script

The kondo_susceptibility script, located in the 'scripts' directory, was written to automate the steps of the computation of the flow equation and its iterates, as well as its derivatives with respect to \(h\) and the magnetic susceptibility. A comprehensive description of the usage of the kondo_susceptibility script can be found at the beginning of the 'scripts/kondo_susceptibility' file itself.

The first manipulation which is automated by the kondo_susceptibility script is the writing of the flow equation and its two first derivatives to a new configuration file which can be read to perform numerical iterations of the flow without re-computing the equation. To that end, a new configuration file is created in the same directory as the previous configuration files (which must therefore be writable by the user running the script), containing the flow equation as well as the entries required by numkondo. The name of the new file is obtained by removing '.pre' from the initial configuration file and appending '_num', e.g. 'kondo_susc.pre' becomes 'kondo_susc_num'.

Second, the initial condition for the effective potential is expressed in terms of \(\alpha^{[0]}\): $$ \exp\left(\sum_{n=0}^8\alpha_n^{[0]}O_n^{[\le 0]}\right) =1+\sum_{n=0}^8\ell_n^{[0]}O_n^{[\le 0]} $$ so the relation between \(\alpha^{[0]}\) and \(\ell^{[0]}\) and its derivatives must be computed before starting the numerical iteration, via the meantools exp tool. This is handled by the kondo_susceptibility script.

Third, the kondo_susceptibility script appends two extra equations to the flow equation which can be used to compute the magnetization and susceptibility. These equations are [%50] = (2)[%50] + [dC1][/C1^1]
[%51] = (2)[%51] + [C1][ddC1][/C1^2] + [dC1][dC1][/C1^2]
so that the magnetization \(m(\beta)\) and susceptibility \(\chi(\beta)\) can be computed from [%50] and [%51] via $$ m(\beta)=\frac1\beta{\tt [\%50]},\quad \chi(\beta)=\frac1\beta{\tt [\%51]}. $$