Skip to content

Notation and conventions

This page fixes the notation used throughout the documentation. Every symbol that is not listed here is redefined on the page where it appears.

Tensor order is carried by the typeface

The convention is that of the Echoes manual, so that formulas can be compared side by side with it.

ObjectTypeset asExample
scalaritalic, , ,
vector (order 1)underlined, ,
tensor of order 2bold, ,
tensor of order 4blackboard bold, , ,
tensor of arbitrary ordercalligraphic,
basis, coordinate systemscript,

Index conventions

Einstein summation over repeated indices is implicit. Because TensND supports non-orthonormal bases, the position of an index is meaningful: a subscript is a covariant component, a superscript a contravariant one. See Bases and variance.

SymbolMeaning
, Kronecker symbol
/ basis vector / dual (reciprocal) basis vector
/ natural / dual natural vector of a coordinate system
/ covariant / contravariant metric components
Levi-Civita symbol

Products

The full definitions, with their index formulas and algebraic identities, are on Tensor algebra. This table is the dictionary between mathematical symbol, Julia operator and function name.

ProductJuliaFunctionActs on
 otimesany orders
 ⊗ˢsotimesany orders
 otimesuany orders
 ⊠ˢotimesul (alias sboxtimes)any orders
 dot1 contracted index
 dcontract2 contracted indices
 qcontract4 contracted indices

Double contraction: the pair-wise convention

Two conventions coexist for the double dot product. The classical one consumes indices going inwards from the extremities. The one adopted here — and by the Echoes manual — treats the two last indices of the left operand as a pair and the two first indices of the right operand as the corresponding pair:

The two conventions differ by a transpose on the right operand and agree only when it is symmetric. TensND implements the pair-wise one (dcontract in src/array_utils.jl).

Two rules this documentation follows

Every symbol is defined where it is used. A page never relies on a symbol introduced only on another page, even at the cost of repeating a definition.

No formula without a traceable source

Every expression in this documentation is either (i) accompanied by a citation to published work, (ii) derived explicitly on the page from expressions that are, or (iii) read off the implementation, with the source file named. Where a convention differs between references, the competing conventions are named and the one implemented by TensND is stated.

Formulas that a reader is likely to want to check — the Walpole multiplication table, the Kelvin–Mandel congruence, the operator index placement — are additionally pinned by tests, so that the documentation cannot silently drift from the code. See Testing and conventions.