meankondo/man/kondo_preprocess.1
Ian Jauslin 167980ea43 Update to v1.5.
The update to version 1.5 is rather substantial, and introduces some minor
  backward-incompatibilities:
    * The header "#!symbols" has been replaced by "#!virtual_fields"
    * Multiplying polynomials using the '*' symbol is no longer supported (or,
      rather, the symbolic capabilities of meankondo were enhanced, and the
      syntax has been changed).
    * 'meantools exp' has been removed (its functionality is now handled by
      other means)
    * 'meantoolds derive' has been replaced by 'meantools differentiate'

  * The symbolic capabilities were enhanced: polynomials can now be
    multiplied, added, exponentiated, and their logarithms can be taken
    directly in the configuration file.

  * The flow equation can now be processed after being computed using the
    various "#!postprocess_*" entries.

  * Deprecated kondo_preprocess.

  * Compute the mean using an LU decomposition if possible.

  * More detailed checks for syntax errors in configuration file.

  * Check that different '#!group' entries are indeed uncorrelated.

  * New flags in meankondo: '-p' and '-A'.

  * New tool: meantools expand.

  * Improve conversion to LaTeX using meantools-convert

  * Assign terms randomly to different threads.

  * Multiple bug fixes
2022-06-14 09:26:07 +02:00

194 lines
6.1 KiB
Groff

