Ferrite-FEM / Ferrite-FEM/Tensors.jl

grad, div, curl defintions

Open
#210 1 comment 2 reactions 0 assignees View on GitHub
Dominant language
Julia
Stars
182
Forks
40
PR merge metrics
No merged PRs in 30d

Description

In the literature, there are different definitions for divergence and curl for second order and higher tensor fields. With the introduction of 3rd order Tensors, #205, we need to define this clearly. This issue is to get an overview over different sources with the goal to make a decision for which definition should be used.

Let's denote a general second-order tensor as $\boldsymbol{S}$ for the discussion. Note that we always assume an orthonormal, right-handed Cartesian coordinate system.

Just comment below the additional definitions and references, and I'll try to keep the tables updated (ping me on Slack if I forget)

# Gradient
AFAIK, this is not problematic (~correct me if I'm wrong~ (see below and [5]). To my knowledge, there are just different notations (which can be confusing in itself), i.e.
```math
\begin{align*}
\mathrm{grad}(\boldsymbol{v}) &= \nabla \boldsymbol{v} = \boldsymbol{v} \otimes \nabla = \frac{\partial v_i}{x_j} \boldsymbol{e}_i\otimes\boldsymbol{e}_j \\
\mathrm{grad}(\boldsymbol{S}) &= \nabla \boldsymbol{S} = \boldsymbol{S} \otimes \nabla = \frac{\partial S_{ij}}{x_k} \boldsymbol{e}_i\otimes\boldsymbol{e}_j\otimes\boldsymbol{e}_k
\end{align*}
```

Reddy [5] does actually define the gradient as $\nabla \boldsymbol{v} = \nabla\otimes \boldsymbol{v} = \frac{\partial v_j}{x_i} \boldsymbol{e}_i\otimes\boldsymbol{e}_j$, which is the transpose. And even more, the derivative $\frac{\partial \boldsymbol{v}}{\boldsymbol{x}} = \frac{\partial v_j}{x_i} \boldsymbol{e}_i\otimes\boldsymbol{e}_j$ follows this 👀

# Divergence
| Tensor form | Index form | Sources | Comment |
| ----------- | ---------- | ------- | ------- |
| $\nabla \cdot \boldsymbol{S} $ | $d_i = \frac{\partial S_{ji}}{x_j}$ | [1], [5] (2.5.21) | |
| $\boldsymbol{S} \cdot \nabla $ | $d_i = \frac{\partial S_{ij}}{x_j}$ | [2] (2.134), [3] (2.3.11), [4] (2.112)| Common in mechanics? |

# Curl
Here it is important that our definition fulfills $\mathrm{grad}(\mathrm{curl}(\boldsymbol{S}))=\boldsymbol{0}$. There exist definitions in the literature that don't. As a precursor, we haven't defined the cross-product for 2nd-order tensors, so for the discussion, let's define the cross product with a vector $\boldsymbol{v}$ as

```math
\begin{align*}
\boldsymbol{S}\times\boldsymbol{v} &= S_{ij} v_k \boldsymbol{e}_i \otimes \boldsymbol{e}_j \times \boldsymbol{e}_k = S_{ij} v_k \boldsymbol{e}_i \otimes [\varepsilon_{jkm} \boldsymbol{e}_m] = S_{ij} v_k \varepsilon_{jkm} \boldsymbol{e}_i \otimes \boldsymbol{e}_m
\\
\boldsymbol{v}\times \boldsymbol{S} &= v_i S_{jk} \boldsymbol{e}_i \times \boldsymbol{e}_j \otimes \boldsymbol{e}_k = v_i S_{jk} [\varepsilon_{ijm} \boldsymbol{e}_m] \otimes \boldsymbol{e}_k = v_i S_{jk} \varepsilon_{ijm} \boldsymbol{e}_m \otimes \boldsymbol{e}_k
\end{align*}
```

| Tensor form | Index form | Sources | Comment |
| ----------- | ---------- | ------- | ------- |
| $- \boldsymbol{S} \times \nabla $ | $d_{ij} = \varepsilon_{opj}\frac{\partial S_{ip}}{x_o}$ | [3] (2.3.18) | |
| $\nabla \times \boldsymbol{S}$ | $d_{ij} = \varepsilon_{opi}\frac{\partial S_{jp}}{x_o}$ | [1] | From the definition of the cross-product, this should be $\nabla \times \boldsymbol{S}^\mathrm{T}$|

where $\varepsilon_{ijk}$ is the Levi-Civita symbol.

# Sources

[1] https://en.wikipedia.org/wiki/Tensor_derivative_(continuum_mechanics)
[2] [Bonet and Wood (2008)](https://www.cambridge.org/core/books/nonlinear-continuum-mechanics-for-finite-element-analysis/67AD6DBAAB77E755C09E7FB82565DA0B)
[3] [Rubin (2000)](https://doi.org/10.1007/978-94-015-9379-3_2)
[4] [Itskov (2015)](https://link.springer.com/book/10.1007/978-3-319-16342-0)
[5] Reddy (2008) (Reddy, J. N. (2008). An introduction to continuum mechanics: with applications. Cambridge University Press.)

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.