Differences

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

Link to this comparison view

Next revision
Previous revision
documentation:ref:collect [2015/09/22 18:28]
127.0.0.1 external edit
documentation:ref:collect [2015/11/21 12:33] (current)
Line 2: Line 2:
 ---- ----
 ====Description==== ====Description====
-  * ''​Collect[var1,​ var2, ..., transformations]''​ collects together terms involving the same powers of specified vars and applies specified transformation to the expression that forms the coefficient of each term obtained+  * ''​Collect[var1,​ var2]''​ collects together terms involving the same powers of specified vars.
  
 +  * ''​Collect[var1,​ var2, ..., transformations]''​ or ''​%%Collect[var1,​ var2, ..., [Simplifications:​ transformations]]%%''​ additionally applies specified ​ transformations to the expression that forms the coefficient of each term obtained. ​
  
   * In the case of tensorial vars, ''​Collect''​ will insert [[documentation:​ref:​Kronecker delta|Kronecker deltas]] or [[documentation:​ref:​metric tensor|metric tensors]] in order to "​uncontract"​ indices and factor out tensorial parts.   * In the case of tensorial vars, ''​Collect''​ will insert [[documentation:​ref:​Kronecker delta|Kronecker deltas]] or [[documentation:​ref:​metric tensor|metric tensors]] in order to "​uncontract"​ indices and factor out tensorial parts.
Line 9: Line 10:
  
   * In the case of scalar vars, the behaviour of ''​Collect''​ is similar to other CASs.    * In the case of scalar vars, the behaviour of ''​Collect''​ is similar to other CASs. 
 +
 +  * To prevent expand of symbolic terms when collecting tensors one can use option ''​%%Collect[[var1,​ var2, ..., [ExpandSymbolic:​ false]]%%''​
 ====Examples==== ====Examples====
  
Line 63: Line 66:
    > A_c*B^d*(d_a^c*d^b_d+g_ad*g^bc)+(C^b*d_a^c+g^bc*D_a)*A_c    > A_c*B^d*(d_a^c*d^b_d+g_ad*g^bc)+(C^b*d_a^c+g^bc*D_a)*A_c
 </​sxh>​ </​sxh>​
 +
 +----
 +
 +
 +By default ''​Collect''​ will expand all expressions:​
 +<sxh groovy; gutter: true>
 +def t = '​(a+b)**2 * A_a * B^b + A^b * B_a'.t
 +println Collect['​B_m'​] >> t
 +</​sxh>​
 +<sxh plain; gutter: false>
 +   > B_{c}*((b**2+a**2+2*b*a)*A_{a}*g^{bc}+A^{b}*d_{a}^{c})
 +</​sxh>​
 +To prevent this overhead one can use:
 +<sxh groovy; gutter: true; first-line: 3>
 +println Collect['​B_m',​ [ExpandSymbolic:​ false]] >> t
 +</​sxh>​
 +<sxh plain; gutter: false>
 +   > B_{c}*((a+b)**2*A_{a}*g^{bc}+A^{b}*d_{a}^{c})
 +</​sxh>​
 +
  
 ---- ----
Line 69: Line 92:
   * Related guides: [[documentation:​guide:​applying_and_manipulating_transformations]],​ [[documentation:​guide:​list_of_transformations]]   * Related guides: [[documentation:​guide:​applying_and_manipulating_transformations]],​ [[documentation:​guide:​list_of_transformations]]
   * Related transformations:​ [[documentation:​ref:​collectnonscalars]]   * Related transformations:​ [[documentation:​ref:​collectnonscalars]]
-  * JavaDocs: [[http://​api.redberry.cc/​redberry/​1.1.8/​java-api/​cc/​redberry/​core/​transformations/​collect/​CollectTransformation.html| CollectTransformation]]+  * JavaDocs: [[http://​api.redberry.cc/​redberry/​1.1.9/​java-api/​cc/​redberry/​core/​transformations/​collect/​CollectTransformation.html| CollectTransformation]]
   * Source code: [[https://​bitbucket.org/​redberry/​redberry/​src/​tip/​core/​src/​main/​java/​cc/​redberry/​core/​transformations/​collect/​CollectTransformation.java|CollectTransformation.java]]   * Source code: [[https://​bitbucket.org/​redberry/​redberry/​src/​tip/​core/​src/​main/​java/​cc/​redberry/​core/​transformations/​collect/​CollectTransformation.java|CollectTransformation.java]]
 +