This shows you the differences between two versions of the page.
documentation:ref:eliminateduesymmetries [2015/11/21 12:33] |
documentation:ref:eliminateduesymmetries [2015/11/21 12:33] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== EliminateDueSymmetries ====== | ||
+ | ---- | ||
+ | |||
+ | ====Description==== | ||
+ | * ''EliminateDueSymmetries'' removes parts of expression, which are zero because of the symmetries. | ||
+ | |||
+ | * ''EliminateDueSymmetries'' does not perform any structural simplifications (expand, eliminate metrics etc.), it is just using symmetries of expression. | ||
+ | |||
+ | ====Examples==== | ||
+ | |||
+ | Simplify expression where symmetric tensor is contracted with antisymmetric: | ||
+ | <sxh groovy; gutter: false> | ||
+ | setAntiSymmetric 'f_mn' | ||
+ | //g_mn is symmetric metric tensor | ||
+ | println EliminateDueSymmetries >> 'f_mn * g^mn'.t | ||
+ | </sxh> | ||
+ | <sxh plain; gutter: false> | ||
+ | > 0 | ||
+ | </sxh> | ||
+ | ---- | ||
+ | ''EliminateDueSymmetries'' also checks symmetries that follows from the structure of expressions: | ||
+ | <sxh groovy; gutter: false> | ||
+ | println EliminateDueSymmetries >> '(t_amn - t_anm) * g^mn'.t | ||
+ | </sxh> | ||
+ | <sxh plain; gutter: false> | ||
+ | > 0 | ||
+ | </sxh> | ||
+ | ---- | ||
+ | ''EliminateDueSymmetries'' works with expressions with arbitrary complexity: | ||
+ | <sxh groovy; gutter: false> | ||
+ | addSymmetry 'R_abc', -[1, 0, 2].p | ||
+ | addSymmetry 'A_ab', [1, 0].p | ||
+ | def t = '((R_abc*A_de + R_bde*A_ac)*A^ce + R_adb)*(A_mf*R^mad - A_fm*R^dma)'.t | ||
+ | println EliminateDueSymmetries >> t | ||
+ | </sxh> | ||
+ | <sxh plain; gutter: false> | ||
+ | > 0 | ||
+ | </sxh> | ||
+ | ---- | ||
+ | ''EliminateDueSymmetries'' applies to each part of expression: | ||
+ | <sxh groovy; gutter: false> | ||
+ | def t = 'F_mn + g_mn*(A^mn - A^nm)'.t | ||
+ | println EliminateDueSymmetries >> t | ||
+ | </sxh> | ||
+ | <sxh plain; gutter: false> | ||
+ | > F_mn | ||
+ | </sxh> | ||
+ | ---- | ||
+ | ====See also==== | ||
+ | * Related guides: [[documentation:guide:applying_and_manipulating_transformations]], [[documentation:guide:symmetries_of_tensors]], [[documentation:guide:list_of_transformations]] | ||
+ | * JavaDocs: [[http://api.redberry.cc/redberry/1.1.9/java-api//cc/redberry/core/transformations/EliminateDueSymmetriesTransformation.html|EliminateDueSymmetriesTransformation]] | ||
+ | * Source code: [[https://bitbucket.org/redberry/redberry/src/tip/core/src/main/java/cc/redberry/core/transformations/EliminateDueSymmetriesTransformation.java|EliminateDueSymmetriesTransformation.java]] | ||