### Projection of 4th order Tensor

164

views

1

Hello everyone,

I'm trying to project 4th order tensor on finite element space. Is there any way to do that ? Is it possible to do it with Quadrature finite element space ? I tried to create TensorFunctionSpace but it did not work. I think it only works with second order tensors.

I'm trying to project 4th order tensor on finite element space. Is there any way to do that ? Is it possible to do it with Quadrature finite element space ? I tried to create TensorFunctionSpace but it did not work. I think it only works with second order tensors.

`V = TensorFunctionSpace(mesh, 'CG', 1, shape=(3,3,3,3), symmetry=True)`

Thanks.
Community: FEniCS Project

### 1 Answer

5

The problem here is symmetry. There are more notions of symmetry for tensors with rank 4 as opposed to rank 2 tensor where there is only one notorious symmetry `T_{ij} = T_{ji}` in flat euclidean space.

Try to do

So prepare your own "symmetry" element as, e.g.

Warning: This should be well supported in UFL codebase, but you'll encounter some (many) problems in DOLFIN (IO, plotting, ...)

Try to do

```
elem = TensorElement("CG", mesh.ufl_cell(), shape=(3,3), symmetry=True)
elem.symmetry()
```

and you'll see how is symmetry mapping constructed for (3, 3) tensor. It gives `{(2, 0): (0, 2), (1, 0): (0, 1), (2, 1): (1, 2)}`

.So prepare your own "symmetry" element as, e.g.

```
sym = {(1, 0, 0): (0, 1, 0)}
elem = TensorElement("CG", mesh.ufl_cell(), 1, shape=(3, 3, 3), symmetry=sym)
```

Warning: This should be well supported in UFL codebase, but you'll encounter some (many) problems in DOLFIN (IO, plotting, ...)

2

Do

`I4 = outer(Identity(3), Identity(3))`

or for index notation `I4 = as_tensor(delta(i, j) * delta(k, l), (i, j, k, l))`

written
4 months ago by
Michal Habera

Please login to add an answer/comment or follow this question.

Thank you for your advice. That's true. But lets say that, I do not give any information about the symmetry and keep that region empty. Then when I am trying to project by using the 4th order function space, I got error as following :

I simply used to project 4th order identity tensor over the 4th order TensorFunctionSpace. But it gives an error that the shapes do not match. However for both I4 and V the shape is (3,3,3,3). What can be reason of that error ? Thanks