diff --git a/src/solver.py b/src/solver.py index 6a113a65c5930a98276b43c3c5604e464a3524f7..043cb86b31501043b12435234d7ddfc4b6a3ec8d 100644 --- a/src/solver.py +++ b/src/solver.py @@ -277,6 +277,165 @@ class Solver: .. [5] M. Torrilhon, N. Sarna (2017). Hierarchical Boltzmann Simulations and Model Error Estimation + Identities: + + - :math:`\boldsymbol{x}_1 \in \mathbb{R}^3`, + :math:`\boldsymbol{x}_2 \in \mathbb{R}^{3 \times 3}`, + ... + - Test function :math:`\boldsymbol{\psi}` is assumed to be + symmetric and trace-less: + + .. math:: + + \boldsymbol{\psi} : \boldsymbol{I} = 0 \\ + (\boldsymbol{\psi})_{\text{sym}} = \boldsymbol{\psi} + + - Trace of vector gradient is divergence of vector: + + .. math:: + + \langle + \boldsymbol{I},\boldsymbol\nabla \boldsymbol{x}_1 + \rangle + = + \boldsymbol{I} : \boldsymbol\nabla \boldsymbol{x}_1 + = + \text{div}(\boldsymbol{x}_1) + + - Inner product has orthogonality property with respect to the + additive symmetric/skewsymmetric tensor decomposition: + + .. math:: + + \begin{align} + \langle + (\boldsymbol{x}_2)_{\text{sym}} + , + \boldsymbol{y}_2 + \rangle + &= + \langle + (\boldsymbol{x}_2)_{\text{sym}} + , + (\boldsymbol{y}_2)_{\text{sym}} + + + (\boldsymbol{y}_2)_{\text{skew}} + \rangle + \\ + &= + \langle + (\boldsymbol{x}_2)_{\text{sym}} + , + (\boldsymbol{y}_2)_{\text{sym}} + \rangle + + + \langle + (\boldsymbol{x}_2)_{\text{sym}} + , + (\boldsymbol{y}_2)_{\text{skew}} + \rangle + \\ + &= + \langle + (\boldsymbol{x}_2)_{\text{sym}} + , + (\boldsymbol{y}_2)_{\text{sym}} + \rangle + \end{align} + + Tricks of the trade: + + .. math:: + + \begin{align} + \langle + {(\boldsymbol\nabla \boldsymbol{s})}_{\text{STF}} + , + \boldsymbol\nabla \boldsymbol{r} + \rangle + &= + \langle + {(\boldsymbol\nabla \boldsymbol{s})}_{\text{sym}} + - + \frac13\text{tr}(\boldsymbol\nabla \boldsymbol{s})\boldsymbol{I} + , + \boldsymbol\nabla \boldsymbol{r} + \rangle + \\ + &= + \langle + {(\boldsymbol\nabla \boldsymbol{s})}_{\text{sym}} + , + \boldsymbol\nabla \boldsymbol{r} + \rangle + -\frac13\text{tr}(\boldsymbol\nabla \boldsymbol{s}) + \langle + \boldsymbol{I},(\boldsymbol\nabla \boldsymbol{r}) + \rangle + \\ + &= + \langle + {(\boldsymbol\nabla \boldsymbol{s})}_{\text{sym}} + , + {(\boldsymbol\nabla \boldsymbol{r})}_{\text{sym}} + \rangle + -\frac13\text{tr}(\boldsymbol\nabla \boldsymbol{s}) + \text{tr}(\boldsymbol\nabla \boldsymbol{r}) + \\ + &= + \langle + {(\boldsymbol\nabla \boldsymbol{s})}_{\text{sym}} + , + {(\boldsymbol\nabla \boldsymbol{r})}_{\text{sym}} + \rangle + -\frac13\text{div}(\boldsymbol{s}) + \text{div}(\boldsymbol{r}) + \end{align} + + .. math:: + + \begin{align} + \langle + {(\boldsymbol\nabla \boldsymbol{s})}_{\text{STF}} + , + \boldsymbol{\psi} + \rangle + &= + \langle + {(\boldsymbol\nabla \boldsymbol{s})}_{\text{sym}} + - + \frac13\text{tr}(\boldsymbol\nabla \boldsymbol{s})\boldsymbol{I} + , + \boldsymbol{\psi} + \rangle + \\ + &= + \langle + {(\boldsymbol\nabla \boldsymbol{s})}_{\text{sym}} + , + \boldsymbol{\psi} + \rangle + -\frac13\text{tr}(\boldsymbol\nabla \boldsymbol{s}) + \langle + \boldsymbol{I},\boldsymbol{\psi} + \rangle + \\ + &= + \langle + {\boldsymbol\nabla \boldsymbol{s}} + , + {\boldsymbol{\psi}} + \rangle + -\frac13\text{div}(\boldsymbol{s}) + \text{tr}(\boldsymbol{\psi}) + \\ + &= + \langle + {\boldsymbol\nabla \boldsymbol{s}} + , + {\boldsymbol{\psi}} + \rangle + \end{align} """ # Check if all mesh boundaries have bcs presibed frm input