Attention une mise à jour du service Gitlab va être effectuée le mardi 30 novembre entre 17h30 et 18h00. Cette mise à jour va générer une interruption du service dont nous ne maîtrisons pas complètement la durée mais qui ne devrait pas excéder quelques minutes. Cette mise à jour intermédiaire en version 14.0.12 nous permettra de rapidement pouvoir mettre à votre disposition une version plus récente.

Commit f49b9a17 authored by DIAZ Jerome's avatar DIAZ Jerome
Browse files

Update model_tutorial.md

parent bfc84d1f
<!-- toc --> <!-- toc -->
- [Introduction](#introduction) - [Introduction](#introduction)
...@@ -160,8 +159,8 @@ Finally, we are left with the following set of equations and boundary conditions ...@@ -160,8 +159,8 @@ Finally, we are left with the following set of equations and boundary conditions
```math ```math
\begin{cases} \begin{cases}
\displaystyle \forall \underline{y}^* \in \mathcal{V}, \quad \displaystyle \int_{\Omega _{0}}^{} \rho_0 \, \underline{y}^{*} \cdot \underline{\ddot{y}} \textrm{d}\Omega_0 + \int_{\Omega_{0}}^{} \underline{\hat{\varepsilon}}(\underline{y}^*)^T \cdot \underline{\underline{\hat{\text{A}}}} \cdot \underline{\hat{\varepsilon}}(\underline{y}) \textrm{d}\Omega_0 \displaystyle \forall \underline{y}^* \in \mathcal{V}, \quad \displaystyle \int_{\Omega _{0}}^{} \rho_0 \, \underline{y}^{*} \cdot \underline{\ddot{y}} \, \textrm{d}\Omega_0 + \int_{\Omega_{0}}^{} \underline{\hat{\varepsilon}}(\underline{y}^*)^T \cdot \underline{\underline{\hat{\text{A}}}} \cdot \underline{\hat{\varepsilon}}(\underline{y}) \, \textrm{d}\Omega_0
= \int_{\Gamma_0^N} \underline{y}^* \cdot \underline{g}_0 \text{d}S_0 \\ = \int_{\Gamma_0^N} \underline{y}^* \cdot \underline{g}_0 \, \text{d}S_0 \\
\displaystyle \underline{y}(\underline{x}) = \underline{0} \quad \text{on } \, \Gamma^D \displaystyle \underline{y}(\underline{x}) = \underline{0} \quad \text{on } \, \Gamma^D
\end{cases} \end{cases}
``` ```
...@@ -169,7 +168,7 @@ This bilinear system (with respect to the virtual displacement field $` \underli ...@@ -169,7 +168,7 @@ This bilinear system (with respect to the virtual displacement field $` \underli
# Resolution of the linear system # Resolution of the linear system
## Spatial discretization ## Spatial discretization
In order to solve our previoulsy defined bilinear (with respect to $`\underline{y}`$ and $`\underline{y}^*`$) system, we will be using the standard Galerkin method. It consists of approximating the function of interest (the displacement field in our case) by a finite sum of known shape functions (polynomials usually) $`\phi_k(\underline{\xi})`$ weighted by unkown coefficients $`y_{jk} `$ where $`k`$ is the order of the shape functions used. In 2D, the discretization of the displacement field gives: In order to solve our previoulsy defined bilinear system (with respect to $`\underline{y}`$ and $`\underline{y}^*`$), we will be using the standard Galerkin method. It consists of approximating the function of interest (the displacement field in our case) by a finite sum of known shape functions (polynomials usually) $`\phi_k(\underline{\xi})`$ weighted by unkown coefficients $`y_{jk} `$ where $`k \in [1, \, N + 1] `$, $` N `$ being the order of the shape functions used. In 2D, the discretization of the displacement field gives:
```math ```math
y_j = \sum_{k=1}^{N+1} y_{jk} \phi_k (\underline{\xi}) \quad j \in [x,y] y_j = \sum_{k=1}^{N+1} y_{jk} \phi_k (\underline{\xi}) \quad j \in [x,y]
...@@ -236,16 +235,16 @@ y_{yN+1} & ...@@ -236,16 +235,16 @@ y_{yN+1} &
``` ```
Plugging these discretized forms into our equilibrium equation gives: Plugging these discretized forms into our equilibrium equation gives:
```math ```math
\forall \, \underline{\mathbb{U}}^*_h \in \mathcal{V}_h, \quad \displaystyle \int_{\Omega_0} \rho_0 \underline{\mathbb{U}}^{*T}_h \underline{\underline{\mathbb{N}}} ^T \cdot \underline{\underline{\mathbb{N}}} \cdot \underline{\dot{\mathbb{V}}}_h \text{d}\Omega_0 + \int_{\Omega_{0}}^{} \underline{\mathbb{U}}^{*T}_h \cdot \underline{\underline{\mathbb{B}}}^T \cdot \underline{\underline{\hat{\text{A}}}} \cdot \underline{\underline{\mathbb{B}}} \cdot \underline{\mathbb{U}}_h \textrm{d}\Omega_0 \forall \, \underline{\mathbb{U}}^*_h \in \mathcal{V}_h, \quad \displaystyle \int_{\Omega_0} \rho_0 \underline{\mathbb{U}}^{*T}_h \underline{\underline{\mathbb{N}}} ^T \cdot \underline{\underline{\mathbb{N}}} \cdot \underline{\dot{\mathbb{V}}}_h \, \text{d}\Omega_0 + \int_{\Omega_{0}}^{} \underline{\mathbb{U}}^{*T}_h \cdot \underline{\underline{\mathbb{B}}}^T \cdot \underline{\underline{\hat{\text{A}}}} \cdot \underline{\underline{\mathbb{B}}} \cdot \underline{\mathbb{U}}_h \, \textrm{d}\Omega_0
= \int_{\Gamma_0^N} \underline{\mathbb{U}}^{*T} \cdot \underline{\underline{\mathbb{N}}}^T \cdot \underline{g}_0 \text{d}S_0 = \int_{\Gamma_0^N} \underline{\mathbb{U}}^{*T} \cdot \underline{\underline{\mathbb{N}}}^T \cdot \underline{g}_0 \, \text{d}S_0
``` ```
where $`\underline{\dot{\mathbb{V}}}_h `$ is time derivative of the unkown coefficients $`\dot{y}_{jk}`$ relative to the velocity field (which is itself the time derivative of the unknown weighting coefficients of the displacement field). where $`\underline{\dot{\mathbb{V}}}_h `$ is time derivative of the unkown coefficients $`\dot{y}_{jk}`$ relative to the velocity field (which is itself the time derivative of the unknown weighting coefficients of the displacement field).
This equation can be factorized and simplified as follows: This equation can be factorized and simplified as follows:
```math ```math
\forall \, \underline{\mathbb{U}}^*_h \in \mathcal{V}_h, \quad \displaystyle \underline{\mathbb{U}}^{*T}_h \left[ \int_{\Omega_0} \rho_0 \underline{\underline{\mathbb{N}}} ^T \cdot \underline{\underline{\mathbb{N}}} \text{d}\Omega_0 \right] \underline{\dot{\mathbb{V}}}_h + \underline{\mathbb{U}}^{*T}_h \left[ \int_{\Omega_{0}}^{} \underline{\underline{\mathbb{B}}}^T \cdot \underline{\underline{\hat{\text{A}}}} \cdot \underline{\underline{\mathbb{B}}} \textrm{d}\Omega_0 \right] \underline{\mathbb{U}}_h \forall \, \underline{\mathbb{U}}^*_h \in \mathcal{V}_h, \quad \displaystyle \underline{\mathbb{U}}^{*T}_h \left[ \int_{\Omega_0} \rho_0 \underline{\underline{\mathbb{N}}} ^T \cdot \underline{\underline{\mathbb{N}}} \, \text{d}\Omega_0 \right] \underline{\dot{\mathbb{V}}}_h + \underline{\mathbb{U}}^{*T}_h \left[ \int_{\Omega_{0}}^{} \underline{\underline{\mathbb{B}}}^T \cdot \underline{\underline{\hat{\text{A}}}} \cdot \underline{\underline{\mathbb{B}}} \, \textrm{d}\Omega_0 \right] \underline{\mathbb{U}}_h
= \underline{\mathbb{U}}^{*T}_h \left[ \int_{\Gamma_0^N} \underline{\underline{\mathbb{N}}}^T \cdot \underline{g}_0 \text{d}S_0 \right] = \underline{\mathbb{U}}^{*T}_h \left[ \int_{\Gamma_0^N} \underline{\underline{\mathbb{N}}}^T \cdot \underline{g}_0 \, \text{d}S_0 \right]
``` ```
```math ```math
...@@ -261,7 +260,7 @@ where $` \underline{\underline{\mathbb{M}}} `$ corresponds to the <strong>mass m ...@@ -261,7 +260,7 @@ where $` \underline{\underline{\mathbb{M}}} `$ corresponds to the <strong>mass m
Here the only time dependency for our elastic problem is the term associated to the inertia, involving the acceleration field $` \ddot{\underline{y}} `$: Here the only time dependency for our elastic problem is the term associated to the inertia, involving the acceleration field $` \ddot{\underline{y}} `$:
```math ```math
\int_{\Omega _{0}}^{} \rho_0 \, \underline{y}^{*} \cdot \underline{\ddot{y}} \textrm{d}\Omega_0 \int_{\Omega _{0}}^{} \rho_0 \, \underline{y}^{*} \cdot \underline{\ddot{y}} \, \textrm{d}\Omega_0
``` ```
This means that in order to solve our system, we just need to update the acceleration values (no need to solve a linear system) with a selected time scheme , once we have the static solution. In this demo, we will implement the Newmark time scheme, which reads: This means that in order to solve our system, we just need to update the acceleration values (no need to solve a linear system) with a selected time scheme , once we have the static solution. In this demo, we will implement the Newmark time scheme, which reads:
```math ```math
...@@ -688,7 +687,7 @@ value = 0.04 ...@@ -688,7 +687,7 @@ value = 0.04
```` ````
##### Transient source. ##### Transient source.
This corresponds to $` \displaystyle \underline{g}_0(\underline{x}) \quad \text{in} \quad \int_{\Gamma_0^N} \underline{g}_0 \cdot \underline{y}^* \text{d}S_0 `$ This corresponds to $` \displaystyle \underline{g}_0(\underline{x}) \quad \text{in} \quad \int_{\Gamma_0^N} \underline{g}_0 \cdot \underline{y}^* \, \text{d}S_0 `$
```` ````
...@@ -1079,7 +1078,7 @@ git commit -m "#0 System linear algebra properly initialized; new method RunStat ...@@ -1079,7 +1078,7 @@ git commit -m "#0 System linear algebra properly initialized; new method RunStat
### Source operator ### Source operator
RHS for the system is just the surfacic source; we therefore need to define the related operator. This corresponds to the surfacic loading vector $` \displaystyle \underline{\mathbb{F}} = \int_{\Gamma_0^N} \underline{\underline{\mathbb{N}}}^T \cdot \underline{g}_0 \text{d}S_0 `$: RHS for the system is just the surfacic source; we therefore need to define the related operator. This corresponds to the surfacic loading vector $` \displaystyle \underline{\mathbb{F}} = \int_{\Gamma_0^N} \underline{\underline{\mathbb{N}}}^T \cdot \underline{g}_0 \, \text{d}S_0 `$:
<p><strong><font color="green">In VariationalFormulation.hpp:</font></strong></p> <p><strong><font color="green">In VariationalFormulation.hpp:</font></strong></p>
...@@ -1178,7 +1177,7 @@ source_parameter); ...@@ -1178,7 +1177,7 @@ source_parameter);
### Stiffness operator ### Stiffness operator
We also need to define the sitffness matrix. This corresponds to $` \displaystyle \underline{\underline{\mathbb{K}}} = \int_{\Omega_{0}}^{} \underline{\underline{\mathbb{B}}}^T \cdot \underline{\underline{\hat{\text{A}}}} \cdot \underline{\underline{\mathbb{B}}} \textrm{d}\Omega_0 `$ We also need to define the sitffness matrix. This corresponds to $` \displaystyle \underline{\underline{\mathbb{K}}} = \int_{\Omega_{0}}^{} \underline{\underline{\mathbb{B}}}^T \cdot \underline{\underline{\hat{\text{A}}}} \cdot \underline{\underline{\mathbb{B}}} \, \textrm{d}\Omega_0 `$
<p><strong><font color="green">In VariationalFormulation.hpp:</font></strong></p> <p><strong><font color="green">In VariationalFormulation.hpp:</font></strong></p>
```` ````
...@@ -1375,7 +1374,7 @@ git commit -m "#0 Static case implemented and working." ...@@ -1375,7 +1374,7 @@ git commit -m "#0 Static case implemented and working."
## Defining the mass operator ## Defining the mass operator
Here we are defining the mass matrix required for the dynamic part of the run $` \underline{\underline{\mathbb{M}}} = \int_{\Omega_0} \rho_0 \underline{\underline{\mathbb{N}}} ^T \cdot \underline{\underline{\mathbb{N}}} \text{d}\Omega_0 `$ Here we are defining the mass matrix required for the dynamic part of the run $` \underline{\underline{\mathbb{M}}} = \int_{\Omega_0} \rho_0 \underline{\underline{\mathbb{N}}} ^T \cdot \underline{\underline{\mathbb{N}}} \, \text{d}\Omega_0 `$
<p><strong><font color="green">In VariationalFormulation.hpp:</font></strong></p> <p><strong><font color="green">In VariationalFormulation.hpp:</font></strong></p>
...@@ -1727,7 +1726,7 @@ This is where we are solving our dynamic linear system: ...@@ -1727,7 +1726,7 @@ This is where we are solving our dynamic linear system:
```math ```math
\begin{cases} \begin{cases}
\\underline{\underline{\mathbb{M}}} \cdot \underline{\dot{\mathbb{V}}}_h + \underline{\underline{\mathbb{K}}} \cdot \underline{\mathbb{U}}_h = \underline{\mathbb{F}} \\ \underline{\underline{\mathbb{M}}} \cdot \underline{\dot{\mathbb{V}}}_h + \underline{\underline{\mathbb{K}}} \cdot \underline{\mathbb{U}}_h = \underline{\mathbb{F}} \\
\underline{y}(\underline{x}) = \underline{0} \quad \text{on} \quad \Gamma^D \underline{y}(\underline{x}) = \underline{0} \quad \text{on} \quad \Gamma^D
\end{cases} \end{cases}
``` ```
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment