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.
| Object | Typeset as | Example |
|---|---|---|
| scalar | italic | |
| vector (order 1) | underlined | |
| tensor of order 2 | bold | |
| tensor of order 4 | blackboard bold | |
| tensor of arbitrary order | calligraphic | |
| basis, coordinate system | script |
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.
| Symbol | Meaning |
|---|---|
| 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.
| Product | Julia | Function | Acts on |
|---|---|---|---|
⊗ | otimes | any orders | |
⊗ˢ | sotimes | any orders | |
⊠ | otimesu | any orders | |
⊠ˢ | otimesul (alias sboxtimes) | any orders | |
⋅ | dot | 1 contracted index | |
⊡ | dcontract | 2 contracted indices | |
⊙ | qcontract | 4 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.