diff options
author | Ian Jauslin <ian.jauslin@roma1.infn.it> | 2015-06-14 00:52:45 +0000 |
---|---|---|
committer | Ian Jauslin <ian.jauslin@roma1.infn.it> | 2015-06-14 00:52:45 +0000 |
commit | aa0f3ae2988d372b190b9bde2e75a6d17e744e93 (patch) | |
tree | 14482245c2fca27fcdad3078e97d0871352d52a7 /man |
Initial commitv1.2
Diffstat (limited to 'man')
-rw-r--r-- | man/kondo_preprocess.1 | 163 | ||||
-rw-r--r-- | man/meankondo.1 | 221 | ||||
-rw-r--r-- | man/meantools-convert.1 | 137 | ||||
-rw-r--r-- | man/meantools.1 | 164 | ||||
-rw-r--r-- | man/numkondo.1 | 157 |
5 files changed, 842 insertions, 0 deletions
diff --git a/man/kondo_preprocess.1 b/man/kondo_preprocess.1 new file mode 100644 index 0000000..cb37cd3 --- /dev/null +++ b/man/kondo_preprocess.1 @@ -0,0 +1,163 @@ +.Dd $Mdocdate: April 14 2015 $ +.Dt kondo_preprocess 1.2 +.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 DESCRIPTION +.Nm +generates a configuration file to be read by +.Sy meankondo +for the Kondo model. It generates the '#!fields', '#!symbols', '#!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 (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 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 symbols 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 symbol 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 +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> +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 '#!symbols' 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 diff --git a/man/meankondo.1 b/man/meankondo.1 new file mode 100644 index 0000000..ea4814b --- /dev/null +++ b/man/meankondo.1 @@ -0,0 +1,221 @@ +.Dd $Mdocdate: April 13 2015 $ +.Dt meankondo 1.2 +.Os +.Sh NAME +.Nm meankondo +.Nd A tool to compute renormalization group flows for Fermionic hierarchical models +.Sh SYNOPSIS +.Nm +.Op Fl t Ar threads +.Op Fl C +.Op Ar config_file +.Pp +.Nm +.Fl v +.Sh DESCRIPTION +.Nm +computes the renormalization group flow equations for Fermionic hierarchical models, which should be defined in the configuration file provided on the command line, following the syntax detailed below. +.Pp +The flow equation is computed by calculating the mean of a polynomial of fields and running coupling constants using the Wick rule and a propagator provided in the configuration file. The running coupling constants are then identified in the resulting polynomial using an idtable provided in the configuration file. +.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 (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 t Ar threads +The number of threads to use for the computation. +.It Fl C +Format the ouptput so it can be piped to +.Sy numkondo , +that is, instead of printing the flow equation, print a full configuration file containing the flow equation as well as all the other entries of the configuration file that do not pertain to the computation of the flow equation. +.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 #!fields +A list of the fields of the model. +.Pp +The fields entry contains 4 lines which start with 'i:', 'x:', 'h:' and 'f:'. Each of these is followed by a ',' separated list of field indices, which are positive integers. +.Bl -bullet +.It +The indices following 'i' correspond to internal fields, which are integrated out using the Wick rule and the propagator provided in the '#!propagator' entry. Each internal field is associated a conjugate field, whose index is the opposite of the field's index (e.g. 'i:101' defines a field whose index is -101) +.It +The indices following 'x' correspond to external fields that are associated conjugate field (e.g. 'x:100' defines a field whose index is -100). External indices may not appear as internal indices. +.It +The indices following 'h' correspond to external fields that are not associated a conjugate field. External indices may not appear as internal indices. +.It +The 'f' line specifies which of the internal and external indices are Fermions, i.e. which fields anti-commute. The fields appearing in the 'f' line should also either appear in the 'i' or 'x' line. WARNING: for the moment, only cases in which all of the internal fields are Fermions are supported. +.El +.Pp +.Em Line breaks are not ignored in this entry. +.Pp +Example: +.D1 i:101,102,201,202 +.D1 x:100,200 +.D1 h:301,302,303 +.D1 f:100,101,102 +.It Sy #!propagator +The propagator of the model. +.Pp +The propagator entry is a ',' separated list whose elements are of the form +.D1 index1;index2: polynomial +where index1 and index2 are internal indices, and polynomial is a polynomial (see the POLYNOMIALS section below for information on how to format polynomials). The polynomial must not depend on the internal fields. Note that a number is a special type of polynomial, so propagators with numerical entries are handled by +.Nm +just as easily as propagators with symbolic entries. Such an entry means that +.D1 <psi_{index1}^-psi_{index2}^+> = polynomial. +.Pp +Example: +.D1 101;102: 1 , 102;101: -1 , 201;202: s{-1} + (-1)[l10] , 202;201: (-1)s{-1} + [l10] +.It Sy #!symbols +Symbolic variables used as shortcuts for more complicated expressions (optional entry). +.Pp +In order to simplify long expressions, symbolic variables can be defined in this entry. Each variable is assigned an index, which is a positive integer that must be different from any of the internel and external indices defined in the '#!fields' entry. +.Pp +The symbols entry is a ',' separated list, whose elements are of the form +.D1 index= polynomial +where index is the index of the variable and polynomial is the expression it stands for (see the POLYNOMIALS section below for information on how to format polynomials). Note that polynomial can contain other symbolic variables. There is no safeguard against self-referencing definitions that may cause infinite loops. +.Pp +Example: +.D1 1001= (-1)[f-100][f100] + (-1)[f-101][f101] , 2001=[f-100][f100] + [f-201][f201] +.Pp +This entry is optional. +.Pp +.It Sy #!identities +Identities satisfied by some of the fields (optional entry). +.Pp +In some cases, some of the quantities involved in a model will satisfy an identity (e.g. a vector may be of unit-norm), which should simplified out from the flow equation. +.Pp +The identities entry is a ',' separated list, whose elements are of the form +.D1 monomial=polynomial +where monomial represents the left side of the identity and is a sequence of field indices of the form '[f index1][f index2]...' and polynomial represents the right side of the identity (see the POLYNOMIALS section below for information on how to format polynomials). +.Pp +Example: +.D1 [f301][f301]=(1)+(-1)[f302][f302]+(-1)[f303][f303] +.Pp +This entry is optional. +.Pp +.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 that specified in the POLYNOMIALS section. In addition, the polynomial can be specified as the product of other polynomials: +.D1 polynomial1 * polynomial2 * ... +Note that there are no parentheses, and therefore, products cannot be nested, nor can a product of polynomials be summed with another polynomial. +.Pp +Example: +.D1 (1) + (1/2)[l1][f1001] * (1) + (1/2)[l2][f2001] +.It Sy #!id_table +The idtable used to identify the running coupling constants. +.Pp +Once the mean of the input polynomial has been computed, we are left with a polynomial of the external fields and the running coupling constants that were in the input polynomial. In order to compute a flow equation from this average, +.Nm +uses an idtable to identify which of the monomials of the average contribute to which running coupling constant. +.Pp +The id_table entry is a ',' separated list, whose elements are of the form +.D1 rcc: polynomial +where rcc is the index of the corresponding running coupling constant, which is a non-negative integer, and polynomial is the polynomial to which rcc refers to (which is a polynomial of the external fields). +.Pp +Example: +.D1 1:(-1)[f-100][f100] , 2:[f-200][f200] +.It Sy #!groups +Groups of independent variables (optional entry). +.Pp +In order to speed up the computation of the mean of the input polynomial, groups of independent variables can be specified. When +.Nm +computes the mean of a monomial containing elements of different groups, it factors the monomial into independent factors, computes the mean of each factor, and then takes their product. This way, +.Nm +does not repeatedly try to pair independent fields. +.Pp +The groups entry is a list of collections of fields or symbols of the following form +.D1 (index1,index2,...) +.Pp +Example: +.D1 (1001,1002) (2001,2002) +.Pp +.Em Warning: +.Nm +does not check that the fields in different groups are truly independent, so cases in which fields in different group have a non-vanishing propagator entry may give unexpected results. +.Pp +This entry is optional. +.El +.Pp +.Sh NUMBERS +.Nm +can parse rational numbers and linear combinations of square roots of integers (positive or negative (which is how complex numbers are implemented)) with rational coefficients (i.e. elements of the field extension of Q generated by sqrt(Z)). +.Pp +A number is a '+' separated list whose elements are of the form +.D1 (a/b)s{r} +where a and r are integers and b is a positive integer. s{r} stands for sqrt(r). +.Pp +If a=b, then the number may be written as 's{r}'. If b=1, then it can be '(a)s{r}'. If r=1, then it can be 'a/b'. If b=r=1, then it can be 'a'. +.Pp +Example: +.D1 (1/2)s{2} + (-1)s{-1} + 3/2 +.Pp +.Sh POLYNOMIALS +Polynomials are '+' separated lists of monomials. Each monomial is a sequence of numbers, rccs and fields. +.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 '[l' and ']'. +.It +Fields are non-vanishing indices enclosed between '[f' and ']'. Fields must either appear in the '#!fields' entry or the '#!symbols' entry. +.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 +Example: +.D1 (1) + ((3/2)s{2} + (-1)s{-1} + 3)[l1][l2][f100][f1001][f101] + [l1][f101] + (3)[l2] +.Pp +.Sh OUTPUT +.Nm +prints the flow equation to stdout. +.Pp +The rccs in the flow equation are of the form '[% index]' and the constant term in the flow equation is denoted by '[C1]'. The factor '[/C1^power]' stands for (1/C1^power). +.Pp +.Sh KNOWN ISSUES +.Nm +only supports models in which all of the internal fields are Fermions. +.Pp +.Sh RETURN CODE +.Nm +returns 0 on success and -1 on error. +.Pp +.Sh SEE ALSO +.Sx numkondo Ns (1) , +.Sx meantools Ns (1) , +.Sx meantools-convert Ns (1) , +.Sx kondo_preprocess Ns (1) +.Pp diff --git a/man/meantools-convert.1 b/man/meantools-convert.1 new file mode 100644 index 0000000..f29d877 --- /dev/null +++ b/man/meantools-convert.1 @@ -0,0 +1,137 @@ +.Dd $Mdocdate: June 12 2015 $ +.Dt meantools-convert 1.2 +.Os +.Sh NAME +.Nm meantools-convert +.Nd Translate flow equations to various formats +.Sh SYNOPSIS +.Nm +.Op Fl i Ar file +.Sy C +.Op Fl l Ar oldl_symbol +.Op Fl L Ar newl_symbol +.Op Fl C Ar constant_symbol +.Op Fl S +.Pp +.Nm +.Op Fl i Ar file +.Sy javascript +.Op Fl l Ar oldl_symbol +.Op Fl L Ar newl_symbol +.Op Fl C Ar constant_symbol +.Pp +.Nm +.Op Fl i Ar file +.Sy LaTeX +.Op Fl l Ar oldl_symbol +.Op Fl L Ar newl_symbol +.Op Fl C Ar constant_symbol +.Op Fl s +.Pp +.Sh DESCRIPTION +.Nm +is a python script to convert flow equations to C, javascript or LaTeX code. +.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 (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 i Ar file +File containing the flow equation to convert. If this flag is not specified, then +.Nm +reads the equation from stdin. +.El +.Pp +.Sh C +.Nm +supports the following flags when converting to C code. +.Bl -tag -width Ds +.It Fl l Ar oldl_symbol +The symbol for the running coupling constants appearing on the right hand side (defaults to 'l'). +.It Fl L Ar newl_symbol +The symbol for the running coupling constants appearing on the left hand side (defaults to 'newL'). +.It Fl C Ar constant_symbol +The symbol for the constant factor (defaults to 'C'). Since there can be multiple constants in a flow equation, the actual symbols will be appended an integer (e.g. C1, C2, etc). +.It Fl S +Write each equation on a single line. +.El +.Pp +.Ar oldl_symbol +and +.Ar newl_symbol +must be arrays of floating point numbers (floats, doubles or long doubles) with enough memory allocated to them to hold all running coupling constants. Similarly, +.Ar constant_symbol Ns n +with n large enough must be allocated as floating point numbers. +.Pp +In addition, if the flow equation contains derivatives (see +.Sx meantools Ns (1) ) , +then +.Pf d Ar oldl_symbol , +.Pf d Ar newl_symbol +and +.Pf d Ar constant_symbol Ns n +must be allocated as well. The same holds for higher derivatives, with 'd' replaced by 'dd', 'ddd' and so forth. +.Sh JAVASCRIPT +.Qo +.Nm +.Sy javascript +.Qc +is a shorthand for +.Qo +.Nm +.Sy C +-S +.Qc +.Sh LATEX +.Nm +supports the following flags when converting to LaTeX code. +.Bl -tag -width Ds +.It Fl l Ar oldl_symbol +The symbol for the running coupling constants appearing on the right hand side (defaults to "\\ell"). +.It Fl L Ar newl_symbol +The symbol for the running coupling constants appearing on the left hand side (defaults to "\\ell'"). +.It Fl C Ar constant_symbol +The symbol for the constant factor (defaults to "C"). Since there can be multiple constants in a flow equation, the actual symbols will be appended an integer subscript (e.g. C_1, C_2, etc). +.It Fl s +Break the line at every '+'. +.El +.Pp +Since the length of the equations can change a lot from one system to another, +.Nm +does not make many formatting decisions (for instance +.Nm +does not insert any alignment characters, and either breaks the line at every '+' sign or at the end of the equation), which are left to the user. +.Pp +.Sh OUTPUT +.Nm +prints the converted flow equation to stdout. +.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 kondo_preprocess Ns (1) +.Pp diff --git a/man/meantools.1 b/man/meantools.1 new file mode 100644 index 0000000..1849326 --- /dev/null +++ b/man/meantools.1 @@ -0,0 +1,164 @@ +.Dd $Mdocdate: April 14 2015 $ +.Dt meantools 1.2 +.Os +.Sh NAME +.Nm meantools +.Nd A tool to manipulate flow equations +.Sh SYNOPSIS +.Nm +.Sy exp +.Op Ar config_file +.Pp +.Nm +.Sy derive +.Op Fl d Ar nderivs +.Op Fl V Ar variables +.Op Ar config_file +.Pp +.Nm +.Sy eval +.Op Fl R Ar values +.Op Ar config_file +.Pp +.Sh DESCRIPTION +.Nm +performs various operations on flow equations generated by +.Sy meankondo. +Namely, it can exponentiate, derive and evaluate flow equations. +.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 (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 EXP +When run with the 'exp' command, +.Nm +computes the exponential of a flow equation. All the required parameters are set in the configuration file, which it either reads from the file provided on the command line, or from stdin. +.Pp +The syntax for the configuration file is the same as for +.Sx meankondo Ns (1) , +and will not be belaboured here. The supported entries are +.Bl -tag -width Ds +.It Sy #!input_polynomial +The polynomial whose exponential is to be computed. +.Pp +.It Sy #!fields +The fields appearing in the polynomial +.Pp +.It Sy #!symbols +Symbolic variables (optional entry). +.Pp +.It Sy #!identities +identities between fields (optional entry). +.Pp +.It Sy #!id_table +The idtable used to compute a flow equation from the polynomial. +.El +.Pp +The resulting flow equation is written to stdout. +.Pp +.Sh DERIVE +When run with the 'derive' command, +.Nm +computes derivatives of a flow equation provided in the configuration file, which can either be passed as a command-line argument or through stdin. +.Pp +The derivatives are derivatives with respect to an extra virtual parameter, which all of the rccs are assumed to depend on (to override the default behavior, the '-V' flag can be used to pass a list of rccs that depend on the extra parameter, alternatively such a list can be given in the configuration file). The derivative of the flow equation is a new flow equation for the rccs and their derivatives with respect to the virtual parameter. +.Pp +When multiple derivatives are taken, the flow equation becomes a flow equation for the rccs, their derivatives, second derivatives, and so forth... +.Pp +This operation can be useful, for instance, to compute moments in an interacting system, in which the generating functional can be expressed as an effective potential depending on a parameter with respect to which the result of the integration should be derived. The 'derive' command writes the flow equation for the derived rccs, from which the quantities of interest can be computed. +.Pp +.Sy Command-line arguments: +.Bl -tag -width Ds +.It Fl d Ar nderivs +Number of derivatives (defaults to 1) +.It Fl V Ar variables +The variables that depend on the extra virtual parameter (defaults to all) (WARNING: if one of the variables has a negative index, do not put it first in the list, since +.Nm +would interpret the argument as being a flag, for example, write '-V "0,-1"' instead of '-V "-1,0"'). +.Pp +Can either be a ',' separated list if indices or 'all' to derive with respect to all available variables. +.El +.Pp +.Sy Configuration file: +.Pp +The configuration file contains the flow equation to derive, and optionally a list of variables (similar to the '-V' flag). The following entries are supported: +.Bl -tag -width Ds +.It Sy #!flow_equation +The flow equation to derive. +.Pp +The syntax is identical to that in +.Sx numkondo Ns (1) . +.Pp +If this entry is the only one in the configuration file, the '#!flow_equation' header may be omitted. +.Pp +.It Sy #!variables +The variables that depend on the extra virtual parameter (optional entry). +.Pp +The variables entry is a ',' separated list of indices, or 'all' in which case, all of the variables on the right side of the flow equation are assumed to depend on the flow equation. +.Pp +If the '-V' flag is provided on the command-line, this entry is ignored. +.El +.Pp +The resulting flow equation is written to stdout. +.Pp +.Sh EVAL +When run with the 'eval' command, +.Nm +evaluates a flow equation, provided in a configuration file, numerically, using the values provided on the command-line or in the configuration file provided on the command-line or through stdin. +.Pp +.Sy Command-line arguments: +.Bl -tag -width Ds +.It Fl R Ar values +The values of the rccs with which to evaluate the flow equation. +.Ar values +is formatted like an initial_condition (see +.Sx numkondo Ns (1) ) . +.El +.Pp +.Sy Configuration file: +.Pp +The configuration file contains the flow equation to evaluate, and optionally a list of values for the rccs. The following entries are supported: +.Bl -tag -width Ds +.It Sy #!flow_equation +The flow equation to evaluate. +.Pp +The syntax is identical to that in +.Sx numkondo Ns (1) . +.Pp +If this entry is the only one in the configuration file, the '#!flow_equation' header may be omitted. +.Pp +.It Sy #!initial_condition +The value on which to evaluate the flow equation (optional entry). +.Pp +The syntax is identical to that in +.Sx numkondo Ns (1) . +.Pp +If the '-R' flag is provided on the command-line, this entry is ignored. +.El +.Pp +The result of the evaluation is written to stdout, and is formatted is such a way that it can be used as an initial condition for +.Pp +.Sh SEE ALSO +.Sx meankondo Ns (1) , +.Sx numkondo Ns (1) , +.Sx meantools-convert Ns (1) , +.Sx kondo_preprocess Ns (1) +.Pp diff --git a/man/numkondo.1 b/man/numkondo.1 new file mode 100644 index 0000000..7406a80 --- /dev/null +++ b/man/numkondo.1 @@ -0,0 +1,157 @@ +.Dd $Mdocdate: April 14 2015 $ +.Dt numkondo 1.2 +.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 |