.Dd $Mdocdate: February 3 2016 $
.Dt kondo_preprocess 1.5
.Os
.Sh NAME
.Nm kondo_preprocess
.Nd A pre-processor to generate configuration files for
.Sy meankondo
for the Kondo model
.Sh SYNOPSIS
.Nm
.Op Fl d Ar dimension
.Op Ar config_file
.Pp
.Nm
.Fl v
.Sh DEPRECATION NOTICE
The use of
.Nm
is deprecated as of
.Sy meankondo
v1.5.
.Pp
Similar functionality can be obtained rather easily using the enhanced symbolic capabilities introduced in v1.5, which are more flexible than
.Nm .
.Pp
.Sh DESCRIPTION
.Nm
generates a configuration file to be read by
.Sy meankondo
for the Kondo model. It generates the '#!fields', '#!virtual_fields', '#!identities', '#!groups', '#!propagator', '#!input_polynomial' and '#!id_table' entries from special '#!propagator', '#!input_polynomial' and '#!id_table' entries, which are much more synthetic than those needed for the Kondo model.
.Pp
The quantities in the configuration file are expressed in terms of the observables A and B, which we do not define here, as well as the magnetic field h.
.Pp
.Nm
is part of a set of tools to compute and manipulate Fermionic hierarchical flows:
.Bl -bullet
.It
.Sy meankondo
: computes flow equations for hierarchical Fermionic models
.It
.Sy numkondo
: numerical evaluation of flow equations.
.It
.Sy meantools, meantools-convert
: perform various operations on flow equations (differentiation, products, sums, exponentials and logarithms of flow equations, evaluation and conversion to other formats).
.El
.Pp
.Sh COMMAND-LINE ARGUMENTS
.Bl -tag -width Ds
.It Fl d Ar dimension
The dimension of the field theory for the Kondo model (defaults to 2), including imaginary time (2 if the Fermionic chain is not neglected, 1 if it is). This parameter is used to determine how many boxes contribute to each scale in the hierarchical model: id the dimension is 2, then there are 4 boxes, whereas if it is 1, then there are 2.
.It Fl v
Print version information and exit.
.El
.Pp
.Sh CONFIGURATION FILE
.Nm
reads a configuration file, that can either be passed as a command line argument or to stdin, which specifies the model for which to compute the flow equation.
.Pp
A configuration file is a list of entries, separated by a '&' character, each of which has a title (or header), which is preceded by '#!'. Note that '#!' must be at the beginning of a line in order to be read correctly.
.Pp
Whenever the '#' character is encountered, the rest of the line is treated as a comment and ignored (unless it is followed by '!').
.Pp
As a general rule, spaces and line breaks in the entries of the configuration file are ignored, so they may be used at the user's discretion. The few entries that require that no extra line breaks be inserted are explicitly mentioned below.
.Pp
.Nm
recognizes the following entries (unless explicitly mentioned, the entries below are mandatory) (entries may be provided in any order) (any extra entries in the configuration file are ignored):
.Bl -tag -width Ds
.It Sy #!input_polynomial
The polynomial whose mean we wish to compute in order to calculate the flow equation.
.Pp
The format of the polynomial is similar to that in
.Sx meankondo Ns (1) ,
up to the following differences.
.Bl -bullet
.It
The fields can be specified as scalar products of A's and B's. For each n in {1,...,dimension},
.Nm
defines An and Bn, as well as virtual fields for scalar products of the form
.D1 [f An.An]
.D1 [f Bn.Bn]
.D1 [f An.Bn]
.D1 [f An.h]
.D1 [f Bn.h]
In addition, a vector product virtual field is defined for (AnxBn).h :
.D1 [f AnxBn.h]
.Pp
.It
In addition,
.Nm
defines external fields for A and B, denoted by a and b. They can be used as fields in the input polynomial using the syntax
.D1 <a.a>
.D1 <b.b>
.D1 <a.b>
.D1 <a.h>
.D1 <b.h>
.D1 <axb.h>
.Pp
.It
Scalar products of A's and B's may also be specified using the '<#.#>' syntax:
.D1 <An.An>
.D1 <Bn.Bn>
.D1 <An.Bn>
.D1 <An.h>
.D1 <Bn.h>
.Pp
The difference between '[f #.#]' and '<#.#>' is that the former corresponds to a '#!virtual_fields' entry whereas the latter is replaced by its corresponding polynomial when
.Nm
reads it (see
.Sx meankondo Ns (1)).
.Pp
.It
A vector 't=(t1,t2,t3)' of Pauli matrices (satisfying the Pauli commutation relations [ti,tj]=\\delta_{i,j}1+\\epsilon_{i,j,k}tk) is introduced as a non-commuting object. It can be used in scalar producs:
.D1 <An.t>
.D1 <Bn.t>
.D1 <t.h>
.D1 <a.t>
.D1 <b.t>
.Pp
Note that the '<#,#>' must be used since these scalar products do not commute whereas '#!virtual_fiields' entries must commute (see
.Sx meankondo Ns (1)).
.Pp
.It
Furthermore, in order to simplify writing products of polynomials over each box index, if the polynomial contains a '%', then
.Nm
multiplies the polynomial by itself as many times as there are boxes (2^dimension times), replacing '%' with the appropriate box index. For example, if dimension=1
.D1 '[fA%.A%]+[fB%.B%]'
is equivalent to
.D1 '[fA1.A1]+[fB1.B1] * [fA2.A2]+[fB2.B2]'.
.El
.Pp
Example:
.D1 (1) + (1/2)[l1][fA1.A1] + (1/2)[l2][fB1.h]
.D1 * (1) + (1/2)[l2][fA2.A2] +(1/2)[l2][fB2.h]
.Pp
.It Sy #!id_table
The idtable used to identify the running coupling constants.
.Pp
The idtable has the same syntax as that in
.Sx meankondo Ns (1) ,
in which the polynomial can use the fields
.D1 <a.a>
.D1 <b.b>
.D1 <a.b>
.D1 <a.h>
.D1 <b.h>
.D1 <axb.h>
.D1 <t.h>
.D1 <a.t>
.D1 <b.t>
defined above.
.Pp
Example:
.D1 1:(1/2)<a.a>, 2:(2)<b.h>
.Pp
.It Sy #!propagator
The propagator of the model.
.Pp
The propagator syntax differs from
.Sx meankondo Ns (1) ,
in that the field indices are specified using An and Bn.
.Pp
Example:
.D1 A1;A2: 1 , A2;A1: -1 , B1;B2: s{-1} , B2;B1: (-1)s{-1}
.Pp
.It Sy extra entries
If there is a '#!virtual_fields' or an '#!identities' entry in the configuration file, then they are appended to the end of those entries in the new configuration file.
.Pp
Any other entry is appended to the new configuration file. This can be useful to pipe the output to tools other than
.Sy meankondo
(e.g.
.Sy meantools ) .
.Pp
.Sh OUTPUT
.Nm
prints the configuration file to stdout.
.Pp
The output of
.Nm
can be piped into
.Sy meankondo
directly.
.Pp
.Sh RETURN CODE
.Nm
returns 0 on success and -1 on error.
.Pp
.Sh SEE ALSO
.Sx meankondo Ns (1) ,
.Sx numkondo Ns (1) ,
.Sx meantools Ns (1) ,
.Sx meantools-convert Ns (1)
.Pp