SpECTRE  2021.08.02
TensorExpressions::LhsTensorSymmAndIndices< RhsTensorIndexList, LhsTensorIndexList, RhsSymmetry, RhsTensorIndexTypeList, NumIndices, IndexSequence > Struct Template Reference

Determines and stores a LHS tensor's symmetry and index list from a RHS tensor expression and desired LHS index order. More...

Detailed Description

template<typename RhsTensorIndexList, typename LhsTensorIndexList, typename RhsSymmetry, typename RhsTensorIndexTypeList, size_t NumIndices = tmpl::size<RhsSymmetry>::value, typename IndexSequence = std::make_index_sequence<NumIndices>>
struct TensorExpressions::LhsTensorSymmAndIndices< RhsTensorIndexList, LhsTensorIndexList, RhsSymmetry, RhsTensorIndexTypeList, NumIndices, IndexSequence >

Determines and stores a LHS tensor's symmetry and index list from a RHS tensor expression and desired LHS index order.

Details

Given the generic index order of a RHS TensorExpression and the generic index order of the desired LHS Tensor, this creates a mapping between the two that is used to determine the (potentially reordered) ordering of the elements of the desired LHS Tensor`s Symmetry and typelist of TensorIndexTypes.

Note: If a generic spatial index is used for a spacetime index in the RHS tensor, its corresponding index in the LHS tensor type will be a spatial index with the same valence, frame, and number of spatial dimensions.

Template Parameters
RhsTensorIndexListthe typelist of TensorIndex of the RHS TensorExpression
LhsTensorIndexListthe typelist of TensorIndexs of the desired LHS tensor
RhsSymmetrythe Symmetry of the RHS indices
RhsTensorIndexTypeListthe RHS TensorExpression's typelist of TensorIndexTypes