Hi,

Do You have some code to work with 4th order tensors?

BSB Jun-01-02
wolfao.
Posted on 2002-06-01 06:45:45 by wolfao
Are you referring to Tensor and Flexor skin deformers?
Posted on 2002-06-01 11:18:33 by Homer
Hello,

I?m talking about 4th order tensors that are a linear trasnformation (Eq. 1) where Qij is the orthogonal 2nd order tensor.

T'ijkl=QmiQnjQpkQqlTmnpq (1)

For the 2nd order tensors, the definition is like one in Eq. 2

T'ij=QmiQnjTmn (2)

2nd order tensors can be visualized as matrices and, consequently can be inverted. The problem is to invert 4th order tensors to get a result like one in Eq. 3 where dim is the Kronecker delta.

Tijkl^(-1)Tklmn=dimdjn (3)

This studies are part of Tensorial Calculus.

Thanks anyway.
Posted on 2002-06-01 12:40:20 by wolfao
Im guessing you'd have a hard time finding such specific code in ASM, but if your lucky, you might find something produced by some university in C/C++.

:NaN:
Posted on 2002-06-01 22:19:23 by NaN
I tried Altavista but I didn't find nothing.
I'm coding routines to work wih 2nd order tensors. I'll code 4th order tensors too, later.

Thanks.
Posted on 2002-06-02 07:41:09 by wolfao
Wolfao why do you want code for 4th order tensors? Are you trying to graphically display complex manifolds or something or are you trying to find the second order equations for the unified feild theory that Einstein and others could not find nor could prove that they actually exist. That is heavy stuff and i think that you will have to code that from scratch.

Good luck.
Posted on 2002-06-02 11:20:37 by titan
I'm coding in Fortran a routine to calculate stress increments given deformation increments by the way of an elastoplastic constitutive relation. It is necessary to do some tensorial calculations like addition, multiplication (scalar by tensor, tensor by tensor giving a scalar, tensor by tensor giving a higher order tensor, etc.) and invertion (2nd and 4th order tensors). I did a DLL (coded in Assembly) called Matrix.dll for doing operation on 2nd order tensors=matrices. I want to expand that DLL therefore it will be used with 4th order tensos too. It will be used with my Fortran routine, as well. The goal is to increase Fortran routine's speed calculation. Later, the Fortran code will be put in a Finite Element program that analyses the behavior of geotechnical structures like dams and tunnels.
Posted on 2002-06-02 17:42:59 by wolfao
Wolfoa i don't really understand what your attempting to do but if the letters i,j,k,l are hypercomplex numbers or qauternions forming a linear algebra over the field of real numbers then i don't see a complication for making some code to work with them.

Correct me if i'm wrong for the following interpretation of what you wrote in your equations:

ij = k ; jk = i ; ki = j ; ji = - k ; kj = - i and so forth

and ii =jj=kk = -1

and L =1

and T = tensor

p and q are integers?

Fill me in on on the other variables if you care to. I found some material on tensors in an old encyclopedia last nite but the symbol use seems some what different and explanations are involved.

Maybe you could give me a name of a good text book on Tensoral calculas. This stuff actually interests me.

Again good luck.:alright:
Posted on 2002-06-03 15:32:28 by titan
Tensor calculus is used in various parts of physics. I use it in
continuum mechanics.

The letters i,j,k,l,m,n,p,q are indices ranging from 1 to 3
(3 coordinate axis). Generally we write subscript (or superscript)
indices but here, with olny plain text, it's dificult.

To clarify I'll show one way to visualize the entities represented
by indices.

``````
Scalar (0th order tensor)
t=5   (no indices !)      (1)
Vector (1st order tensor)
/ 1 \
vi=| 2 |                  (2)
\ 3 /
Matrix (2nd order tensor)
/ 1 4 5 \
aij=| 4 2 6 |             (3)
\ 5 6 3 /
3rd order tensor
eijk= stack of three matrices forming a cube   (4)
4th order tensor
Tijkl= ??? (how can we visualize it?)          (5)
``````

The matrix multiplication can be represented using indices
according with Equation (6) where Sumk stands for summation
over k from 1 to 3. The expanded form of Eq (6) is also showed.

``````
cij=Sumk aik.bkj               (6)
i.e.
c11=a11.b11+a12.b21+a13.b31
c12=a11.b12+a12.b22+a13.b32
c13=a11.b13+a12.b23+a13.b33
...
c33=a31.b13+a32.b23+a33.b33
``````

The Einstein's convention is to sum repeated indices over the
standard range (here it's 3) eliminating the Sumk (Summation
symbol). Therefore, Equation (6) changes to: (Eq. 7)

``````
cij=aik.bkj                  (7)
``````

In continuum mechanics there exists two fundamental tensors:
stress tensor and strain tensor. The first represents the state of
stress at a point inside the continuum and the second can be
figured as the rate of displacement with respect to the original
length of the infinitesimal point.

The constitutive relation is the mathematics that represent our
idea above the mechanical behavior of the material. Generally
it is given in terms of a 4th order tensor, for example, the linear
elastic constitutive tensor Cijkl.

