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

Update model_tutorial.md

parent bfc84d1f
<!-- toc -->
- [Introduction](#introduction)
......@@ -160,8 +159,8 @@ Finally, we are left with the following set of equations and boundary conditions
```math
\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
= \int_{\Gamma_0^N} \underline{y}^* \cdot \underline{g}_0 \text{d}S_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 \\
\displaystyle \underline{y}(\underline{x}) = \underline{0} \quad \text{on } \, \Gamma^D
\end{cases}
```
......@@ -169,7 +168,7 @@ This bilinear system (with respect to the virtual displacement field $` \underli
# Resolution of the linear system
## 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
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} &
```
Plugging these discretized forms into our equilibrium equation gives:
```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
= \int_{\Gamma_0^N} \underline{\mathbb{U}}^{*T} \cdot \underline{\underline{\mathbb{N}}}^T \cdot \underline{g}_0 \text{d}S_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
```
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:
```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
= \underline{\mathbb{U}}^{*T}_h \left[ \int_{\Gamma_0^N} \underline{\underline{\mathbb{N}}}^T \cdot \underline{g}_0 \text{d}S_0 \right]
\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]
```
```math
......@@ -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}} `$:
```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:
```math
......@@ -688,7 +687,7 @@ value = 0.04
````
##### 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
### 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>
......@@ -1178,7 +1177,7 @@ source_parameter);
### 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>
````
......@@ -1375,7 +1374,7 @@ git commit -m "#0 Static case implemented and working."
## 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>
......@@ -1727,7 +1726,7 @@ This is where we are solving our dynamic linear system:
```math
\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
\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