SpECTRE  v2024.05.11
tenex::LhsTensorSymmAndIndices< RhsTensorIndexList, LhsTensorIndexList, RhsSymmetry, RhsTensorIndexTypeList, NumLhsIndices, NumRhsIndices, LhsIndexSequence > 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 NumLhsIndices = tmpl::size<LhsTensorIndexList>::value, size_t NumRhsIndices = tmpl::size<RhsTensorIndexList>::value, typename LhsIndexSequence = std::make_index_sequence<NumLhsIndices>>
struct tenex::LhsTensorSymmAndIndices< RhsTensorIndexList, LhsTensorIndexList, RhsSymmetry, RhsTensorIndexTypeList, NumLhsIndices, NumRhsIndices, LhsIndexSequence >

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 then used to determine the (potentially reordered) ordering of the elements of the desired LHS Tensor`s Symmetry, typelist of TensorIndexTypes, and Tensor_detail::Structure. This struct is used to determine the LHS Tensor's properties when they are not supplied by the user: when a user uses the evaluate overload that returns the LHS as opposed to the overload that takes an empty LHS Tensor as an argument.

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. If a concrete time index is used for a spacetime index in the RHS tensor, the index will not appear in the LHS tensor (i.e. there will NOT be a corresponding LHS index where only the time index of that index has been computed and its spatial indices are empty). Therefore, the LhsTensorIndexList may not contain time indices (ti::t nor ti::T).

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

The documentation for this struct was generated from the following file: