Ian Jauslin
summaryrefslogtreecommitdiff
blob: e7b48077ea55aeb76a53b9ed7ef38e6acc674e1a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
.Dd $Mdocdate: April 14 2015 $
.Dt numkondo 1.3.1
.Os
.Sh NAME
.Nm numkondo
.Nd A tool to iterate a flow equation numerically.
.Sh SYNOPSIS
.Nm
.Op Fl F
.Op Fl N Ar niter
.Op Fl D Ar tolerance
.Op Fl I Ar initial_condition
.Op Ar config_file
.Pp
.Nm
.Fl v
.Sh DESCRIPTION
.Nm
computes the numerical value of the iterates of a flow equation provided in its configuration file, starting from an initial condition provided in its configuration file.
.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 (derivation, exponentiation, evaluation and conversion to other formats).
.El
.Pp
as well as the following pre-processors, which generate configuration files for their associated model:
.Bl -bullet
.It
.Sy kondo_proprocess
:  Kondo model
.El
.Pp
.Sh COMMAND-LINE ARGUMENTS
.Bl -tag -width Ds
.It Fl N Ar niter
Number of iterations
.It Fl F
Only print the last step of the computation, with full precision. The output can be used as an initial condition for further iterations.
.It Fl D Ar tolerance
If this option is provided, any number smaller than
.Ar tolerance
is set to 0.
.It Fl I Ar initial_condition
Set the initial condition from the command-line (overrides the initial condition in the configuration file). The format is the same as the '#!initial_configuration' entry, see below.
.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 flow equation to iterate, the initial condition, and text labels for each running coupling constant.
.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 #!flow_equation
The flow equation to be iterated.
.Pp
The flow equation has the same format as the output of
.Sy meankondo.
That is, a flow equation is a ',' separated list whose elements are of the form
.D1 [% index] = equation
where index is a non-negative integer or
.D1 [C index] = equation
where index is is a positive integer; and equation is formatted as explained below. [% index] stands for the running coupling constant corresponding to index, and [C index] is a special type of running coupling constant, which correspond to terms in the effective potential that do not depend on the fields. The difference between [% ...] and [C ...] is that the latter are evaluated first, and may be used in the equation of [% ...].
.Pp
Equations are '+' separated lists whose elements are monomials. Each monomial is a sequence of numbers, rccs and denominators:
.Bl -bullet
.It
Numbers are enclosed between '(' and ')'. If there are several numbers in a monomial, then they are multiplied.
.It
rccs are non-negative indices enclosed between '[%' and ']'.
.It
Denominators are of the form [/C index^power] and correspond to 1/C_index^power. Note that the denominators [C index] are computed before they are divided, and therefore, the equation corresponding to [C index] may not contain any [/C index^power].
.El
.Pp
If the numerical factor of a monomial is 1, then it can be dropped. However, even if the numerical factor is a single integer, its '(' and ')' delimiters cannot be omitted.
.Pp
In addition, in order to deal with derivatives of flow equations, extra running coupling constants can be introduced by adding any number of 'd' before '%' and 'C'. For instance, a flow equation may contain
.D1 [dd% index] = ...
or
.D1 [dC index] = ...
and an equation may contain an rcc of the form
.D1 [d% index]
.Pp
In practice, [C index] is represented as [%-index], and derivatives offset an index by 1000000, so [d% index] is equivalent to [%1000000+index], [dC index] to [%-1000000-index], [dd% index] to [%2000000+index], and so forth... Indices must therefore be smaller than 1000000 if 'd' is used.
.Pp
Example:
.D1 [C1] = [%1] + (1/2)[%1][%2] ,
.D1 [%1] = [%1][/C1^1] + [%1][%1][%2][/C1^2] ,
.D1 [%2] = [%2][/C1^1]
and with a derivative:
.D1 [C1] = [%1] + (1/2)[%1][%2] ,
.D1 [%1] = [%1][/C1^1] + [%1][%1][%2][/C1^2] ,
.D1 [%2] = [%2][/C1^1] ,
.D1 [dC1] = [d%1] + (1/2)[d%1][%2] + (1/2)[%1][d%2],
.D1 [d%1] = [d%1][/C1^1] + (-1)[%1][dC1][/C1^2] + (2)[%1][d%1][%2][/C1^2] + [%1][%1][d%2][/C1^2] + (-2) [%1][%1][%2][dC1][C1^3],
.D1 [d%2] = [d%2][/C1^1] + (-1)[%2][dC1][/C1^2]
.Pp
.It Sy #!initial_condition
The initial condition for the iteration.
.Pp
The initial_condition entry is a ',' separated list whose elements are of the form
.D1 index:value
where index is that of the corresponding rcc and value is a double precision float. The index may contain 'C' and 'd' characters as in the '#!flow_equation' entry.
.Pp
Example:
.D1 1:1.0 , 2:2.3e-6 , d1:2.0
.Pp
Note that if
.Nm
is called with the '-F' flag, the corresponding output is formatted in such a way that it can be used as an initial condition for other iterations.
.Pp
.It Sy #!labels
Labels for the running coupling constants, used as headers to display the flow of the iteration.
.Pp
The labels entry is a ',' separated list whose elements are of the form
.D1 index:"label"
where index is the non-negative index of the corresponding rcc, and label is a string.
.Pp
Example:
.D1 1:"one" , 2:"two"
.El
.Pp
.Sh OUTPUT
Unless the '-F' flag is provided,
.Nm
prints the result of the iteration at each step to stdout.
.Pp
If the '-F' flag is provided,
.Nm
prints the last step of the iteration to stdout in a format that can be re-used as an initial condition for subsequent iterations.
.Pp
.Sh RETURN CODE
.Nm
returns 0 on success and -1 on error.
.Pp
.Sh SEE ALSO
.Sx meankondo Ns (1) ,
.Sx meantools Ns (1) ,
.Sx meantools-convert Ns (1) ,
.Sx kondo_preprocess Ns (1)
.Pp