====== 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]]