This shows you the differences between two versions of the page.
| — |
documentation:ref:indextype [2015/11/21 12:33] (current) |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== IndexType ====== | ||
| + | ---- | ||
| + | |||
| + | ====Description==== | ||
| + | ''IndexType'' represents a type of a single index. It encodes mathematical nature of indices with different types (e.g. Lorentz, SU(N) etc.). One can print all available index types as follows: | ||
| + | <sxh groovy; gutter: false> | ||
| + | println IndexType.values() | ||
| + | </sxh> | ||
| + | <sxh plain; gutter: false> | ||
| + | > [LatinLower, LatinUpper, GreekLower, GreekUpper, Matrix1, Matrix2, | ||
| + | Matrix3, Matrix4] | ||
| + | </sxh> | ||
| + | |||
| + | If two indices have different types, then they have different mathematical nature. Thus, for example, two tensors ''f_ab'' and ''f_AB'' have different mathematical nature and one can not rename indices of tensor ''f_ab'' to ''_AB''. This, in turn, enables us to associate different space dimensions with different index types: | ||
| + | <sxh groovy; gutter: false> | ||
| + | //dimension for Latin lower case indices | ||
| + | def dimLower = 'd^a_a = X'.t | ||
| + | //dimension for Latin upper case indices | ||
| + | def dimUpper = 'd^A_A = Y'.t | ||
| + | //expression contains both lower and upper case indices | ||
| + | def t = 'g_ab*g^ab + g_AB*g^AB'.t | ||
| + | t = (EliminateMetrics & dimLower & dimUpper) >> t | ||
| + | println t | ||
| + | </sxh> | ||
| + | <sxh plain; gutter: false> | ||
| + | > X + Y | ||
| + | </sxh> | ||
| + | By default, all types except ''Matrix'' are metric, and a corresponding [[documentation:ref:metric_tensor|metric tensor]] is set up (''g_ab'' for ''LatinLower'', ''g_\\alpha\\beta'' for Greek lower etc.). | ||
| + | |||
| + | |||
| + | In order to obtain ''IndexType'' of a particular index one can use ''.type'' property; in order to check whether ''IndexType'' is metric, one can use ''isMetric()'' method: | ||
| + | <sxh groovy; gutter: false> | ||
| + | def indices = '''_{a}^{A \\alpha}_{a'} '''.si | ||
| + | println indices.collect { [[type: it.type, metric: it.type.isMetric()]] } | ||
| + | </sxh> | ||
| + | <sxh plain; gutter: false> | ||
| + | > [[[type:LatinLower, metric:true]], [[type:LatinUpper, metric:true]], | ||
| + | [[type:GreekLower, metric:true]], [[type:Matrix1, metric:false]]] | ||
| + | </sxh> | ||
| + | ====Available types==== | ||
| + | The possible values of ''IndexType'' are: | ||
| + | <html> | ||
| + | <center> | ||
| + | <table style="width:600px;" cellpadding="10"> | ||
| + | <tr> | ||
| + | <td valign="top" style="padding: 15px; border: 1px solid gray;"><b>IndexType</b></td> | ||
| + | <td valign="top" align="center" style="padding: 15px; border: 1px solid gray;"><b>Description</b></td> | ||
| + | </tr> | ||
| + | <tr> | ||
| + | <td valign="top" style="padding: 15px; border: 1px solid gray;"><code>LatinLower</code></td> | ||
| + | <td valign="top" style="padding: 15px; border: 1px solid gray;">Latin lower case indices from <code>a</code> to <code>z</code> and subscripted like <code>a_{12}</code> etc. </td> | ||
| + | </tr> | ||
| + | <tr> | ||
| + | <td valign="top" style="padding: 15px; border: 1px solid gray;"><code>LatinUpper</code></td> | ||
| + | <td valign="top" style="padding: 15px; border: 1px solid gray;">Latin upper case indices from <code>A</code> to <code>Z</code> and subscripted like <code>X_{12}</code> etc. </td> | ||
| + | </tr> | ||
| + | <tr> | ||
| + | <td valign="top" style="padding: 15px; border: 1px solid gray;"><code>GreekLower</code></td> | ||
| + | <td valign="top" style="padding: 15px; border: 1px solid gray;">Greek lower case indices like <code>\\alpha</code>, <code>\\theta</code> and subscripted like <code>\\rho_{123}</code> etc. </td> | ||
| + | <tr> | ||
| + | <td valign="top" style="padding: 15px; border: 1px solid gray;"><code>GreekUpper</code></td> | ||
| + | <td valign="top" style="padding: 15px; border: 1px solid gray;">Greek upper case indices like <code>\\Lambda</code>, <code>\\Theta</code> and subscripted like <code>\\Psi_{123}</code> etc. Note, that some letters are excluded since they have same UTF8 representation as Latin letters (e.g. capital alpha to beta). </td> | ||
| + | </tr> | ||
| + | <tr> | ||
| + | <td valign="top" style="padding: 15px; border: 1px solid gray;"><code>Matrix1</code></td> | ||
| + | <td valign="top" style="padding: 15px; border: 1px solid gray;">Latin lower case indices with strokes from <code>a'</code> to <code>z'</code> and subscripted like <code>a'_{12}</code> etc. </td> | ||
| + | <tr> | ||
| + | <td valign="top" style="padding: 15px; border: 1px solid gray;"><code>Matrix2</code></td> | ||
| + | <td valign="top" style="padding: 15px; border: 1px solid gray;">Latin upper case indices with strokes like <code>A'</code> or <code> E'_{12}</code>. </td> | ||
| + | </tr> | ||
| + | <tr> | ||
| + | <td valign="top" style="padding: 15px; border: 1px solid gray;"><code>Matrix3</code></td> | ||
| + | <td valign="top" style="padding: 15px; border: 1px solid gray;">Greek lower case indices with strokes like <code>\\alpha'</code> or <code>\\theta'_{12}</code>. </td> | ||
| + | </tr> | ||
| + | <tr> | ||
| + | <td valign="top" style="padding: 15px; border: 1px solid gray;"><code>Matrix4</code></td> | ||
| + | <td valign="top" style="padding: 15px; border: 1px solid gray;">Greek upper case indices with strokes like <code>\\Lambda'</code> or <code>\\Psi'_{12}</code>. </td> | ||
| + | </tr> | ||
| + | </tr> | ||
| + | </table> | ||
| + | </center> | ||
| + | </html> | ||
| + | |||
| + | By default all ''Matrix'' index types are used for [[documentation:guide:setting_up_matrix_objects|matrix indices]] and there is no metric specified for indices of ''Matrix'' types. | ||
| + | |||
| + | =====See also===== | ||
| + | * Related guides: [[documentation:guide:tensors_and_indices]] | ||
| + | * Reference material: [[documentation:ref:indices]], [[documentation:ref:simpletensor]], [[documentation:ref:simpleindices]], [[documentation:ref:metric_tensor]] | ||
| + | * JavaDocs: [[http://api.redberry.cc/redberry/1.1.9/java-api/cc/redberry/core/indices/IndexType.html| IndexType]] | ||
| + | * Source code: [[https://bitbucket.org/redberry/redberry/src/tip/core/src/main/java/cc/redberry/core/indices/IndexType.java|IndexType.java]] | ||