Services & Resources / Wolfram Forums / MathGroup Archive

MathGroup Archive 2010

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Contraction of Tensors in Mathematica

  • To: mathgroup at
  • Subject: [mg112546] Re: Contraction of Tensors in Mathematica
  • From: Simon <simonjtyler at>
  • Date: Sun, 19 Sep 2010 05:39:34 -0400 (EDT)
  • References: <i727in$etb$>

Hi Sam,

Hopefully the following example will be clear enough to generalise:

In[1]:= A=Array[a,{2,2,2}]
Out[1]= {{{a[1,1,1],a[1,1,2]},{a[1,2,1],a[1,2,2]}},

In[2]:= Tr[A,Plus,2]
Out[2]= {a[1,1,1]+a[2,2,1],a[1,1,2]+a[2,2,2]}

In[3]:= Tr[Transpose[A,{1,3,2}],Plus,2]
Out[3]= {a[1,1,1]+a[2,1,2],a[1,2,1]+a[2,2,2]}

A trace to depth 2, traces over the first two indices.
Take the appropriate Transpose[] to move the indices you want to trace
to the front (leaving the rest in the same order).


On Sep 18, 9:25 pm, Sam Takoy <sam.ta... at> wrote:
> Hi,
> I this message I will suppress the covariant/contravariant nature of
> tensors.
> Suppose I have two tensors A_ijkl and B_rstu (denoted by a and b in
> Mathematica). Each tensor is presented for a 4-deep list. Now, I want to
> form a new tensor:
> C_ijklrstu = A_ijkl*B_rstu
> and I want C to be represented by an 8-deep list. I've gathered is that
> what I need to do is
> c = Outer[Times, a, b];
> Great!
> Now supposed I want to do some contraction to define a new tensor
> D_jklrsu = C_ijklrsiu?
> How do I do that?
> Many thanks in advance!
> Sam

  • Prev by Date: Re: Problem with Run[]
  • Next by Date: Re: Can somebody integrate this function ?
  • Previous by thread: Re: Contraction of Tensors in Mathematica
  • Next by thread: Re: Contraction of Tensors in Mathematica