This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
documentation:ref:diractrace [2015/11/20 19:11] poslavskysv [Description] |
documentation:ref:diractrace [2015/11/21 12:33] (current) |
||
---|---|---|---|
Line 3: | Line 3: | ||
====Description==== | ====Description==== | ||
+ | |||
* ''%%DiracTrace%%'' calculates trace of Dirac matrices in $D$ dimensions | * ''%%DiracTrace%%'' calculates trace of Dirac matrices in $D$ dimensions | ||
Line 9: | Line 10: | ||
* One can directly set trace of identity matrix (e.g. for dimensional regularisation): ''%%DiracTrace[[Dimension: D, TraceOfOne: 4]]%%'' | * One can directly set trace of identity matrix (e.g. for dimensional regularisation): ''%%DiracTrace[[Dimension: D, TraceOfOne: 4]]%%'' | ||
- | * By default ''DiracTrace'' uses notation ''G_m'' for $\gamma_m$, ''G5'' for $\gamma_5$ and ''e_abcd'' for Levi-Civita tensor. %%DiracTrace[G, G5, eps]%%'' or ''%%DiracTrace[[Gamma: G, Gamma5: G5, LeviCivita: eps]]%%'' specifies the notation for $\gamma_m$, $\gamma_5$ and Levi-Civita tensor. | + | * By default ''DiracTrace'' uses notation ''G_m'' for $\gamma_m$, ''G5'' for $\gamma_5$ and ''e_abcd'' for Levi-Civita tensor. ''%%DiracTrace[G, G5, eps]%%'' or ''%%DiracTrace[[Gamma: G, Gamma5: G5, LeviCivita: eps]]%%'' specifies the notation for $\gamma_m$, $\gamma_5$ and Levi-Civita tensor. |
* ''%%DiracTrace[[Simplifications: rules]]%%'' will apply additional simplification ''rules'' to each processed trace | * ''%%DiracTrace[[Simplifications: rules]]%%'' will apply additional simplification ''rules'' to each processed trace | ||
+ | |||
+ | |||
====Examples==== | ====Examples==== | ||
---- | ---- | ||
Line 17: | Line 20: | ||
<sxh groovy; gutter: false> | <sxh groovy; gutter: false> | ||
defineMatrices 'G_a', 'G5', Matrix1.matrix | defineMatrices 'G_a', 'G5', Matrix1.matrix | ||
- | println DiracTrace['G_a'] >> 'Tr[G_a*G_b]'.t | + | println DiracTrace >> 'Tr[G_a*G_b]'.t |
</sxh> | </sxh> | ||
<sxh plain; gutter: false> | <sxh plain; gutter: false> | ||
Line 27: | Line 30: | ||
//set up matrix objects | //set up matrix objects | ||
defineMatrices 'G_a', 'G5', Matrix1.matrix | defineMatrices 'G_a', 'G5', Matrix1.matrix | ||
- | //DiracTrace transformation | ||
- | def dTrace = DiracTrace[[Gamma: 'G_a']] | ||
//calculate trace | //calculate trace | ||
- | println dTrace >> 'Tr[(p_a*G^a + m)*G_m*(q_a*G^a-m)*G_n]'.t | + | println DiracTrace >> 'Tr[(p_a*G^a + m)*G_m*(q_a*G^a-m)*G_n]'.t |
</sxh> | </sxh> | ||
<sxh plain; gutter: false> | <sxh plain; gutter: false> | ||
Line 41: | Line 42: | ||
//set up matrix objects | //set up matrix objects | ||
defineMatrices 'G_a', 'G5', Matrix1.matrix | defineMatrices 'G_a', 'G5', Matrix1.matrix | ||
- | //DiracTrace transformation | ||
- | def dTrace = DiracTrace[[Gamma: 'G_a', Gamma5: 'G5', LeviCivita: 'e_abcd']] | ||
//calculate trace | //calculate trace | ||
- | println dTrace >> 'Tr[G_a*G_b*G_c*G_d*G5]'.t | + | println DiracTrace >> 'Tr[G_a*G_b*G_c*G_d*G5]'.t |
</sxh> | </sxh> | ||
<sxh plain; gutter: false> | <sxh plain; gutter: false> | ||
Line 50: | Line 49: | ||
</sxh> | </sxh> | ||
<sxh groovy; gutter: true; first-line: 7> | <sxh groovy; gutter: true; first-line: 7> | ||
- | println dTrace >> 'Tr[(p_a*G^a + m)*G_m*G5*(q_a*G^a-m)*G_n]'.t | + | println DiracTrace >> 'Tr[(p_a*G^a + m)*G_m*G5*(q_a*G^a-m)*G_n]'.t |
</sxh> | </sxh> | ||
<sxh plain; gutter: false> | <sxh plain; gutter: false> | ||
Line 107: | Line 106: | ||
---- | ---- | ||
- | ''DiracTrace'' expands out products of sums containing traces of $\gamma$-matrices and leaves unexpanded other parts of expressions: | + | Use another notation for gamma matrices: |
<sxh groovy; gutter: false> | <sxh groovy; gutter: false> | ||
- | defineMatrices 'G_a', 'G5', Matrix1.matrix | + | defineMatrices 'F_\\mu', 'F5', Matrix2.matrix |
- | def expr = '(k_c+p_c)*(k_d+p_d) + Tr[(p^a + k^a)*(p^b + k^b)*G_a*G_b*G_c*G_d]'.t | + | def dTrace = DiracTrace[[Gamma: 'F_\\mu', Gamma5: 'F5', LeviCivita: 'Eps_{\\mu\\nu\\alpha\\beta}']] |
- | println dTrace >> expr | + | println dTrace >> 'Tr[F_\\mu*F_\\nu*F_\\alpha*F_\\beta * F5]'.t |
</sxh> | </sxh> | ||
<sxh plain; gutter: false> | <sxh plain; gutter: false> | ||
- | > (k_c+p_c)*(k_d+p_d)+4*g_cd*p_b*p^b+4*k_b*k^b*g_cd+8*k^b*g_cd*p_b | + | > -4*I*Eps_{\mu\nu\alpha\beta} |
</sxh> | </sxh> | ||
====Options==== | ====Options==== | ||
+ | |||
+ | * ''Simplifications'': one can specify additional simplifications that will be applied to each evaluated trace:<sxh groovy; gutter: false> | ||
+ | defineMatrices 'G_a', 'G5', Matrix1.matrix | ||
+ | def expr = 'Tr[(p^a + k^a)*(p^b + k^b)*G_a*G_b*G_c*G_d]'.t | ||
+ | def mandelstam = setMandelstam([k_a: '0', p_a: '0', q_a: 'm', r_a: 'm'], 's', 't', 'u') | ||
+ | println DiracTrace[[Simplifications: mandelstam]] >> expr | ||
+ | </sxh><sxh plain; gutter: false> | ||
+ | > 4*s*g_{cd} | ||
+ | </sxh>which is same as<sxh groovy; gutter: false> | ||
+ | println( (DiracTrace & mandelstam) >> expr ) | ||
+ | </sxh><sxh plain; gutter: false> | ||
+ | > 4*s*g_{cd} | ||
+ | </sxh> | ||
+ | |||
+ | * ''ExpandAndEliminate'': ''DiracTrace'' expands out products of sums containing traces of $\gamma$-matrices using [[ExpandAndEliminate]] transformation. One can replace it with another instance using ''%%DiractTrace[[ExpandAndEliminate: tr]]%%''. | ||
+ | |||
+ | * ''LeviCivitaSimplify'': When traces involve $\gamma_5$, ''DiracTrace'' uses [[LeviCivitaSimplify]] in for simplifying resulting expressions with Levi-Civita tensors. One can replace the default instance of [[LeviCivitaSimplify]] with another one using ''%%DiractTrace[[ExpandAndEliminate: tr]]%%''. | ||
+ | |||
====See also==== | ====See also==== | ||
* Related guides: [[documentation:guide:applying_and_manipulating_transformations]], [[documentation:guide:Setting up matrix objects]], [[documentation:guide:list_of_transformations]] | * Related guides: [[documentation:guide:applying_and_manipulating_transformations]], [[documentation:guide:Setting up matrix objects]], [[documentation:guide:list_of_transformations]] | ||
* Related tutorials: [[documentation:tutorials:Compton scattering in QED]] | * Related tutorials: [[documentation:tutorials:Compton scattering in QED]] | ||
- | * Related transformations: [[documentation:ref:LeviCivitaSimplify]], [[documentation:ref:UnitaryTrace]] | + | * Related transformations: [[documentation:ref:DiracSimplify]], [[documentation:ref:DiracOrder]], [[documentation:ref:LeviCivitaSimplify]], [[documentation:ref:UnitaryTrace]] |
- | * JavaDocs: [[http://api.redberry.cc/redberry/1.1.8/java-api//cc/redberry/physics/feyncalc/DiracTraceTransformation.html| DiracTraceTransformation]] | + | * JavaDocs: [[http://api.redberry.cc/redberry/1.1.9/java-api//cc/redberry/physics/feyncalc/DiracTraceTransformation.html| DiracTraceTransformation]] |
* Source code: [[https://bitbucket.org/redberry/redberry/src/tip/physics/src/main/java/cc/redberry/physics/feyncalc/DiracTraceTransformation.java|DiracTraceTransformation.java]] | * Source code: [[https://bitbucket.org/redberry/redberry/src/tip/physics/src/main/java/cc/redberry/physics/feyncalc/DiracTraceTransformation.java|DiracTraceTransformation.java]] | ||
+ |