Commit f49b9a17 by DIAZ Jerome

### Update model_tutorial.md

parent bfc84d1f
 - [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 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 $: In VariationalFormulation.hpp: ... ... @@ -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 $In VariationalFormulation.hpp:  ... ... @@ -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 \$

In VariationalFormulation.hpp:

... ... @@ -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!