====== SimpleTensor ====== ---- ====Basics==== ''SimpleTensor'' represents a simple tensors like ''f_mn'' of symbols like ''x'' etc. Like any other expression, it inherits all properties of [[Tensor]]. ''SimpleTensor'' adopts the following convention on its indices: the indices of ''SimpleTensor'' ([[SimpleIndices]]) are sorted by their [[documentation:ref:IndexType|types]], but the relative ordering of indices within a particular type is same as defined by the user: def t = 'f_cba^\\alpha_AB'.t println t.indices > _{cbaAB}^{\alpha} The relative ordering is not changed even if tensor has [[documentation:guide:symmetries_of_tensors|symmetry property]]; in latter case Redberry uses algorithms provided by [[documentation:guide:mappings_of_indices]] to compare expressions instead of trying to put expression in canonical form. The distinctive feature of simple tensors is the presence of [[documentation:guide:symmetries_of_tensors|symmetries]]. In order to bind symmetries to simple tensor, one can use ''addSymmetry'' method or directly call ''addSymmetry'' from simple tensor [[SimpleIndices]]: addSymmetry 'f_pqr', [1, 0].p //or equivalently 'f_klm'.t.indices.symmetries.addSymmetry( [1, 0].p ) Once specified, symmetries will be automatically set up for all same simple tensors (''f_abc'' or ''f_qrs'' etc.) whichever way they are created. ====Details==== In order to get name of simple tensor one can get ''.stringName'' property: def t = 'f_abc^\\alpha_AB'.t println t.stringName > f On the other hand, this name does not reflect the mathematical nature of simple tensors, and for example two completely different tensors ''f_a'' and ''f_ab'' have same ''stringName''. The unique identifier of ''SimpleTensor'' which encodes its mathematical nature is an integer property ''.name'': two simple tensors have same ''.name'' if and only if they have same ''.stringName'' and same //structure of indices//: assert 'f_ab'.t.name == 'f_bc'.t.name assert 'f_ab'.t.name != 't_bc'.t.name assert 'f_ab'.t.name != 'f_b'.t.name assert 'f_ab'.t.name != 'f_AB'.t.name For further details see API. ====See also==== * Related guides: [[documentation:guide:tensors_and_indices]], [[documentation:guide:symmetries_of_tensors]] * Reference: [[documentation:ref:tensor]], [[documentation:ref:simpleindices]], [[documentation:ref:tensorfield]] * JavaDocs: [[http://api.redberry.cc/redberry/1.1.9/java-api/cc/redberry/core/tensor/SimpleTensor.html| SimpleTensor]] * Source code: [[https://bitbucket.org/redberry/redberry/src/tip/core/src/main/java/cc/redberry/core/tensor/SimpleTensor.java|SimpleTensor.java]]