Difference between revisions of "Correlation Function Manager"
Line 1: | Line 1: | ||
Name pending. | Name pending. | ||
− | Chris has set up a workflow for computing the finite volume spectrum of | + | Chris has set up a workflow for computing the finite volume spectrum of n to m meson scattering(at least he thinks so). A procedural outline is |
− | 1. Determine the basis of operators you want to include by | + | 1. Determine the basis of operators you want to include by examining the non-interacting energy levels. The relevant operators are the ones with energies below the inelastic threshold. Usually ''at least one'' additional operator is included to help the GEVP reduce excited state contaminations, including more comes only at a computational cost. |
2. Project the operators to the relevant finite volume symmetry group, $O_h$ for cubic and $D_{4h}$ for elongated boxes. | 2. Project the operators to the relevant finite volume symmetry group, $O_h$ for cubic and $D_{4h}$ for elongated boxes. | ||
Line 12: | Line 12: | ||
5. Once all relevant diagrams are computed, combine them into correlators, apply the GEVP to the correlation matrix and fit the resultant spectrum to obtain the energy levels. | 5. Once all relevant diagrams are computed, combine them into correlators, apply the GEVP to the correlation matrix and fit the resultant spectrum to obtain the energy levels. | ||
+ | |||
Line 18: | Line 19: | ||
==Steps 1 & 2== | ==Steps 1 & 2== | ||
The operator selection and projection is done in a single notebook, OperatorConstruction.nb. The notebook is set up to produce two | The operator selection and projection is done in a single notebook, OperatorConstruction.nb. The notebook is set up to produce two | ||
− | output files. One is the input to a CPP code that manages the wick contractions and Diagrams, it is a list of | + | output files. One is the input to a CPP code that manages the wick contractions and Diagrams, it is a list of operators. |
− | + | Note that these operators are NOT projected to an irrep, rather these are the set of operators that reconstructs | |
− | + | all possible projections to the $A_1^+$ irrep. The other file contains the elements of the correlation matrix(projected | |
− | into mathematica once numerical values have been stored | + | to an irrep) that need to be loaded into mathematica once numerical values have been stored. |
− | |||
==Steps 3 & 4== | ==Steps 3 & 4== | ||
Line 28: | Line 28: | ||
The cpp code reads in the list of operators, then constructs a correlation matrix. For each element of the correlation matrix it | The cpp code reads in the list of operators, then constructs a correlation matrix. For each element of the correlation matrix it | ||
− | 1. Checks that the wick contraction can be loaded. If not, it produces a message | + | 1. Checks that the wick contraction can be loaded. If not, it produces a message including the name of the first file that was not found. Eventually this will be replaced with |
input to the wick contraction code. | input to the wick contraction code. | ||
Line 36: | Line 36: | ||
3. Checks that all diagrams are actually found in the file. If not it produces the same output, but with only the relevant missing diagrams. Currently this is broken due to common subexpression elimination. | 3. Checks that all diagrams are actually found in the file. If not it produces the same output, but with only the relevant missing diagrams. Currently this is broken due to common subexpression elimination. | ||
− | 4. | + | 4. If everything exists it outputs the correlation functions. |
==Step 5== | ==Step 5== | ||
The GEVP and fitting is handled again by mathematica, usually in a notebook that is labelled by the ensemble and total momentum, in the relevant project folder. | The GEVP and fitting is handled again by mathematica, usually in a notebook that is labelled by the ensemble and total momentum, in the relevant project folder. |
Revision as of 09:48, 15 October 2019
Name pending.
Chris has set up a workflow for computing the finite volume spectrum of n to m meson scattering(at least he thinks so). A procedural outline is
1. Determine the basis of operators you want to include by examining the non-interacting energy levels. The relevant operators are the ones with energies below the inelastic threshold. Usually at least one additional operator is included to help the GEVP reduce excited state contaminations, including more comes only at a computational cost.
2. Project the operators to the relevant finite volume symmetry group, $O_h$ for cubic and $D_{4h}$ for elongated boxes.
3. Take the operators and compute all of the relevant wick contractions, ex. $\bar{u}u\bar{d}d \rightarrow u\bar{u}d\bar{d}$.
4. The wick contractions give a list of diagrams for each element of the correlation matrix that needs to be computed.
5. Once all relevant diagrams are computed, combine them into correlators, apply the GEVP to the correlation matrix and fit the resultant spectrum to obtain the energy levels.
Contents
Codes
Steps 1 & 2
The operator selection and projection is done in a single notebook, OperatorConstruction.nb. The notebook is set up to produce two output files. One is the input to a CPP code that manages the wick contractions and Diagrams, it is a list of operators. Note that these operators are NOT projected to an irrep, rather these are the set of operators that reconstructs all possible projections to the $A_1^+$ irrep. The other file contains the elements of the correlation matrix(projected to an irrep) that need to be loaded into mathematica once numerical values have been stored.
Steps 3 & 4
The wick contractions and diagrams are handled by the ComputeCorrelationFunction repository(soon to be replaced by https://github.com/chrisculver/ModernComputeCorrelator). The cpp code reads in the list of operators, then constructs a correlation matrix. For each element of the correlation matrix it
1. Checks that the wick contraction can be loaded. If not, it produces a message including the name of the first file that was not found. Eventually this will be replaced with input to the wick contraction code.
2. Checks that the numerical diagram file is found. If not it produces CPU and GPU code to compute the diagrams as well as input to said codes. These need to be compiled with an external set of codes.
3. Checks that all diagrams are actually found in the file. If not it produces the same output, but with only the relevant missing diagrams. Currently this is broken due to common subexpression elimination.
4. If everything exists it outputs the correlation functions.
Step 5
The GEVP and fitting is handled again by mathematica, usually in a notebook that is labelled by the ensemble and total momentum, in the relevant project folder.