diff --git a/FeynHelpersBookDev/Extra/FIREUsageExamples.html b/FeynHelpersBookDev/Extra/FIREUsageExamples.html new file mode 100644 index 00000000..8ec42ea6 --- /dev/null +++ b/FeynHelpersBookDev/Extra/FIREUsageExamples.html @@ -0,0 +1,165 @@ + + +
+ + + +The main idea behind the FeynHelpers interface to FIRE is to
+facilitate the generation of FIRE scripts for reducing the given sets of
+loop integrals written in the FeynCalc notation (i.e. as
+GLI
s with the corresponding lists of
+FCTopology
symbols) to masters.
If needed, the reduction can be done by running the corresponding +scripts from a Mathematica notebook, although we do not recommend using +this approach for complicated calculations.
+Let us assume that upon simplifying some amplitude we have a list of +topologies and the corresponding loop integrals that need to be +reduced.
+= {FCTopology["fctopology1", {SFAD[{{q2, 0}, {0, 1}, 1}], SFAD[{{q1, 0}, {0, 1}, 1}], SFAD[{{q1 + q2, 0}, {0, 1}, 1}], SFAD[{{p + q1, 0}, {0, 1}, 1}], SFAD[{{p - q2, 0}, {0, 1}, 1}]}, {q1, q2}, {p}, {Hold[Pair][Momentum[p, D], Momentum[p, D]] -> pp}, {}]}; topos
= {GLI["fctopology1", {-2, 1, 1, 2, 1}], GLI["fctopology1", {-1, 0, 1, 2, 1}], GLI["fctopology1", {-1, 1, 0, 2, 1}],
+ ints ["fctopology1", {-1, 1, 1, 1, 1}], GLI["fctopology1", {-1, 1, 1, 2, 0}], GLI["fctopology1", {-1, 1, 1, 2, 1}],
+ GLI["fctopology1", {0, -1, 1, 2, 1}], GLI["fctopology1", {0, 0, 0, 2, 1}], GLI["fctopology1", {0, 0, 1, 1, 1}],
+ GLI["fctopology1", {0, 0, 1, 2, 0}], GLI["fctopology1", {0, 0, 1, 2, 1}], GLI["fctopology1", {0, 1, -1, 2, 1}],
+ GLI["fctopology1", {0, 1, 0, 1, 1}], GLI["fctopology1", {0, 1, 0, 2, 0}], GLI["fctopology1", {0, 1, 0, 2, 1}],
+ GLI["fctopology1", {0, 1, 1, 0, 1}], GLI["fctopology1", {0, 1, 1, 1, 0}], GLI["fctopology1", {0, 1, 1, 1, 1}],
+ GLI["fctopology1", {0, 1, 1, 2, -1}], GLI["fctopology1", {0, 1, 1, 2, 0}], GLI["fctopology1", {0, 1, 1, 2, 1}],
+ GLI["fctopology1", {1, -1, 1, 1, 1}], GLI["fctopology1", {1, 0, 0, 1, 1}], GLI["fctopology1", {1, 0, 1, 0, 1}],
+ GLI["fctopology1", {1, 0, 1, 1, 0}], GLI["fctopology1", {1, 0, 1, 1, 1}], GLI["fctopology1", {1, 1, -1, 1, 1}],
+ GLI["fctopology1", {1, 1, 0, 0, 1}], GLI["fctopology1", {1, 1, 0, 1, 0}], GLI["fctopology1", {1, 1, 0, 1, 1}],
+ GLI["fctopology1", {1, 1, 1, -1, 1}], GLI["fctopology1", {1, 1, 1, 0, 0}], GLI["fctopology1", {1, 1, 1, 0, 1}],
+ GLI["fctopology1", {1, 1, 1, 1, -1}], GLI["fctopology1", {1, 1, 1, 1, 0}], GLI["fctopology1", {1, 1, 1, 1, 1}]} GLI
The first step is to generate scripts for creating .sbases and +.lbases files required by FIRE for the actual reduction. Those files are +specific to the given topology, which is why we need to provide the list +of the relevant topologies and as well as a path to the directory that +will contain reductions files. Each topology will receive a separate +subdirectory created from its name.
+[topos,NotebookDirectory[]] FIREPrepareStartFile
If everything works as expected each topology directory will contain
+two Mathematica scripts, CreateLiteRedFiles.m
and
+CreateStartFile.m
. Both of them must be evaluated in the
+correct order. The first script analyzes the topology using LiteRed,
+while the second one uses this information to create .sbases and .lbases
+files. In the case of complicated topologies, running those scripts can
+take many minutes or even couple of hours. For simple topologies the
+process is usually so fast, that one can conveniently run it during the
+notebook evaluation. To this aim one may use
[NotebookDirectory[],topos] FIRECreateStartFile
The next step is to create a file containing the list of integrals +and a configuration file for the reduction.
+[topos,NotebookDirectory[]]
+ FIRECreateConfigFile[ints,topos,NotebookDirectory[]] FIRECreateIntegralFile
In particular, FIRECreateConfigFile
offers a lot of
+options for fine-tuning the reduction parameters as one normally do it
+when writing such files by hand.
Again, in the case of complicated topologies the reduction must be +done on a powerful workstation or computer cluster and can take hours, +days or even weeks. But as long as everything is simple enough, there +should be no harm running it directly from the notebook via
+[NotebookDirectory[],topos] FIRERunReduction
Notice, that in this case FeynHelpers runs the C++ version of FIRE +via a shell script. To that aim FIRE must be properly compiled from +source.
+Finally, in order to load the reduction tables into Mathematica it is +convenient to use
+=FIREImportResults[topos,NotebookDirectory[]] tables
which returns a list of replacement rules that can be directly +applied to the given amplitude or perhaps exported to FORM.
+ + diff --git a/FeynHelpersBookDev/Extra/FeynHelpers.html b/FeynHelpersBookDev/Extra/FeynHelpers.html index e701d778..c0129567 100644 --- a/FeynHelpersBookDev/Extra/FeynHelpers.html +++ b/FeynHelpersBookDev/Extra/FeynHelpers.html @@ -52,17 +52,20 @@= GLI[prop1L, {1, 1}]
int = FCLoopSwitchEtaSign[FCTopology[prop1L, {FAD[{p1, m1}], FAD[{p1 + q, m2}]}, {p1}, {q}, {}, {}], -1]
- topo = FSACreateMathematicaScripts[int, topo, NotebookDirectory[], FinalSubstitutions -> {Hold[SPD][q] -> qq} ,
- files -> {qq -> 30., m1 -> 2., m2 -> 3.}, OverwriteTarget -> True] FSAParameterRules
The output is a list containing two elements. The first one is the
full path to the Mathematica script file FiestaScript.m
,
while the second give the name of the output file containing numerical
@@ -170,13 +169,12 @@
To load the numerical results into your Mathematica session you can
use the function FSALoadNumericalResults
. To that aim you
just need to give it files
as input.
= GLI[prop1L, {1, 1}]
int = FCLoopSwitchEtaSign[FCTopology[prop1L, {FAD[{p1, m1}], FAD[{p1 + q, m2}]}, {p1}, {q}, {}, {}], -1]
- topo = FSACreateMathematicaScripts[int, topo, NotebookDirectory[], FinalSubstitutions -> {Hold[SPD][q] -> qq} ,
- files -> {qq -> 30., m1 -> 2.}, OverwriteTarget -> True, FSASDExpandAsy->True, FSAExpandVar -> m2, FSASDExpandAsyOrder-> 4] FSAParameterRules