The stress (Sij) at a point for an elastic material can be calculated
given the strains (Ekl) and the tensor Cijkl according with Eq. (8)
or with Einsteins's convention (Eq. 9) where Sumk=Summation
over k (repeated index) and Suml=Summation over l (repeated
index), both ranging from 1 to 3.

``````
Sij=Sumk Suml Cijkl.Ekl                  (8)
Sij=Cijkl.Ekl                            (9)
``````

That's all for now. The books about tensorial calculus are:

``````
A. D. Michal. Matrix and Tensor Calculus. Galcit Aeronautical
Series. John Wiley & Sons, Inc.; Chapman & Hall, Ltd.,
New York; London, 1948.

H. D. Block. Introduction to Tensor Analysis. Charles E. Merrill
Books, Inc., Columbus, OH, 1962.
``````

One very good book related with Continuum mechanics:

``````
Lai, W. M., Rubin, D., and Krempl, E. Introduction to Continuum
Mechanics. Pergamon Press, UK, 1993.
``````

For constitutive relations one of the best is:

``````
Desai, C.S. and Siriwardane, H.J., Constitutive Laws for
Engineering Materials, Prentice Hall, USA, 1984.
``````

Hope It helps.

Bras?lia, Jun 04 2002.
wolfao.
Posted on 2002-06-04 10:41:36 by wolfao

``````4th order tensor
Tijkl= ??? (how can we visualize it?)          (5)
``````

Be the 4th dimension time, or just space.. in the latter case, you may imagine it as a Vector of stacks of three matrices forming a cube; i.e. just a vector of cubes.
Posted on 2002-06-04 16:37:23 by Maverick
Maverick you may also visualize the 4th dimension in this way.

Euclidean 3 space has three coordintates X Y Z

Pick a point in that space and then visualize a sphere of radius 1 with that point as its center. You now have a point that can have an infinite number of different size spheres with that same point as center. 4th dimensional coordinates are X Y Z R

To add a fifth dimension just give the sphere another number from 0 to infinity that represents its color.

Mathematics is so abstract.

:alright:
Posted on 2002-06-04 17:47:45 by titan
Yup, I've read this sort of representations in Brian Greene's "The Elegant Universe".. good book. :)
Posted on 2002-06-04 19:03:44 by Maverick
Nowadays I'm visualizing 4th order tensors as matrix of matrices. This way is very good to implement tensorial calculus inside MathCAD2000.

For example:
``````

| / 1 2 3 \  / 7 2 3 \  / 1 2 3 \ |
| | 2 4 5 |  | 2 8 9 |  | 2 4 5 | |
| \ 3 5 6 /  \ 3 9 5 /  \ 3 5 6 / |
| / 1 2 3 \  / 1 2 3 \  / 1 2 3 \ |
T =   | | 2 4 5 |  | 2 4 5 |  | 2 4 5 | |
| \ 3 5 6 /  \ 3 5 6 /  \ 3 5 6 / |
| / 1 2 3 \  / 1 2 3 \  / 1 2 3 \ |
| | 2 4 5 |  | 2 4 5 |  | 2 4 5 | |
| \ 3 5 6 /  \ 3 5 6 /  \ 3 5 6 / |

``````

To get one element of the tensor T we can use (T12)23=9, for example. Think like this: matrix T has the element T12 that is one matrix too and this matrix (T12) has one element (23) that is the number 9.

Best regards.

Brasilia, Jun 4 2002.
wolfao.
Posted on 2002-06-04 19:27:29 by wolfao
wolfao, it would appear that you could just scale existing matrix routines to process tensors. What makes this not an option? Or, is this what is required?
Posted on 2002-06-04 19:49:00 by bitRAKE
BitTAKE,

Really by converting 4th order tensors to matrix is the olny way to do some operations like inversion. The 4th order tensor is transformed in one 9x9 matrix inverted and then converted back. We use 9x9 matrices, not that 3x3 matrix that I showed before. That matrix (3x3) is a matrix of matrices, just to be used inside MathCad.

For symmetric 4th order tensors we can use 6x6 matrices instead of 9x9 ones, improving speed. The problem arises when we are treating the 4th order tensor build from two Kronecker deltas because this tensor is not symmetric. Remark, we almost always use this tensor with constitutive relations.

The correct way to convert one R3xR3xR3xR3 space in another R6xR6 is by the use of Covariant & Contravariants theories. I didn?t have time to study that topics yet. Refer to Helnwein (2000).

References:

HELNWEIN, Peter (2000). Some Remarks on the Compressed Matrix Representation of Symmetric Second-Order and Fourth-Order Tensors. Computer Methods in Applied Mechanics and Engineering. Elsevier.

Regards,

Bras?lia, Jun 5 2002.
wolfao.
Posted on 2002-06-05 07:42:50 by wolfao

BitTAKE
'bitTRAKE' - that is funny. Really, I try to give. ;)
Posted on 2002-06-05 08:04:24 by bitRAKE