====== 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:
println IndexType.values()
> [LatinLower, LatinUpper, GreekLower, GreekUpper, Matrix1, Matrix2,
Matrix3, Matrix4]
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:
//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
> X + Y
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:
def indices = '''_{a}^{A \\alpha}_{a'} '''.si
println indices.collect { [[type: it.type, metric: it.type.isMetric()]] }
> [[[type:LatinLower, metric:true]], [[type:LatinUpper, metric:true]],
[[type:GreekLower, metric:true]], [[type:Matrix1, metric:false]]]
====Available types====
The possible values of ''IndexType'' are:
IndexType |
Description |
LatinLower |
Latin lower case indices from a to z and subscripted like a_{12} etc. |
LatinUpper |
Latin upper case indices from A to Z and subscripted like X_{12} etc. |
GreekLower |
Greek lower case indices like \\alpha , \\theta and subscripted like \\rho_{123} etc. |
GreekUpper |
Greek upper case indices like \\Lambda , \\Theta and subscripted like \\Psi_{123} etc. Note, that some letters are excluded since they have same UTF8 representation as Latin letters (e.g. capital alpha to beta). |
Matrix1 |
Latin lower case indices with strokes from a' to z' and subscripted like a'_{12} etc. |
Matrix2 |
Latin upper case indices with strokes like A' or E'_{12} . |
Matrix3 |
Greek lower case indices with strokes like \\alpha' or \\theta'_{12} . |
Matrix4 |
Greek upper case indices with strokes like \\Lambda' or \\Psi'_{12} . |
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]]