Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
documentation:ref:diractrace [2015/10/07 10:06]
poslavskysv [Examples]
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
  
   * By default ''​%%DiracTrace%%''​ works in $D = 4$; for arbitrary $D$ one can use option ''​%%DiracTrace[[Dimension:​ D]]%%''​   * By default ''​%%DiracTrace%%''​ works in $D = 4$; for arbitrary $D$ one can use option ''​%%DiracTrace[[Dimension:​ D]]%%''​
  
-  * Sometimes ​(e.g. for dimensional regularisation) ​it is convenient to directly set trace of identity matrix: ''​%%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.+  * 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[G]%%'' ​or ''​%%DiracTrace[[Gamma:​ G]]%%'' ​allows ​to specify the notation used for $\gamma_\mu$.+  * ''​%%DiracTrace[[Simplifications:​ rules]]%%'' ​will apply additional simplification ​''​rules''​ to each processed trace
  
-  * ''​%%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%%''​ first applies [[Expand]] to all parts of expressions containing traces of gammas 
- 
-  * ''​%%DiracTrace[[Simplifications:​ rules]]%%''​ will apply additional simplification ''​rules''​ to each processed trace 
 ====Examples==== ====Examples====
 ---- ----
 Calculate trace of $\gamma$-matrices:​ Calculate trace of $\gamma$-matrices:​
 <sxh groovy; gutter: false> <sxh groovy; gutter: false>
-defineMatrices '​G_a',​ 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 32: Line 29:
 <sxh groovy; gutter: false> <sxh groovy; gutter: false>
 //set up matrix objects //set up matrix objects
-defineMatrices '​G_a',​ 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 47: 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 56: 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 113: 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====
 +
 +  * ''​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]]
 +