Class handling the full application of Wick theorem. Starts from an initial Graph fully disconnected, delegates contraction steps to the Graph class and handles the series of resulting Graphs (eliminates non physical ones, iterates the Graph::contractoinStep()...).
More...
#include <graph.h>
|
|
static csl::Expr | applyWickTheoremOnDiagram (const Graph &diagram, std::vector< mty::FeynruleMomentum > &witnessMapping, bool ruleMode=true) |
| |
|
static csl::vector_expr | applyWickTheoremOnDiagrams (const std::vector< std::shared_ptr< Graph >> &diagrams, std::vector< mty::FeynruleMomentum > &witnessMapping, bool ruleMode=true) |
| |
|
static std::vector< mty::FeynmanDiagram > | getDiagrams (mty::Model const *model, const csl::Expr &initialExpr, std::map< csl::Tensor, size_t > &vertexIds, std::vector< mty::FeynruleMomentum > &witnessMapping, bool symmetriseExternalLegs=false, bool ruleMode=true) |
| |
|
static std::vector< mty::FeynmanDiagram > | getDiagrams (mty::Model const *model, const csl::Expr &initialExpr, std::map< csl::Tensor, size_t > &vertexIds, bool symmetriseExternalLegs=false, bool ruleMode=true) |
| |
| static bool | isContractionZero (const std::vector< mty::QuantumField > &fields, size_t maxLoops=size_t(-1), size_t nVertices=size_t(-1)) |
| | Checks quickly if a set of fields gives a zero contraction. More...
|
| |
|
static bool | isContractionZero (const std::vector< mty::QuantumField const *> &fields, size_t maxLoops=size_t(-1), size_t nVertices=size_t(-1)) |
| |
Class handling the full application of Wick theorem. Starts from an initial Graph fully disconnected, delegates contraction steps to the Graph class and handles the series of resulting Graphs (eliminates non physical ones, iterates the Graph::contractoinStep()...).
◆ WickCalculator()
| mty::wick::WickCalculator::WickCalculator |
( |
const Graph & |
freeDiagram | ) |
|
|
explicitprivate |
Constructor with one parameter.
- Parameters
-
| freeDiagram | Graph fully disconnected initializing the algorithm. |
◆ eliminateNonPhysicalDiagrams()
| void mty::wick::WickCalculator::eliminateNonPhysicalDiagrams |
( |
std::vector< std::shared_ptr< Graph >> & |
diagrams | ) |
|
|
private |
See Graph::isPhysical(). Eliminate Graph that do not fill this condition.
- Parameters
-
| diagrams | std::vector of Graph which non physical elements are removed (modified during the run). |
◆ getDiagrams()
Calculates and returns all possible contractions of the initial Graph. If the different diagrams have already been found, does not recompute them.
- Returns
- The set of possible Graph once contractions have been done.
◆ getInitialDiagram()
| Graph mty::wick::WickCalculator::getInitialDiagram |
( |
| ) |
const |
|
private |
- Returns
- The initial Graph initialDiagram.
◆ isContractionZero()
| bool mty::wick::WickCalculator::isContractionZero |
( |
const std::vector< mty::QuantumField > & |
fields, |
|
|
size_t |
maxLoops = size_t(-1), |
|
|
size_t |
nVertices = size_t(-1) |
|
) |
| |
|
static |
Checks quickly if a set of fields gives a zero contraction.
- Parameters
-
This function will not detect all cases at all. The purpose is to do a quick check to discard the most obvious cases, in order to save time in computations.
- Returns
- True if the contraction of fields is zero in some cases.
-
False else.
◆ splitFields()
Static helper function that splits a std::vector of fields into several, each part being associated with a unique QuantumFieldParent. Allows to discard quickly diagrams that have one (at least) species that presents an odd number of fields.
- Parameters
-
- Returns
- The splitted std::vector into groups of mty::QuantumField from the same species.
The documentation for this class was generated from the following files: