# galgebra.lt¶

Multivector Linear Transformation

## Members¶

galgebra.lt.Dictionary_to_Matrix(dict_rep, ga)[source]

Convert dictionary representation of linear transformation to matrix

class galgebra.lt.Lt(*args, ga, f=False, mode='g')[source]

A Linear Transformation

Except for the spinor representation the linear transformation is stored as a dictionary with basis vector keys and vector values self.lt_dict so that a is a vector $$a = a^{i}e_{i}$$ then

$\mathtt{self(}a\mathtt{)} = a^{i} * \mathtt{self.lt\_dict[}e_{i}\mathtt{]}.$

For the spinor representation the linear transformation is stored as the even multivector self.R so that if a is a vector:

self(a) = self.R * a * self.R.rev().

lt_dict

the keys are the basis symbols, $$e_i$$, and the dictionary entries are the object vector images (linear combination of sympy non-commutative basis symbols) of the keys so that if L is the linear transformation then:

L(e_i) = self.Ga.mv(L.lt_dict[e_i])

Type: dict
Parameters: ga – Name of metric (geometric algebra) f (bool) – True if Lt if function of coordinates mode (str) – g:general, s:symmetric, a:antisymmetric transformation
galgebra.lt.Matrix_to_dictionary(mat_rep, basis)[source]

Convert matrix representation of linear transformation to dictionary

class galgebra.lt.Mlt(f, Ga, args, fct=False)[source]

A multilinear transformation (mlt) is a multilinear multivector function of a list of vectors (*args) $$F(v_1,...,v_r)$$ where for any argument slot $$j$$ we have ($$a$$ is a scalar and $$u_j$$ a vector)

$\begin{split}F(v_1,...,a*v_j,...,v_r) &= a*F(v_1,...,v_j,...,v_r) \\ F(v_1,...,v_j+u_j,...,v_r) &= F(v_1,...,v_j,...,v_r) + F(v_1,...,u_j,...,v_r).\end{split}$

If F and G are two Mlts with the same number of argument slots then the sum is

$(F+G)F(v_1,...,v_r) = F(v_1,...,v_r) + G(v_1,...,v_r).$

If $$F$$ and $$G$$ are two Mlts with $$r$$ and $$s$$ argument slots then their product is

$(F*G)(v_1,...,v_r,...,v_{r+s}) = F(v_1,...,v_r)*G(v_{r+1},...,v_{r+s}),$

where $$*$$ is any of the multivector multiplicative operations. The derivative of a Mlt with is defined as the directional derivative with respect to the coordinate vector (we assume $$F$$ is implicitely a function of the coordinates)

$F(v_1,...,v_r;v_{r+1}) = (v_{r+1} \bullet \nabla)F(v_1,...,v_j,...,v_r).$

The contraction of a Mlt between slots $$j$$ and $$k$$ is defined as the geometric derivative of $$F$$ with respect to slot $$k$$ and the inner geometric derivative with respect to slot $$j$$ (this gives the standard tensor definition of contraction for the case that $$F$$ is a scalar function)

$\begin{split}\operatorname{Contract}(i,j,F) &= \nabla_i \bullet (\nabla_j F(v_1,...,v_i,...,v_j,...,v_r)) \\ &= \nabla_j \bullet (\nabla_i F(v_1,...,v_i,...,v_j,...,v_r)).\end{split}$

This returns a Mltwith slot $$i$$ and $$j$$ removed.

Fmt(lcnt=1, title=None)[source]

Set format for printing of Tensors

Parameters: lcnt – Number of components per line

Notes

Usage for tensor T example is:

T.fmt('2','T')


output is:

print 'T = '+str(A)


with two components per line. Works for both standard printing and for latex.