Ian Jauslin
3f0510629e
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. * Created vim files to implement syntax highlighting for configuration files. * Multiple bug fixes
185 lines
6.9 KiB
Groff
185 lines
6.9 KiB
Groff
.Dd $Mdocdate: June 6 2022 $
|
|
.Dt meantools 1.5
|
|
.Os
|
|
.Sh NAME
|
|
.Nm meantools
|
|
.Nd A tool to manipulate flow equations
|
|
.Sh SYNOPSIS
|
|
.Nm
|
|
.Sy differentiate
|
|
.Op Fl d Ar nderivs
|
|
.Op Fl V Ar variables
|
|
.Op Fl C
|
|
.Op Ar config_file
|
|
.Pp
|
|
.Nm
|
|
.Sy eval
|
|
.Op Fl R Ar values
|
|
.Op Fl P Ar precision
|
|
.Op Fl E Ar max_exponent
|
|
.Op Ar config_file
|
|
.Pp
|
|
.Nm
|
|
.Sy expand
|
|
.Op Fl N Ar namespace
|
|
.OpAr config_file
|
|
.Pp
|
|
.Sh DESCRIPTION
|
|
.Nm
|
|
performs various operations on flow equations generated by
|
|
.Sy meankondo.
|
|
Namely, it can differentiate and evaluate flow equations, as well as perform elementary operations on polynomials.
|
|
.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 DIFFERENTIATE
|
|
When run with the 'differentiate' 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 differentiated. The 'differentiate' command writes the flow equation for the differentiated 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 differentiate with respect to all available variables.
|
|
.It Fl C
|
|
Format the output 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.
|
|
.El
|
|
.Pp
|
|
.Sy Configuration file:
|
|
.Pp
|
|
The configuration file contains the flow equation to differentiate, 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 differentiate.
|
|
.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) ) .
|
|
.It Fl P Ar precision
|
|
Number of bits used for the significand of numerical values (see
|
|
.Sx numkondo Ns (1) ) .
|
|
.It Fl E Ar max_exponent
|
|
Largest allowed value for the exponent of numerical values (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 EXPAND
|
|
When run with the 'expand' command,
|
|
.Nm
|
|
expands the preprocessor variables in the input polynomial, provided in the configuration file, which can either be passed as a command-line argument or through stdin, and prints the result.
|
|
.Pp
|
|
.Sy Command-line arguments:
|
|
.Bl -tag -width Ds
|
|
.It Fl N Ar namespace
|
|
If the configuration file is to be used to perform other operations, it may be convenient to specify the input polynomial for the 'expand' command alongside another '#!input_polynomial' entry, used for some other computation. This is made possible by namespaces.
|
|
.Pp
|
|
If a namespace is provided to
|
|
.Nm
|
|
on the command line, then it will search for the entries in the configuration file in the form
|
|
.D1 #!namespace:header
|
|
and default to #!header if no such header is present.
|
|
.Pp
|
|
In this way, the configuration file can, for instance, contain a '#!namspace:input_polynomial' entry for this computation, as well as a '#!input_polynomial' entry, to be used for some other purpose, all the while using the same '#!fields', '#!preprocessor_variables', '#!virtual_fields' and '#!identities' entries.
|
|
.El
|
|
.Pp
|
|
.Sy Configuration file:
|
|
.Pp
|
|
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 #!preprocessor_variables
|
|
Preprocessor variables (optional entry).
|
|
.Pp
|
|
.It Sy #!virtual_fields
|
|
Virtual fields (optional entry).
|
|
.Pp
|
|
.It Sy #!identities
|
|
identities between fields (optional entry).
|
|
.El
|
|
.Pp
|
|
The result is written to stdout.
|
|
.Pp
|
|
.Sh SEE ALSO
|
|
.Sx meankondo Ns (1) ,
|
|
.Sx numkondo Ns (1) ,
|
|
.Sx meantools-convert Ns (1) ,
|
|
.Pp
|