parrot_2 / List.html
aikubo's picture
Upload folder using huggingface_hub
23ead00 verified
<p><a href="porous_flow/tutorial_00.md">Start</a> |
<a href="porous_flow/tutorial_03.md">Previous</a> |
<a href="porous_flow/tutorial_05.md">Next</a></p>
<h1>Porous Flow Tutorial Page 04. Adding solid mechanics</h1>
<p>In this Page, solid mechanics is added to the thermo-hydro simulation of preious Pages. The equations are discussed in <a href="porous_flow/governing_equations.md">governing equations</a>. Only quasi-static solid mechanics is considered here, without gravity, so the equations read
\begin{equation}
\sigma_{ij}^{\mathrm{eff}} = \sigma_{ij}^{\mathrm{tot}} + \alpha_{B}\delta_{ij}P
\end{equation}
\begin{equation}
\sigma_{ij}^{\mathrm{eff}} = E_{ijkl}(\epsilon_{kl}^{\mathrm{elastic}} - \delta_{kl}\alpha^{\mathrm{linear}}<em>{T}(T - T</em>{\mathrm{ref}}))
\end{equation}
\begin{equation}
\label{eq:solid}
0 = \nabla_{i}\sigma_{ij}^{\mathrm{eff}} - \alpha_{B}\nabla_{j}P \ .
\end{equation}
As described previously, $P$ is the porepressure, $T$ the temperature and $\alpha_{B}$ is the Biot coefficient. The additional nomenclature used here is</p>
<ul>
<li>
<p>$\sigma^{\mathrm{eff}}$ is the effective stress tensor</p>
</li>
<li>
<p>$\sigma^{\mathrm{tot}}$ is the total stress tensor</p>
</li>
<li>
<p>$E_{ijkl}$ is the elasticity tensor of the drained porous skeleton</p>
</li>
<li>
<p>$\alpha^{\mathrm{linear}}_{T}$ is the linear thermal expansion
coefficient. Note that this is the <em>linear</em> version, in contrast to
the volumetric coefficients introduced in <a href="porous_flow/tutorial_01.md">Page 1</a>.</p>
</li>
</ul>
<p>Once again, before attempting to write an input file, a rough estimate of the expected nonlinear residuals must be performed, as discussed in <a href="porous_flow/convergence.md">convergence criteria</a>. The residual for the [eq:solid] is approximately
\begin{equation}
R_{\sigma} \approx V\epsilon_{\sigma}
\end{equation}
Corresponding to the choice $\epsilon_{P}\approx 1\,$Pa.m$^{-1}$ made in <a href="porous_flow/tutorial_02.md">Page 02</a> the choice $\epsilon_{\sigma}\approx 1\,$Pa.m$^{-1}$ may be made here. This means $R_{\sigma}\approx V$ which is significantly greater than $R_{P}\approx 10^{-10}V$ for the fluid equation. Therefore, the displacement variables are scaled by $10^{-10}$.</p>
<p>Many mechanically-related MOOSE objects (<code>Kernels</code>, <code>BCs</code>, etc) accept the <code>use_displaced_mesh</code> input parameter. For virtually all PorousFlow simulations, it is appropriate to set this to false: <code>use_displaced_mesh = false</code>. This means that the Kernel's residual (or BC's residual, Postprocessor's value, etc) will be evaluated using the undisplaced mesh. This has the great numerical advantage that the solid-mechanics elasticity equations remain linear.</p>
<p>Also, many mechanically-related MOOSE objects require the <code>displacements</code> input parameter. Therefore, it is convenient to put this parameter into the <code>GlobalParams</code> block:</p>
<p>!listing modules/porous_flow/examples/tutorial/04.i start=[GlobalParams] end=[Variables]</p>
<p>To model this thermo-hydro-mechanical system, the <code>PorousFlowBasicTHM</code> action needs to be enhanced to read:</p>
<p>!listing modules/porous_flow/examples/tutorial/04.i start=[Variables] end=[BCs]</p>
<p>The boundary conditions used here are roller boundary conditions, as well as boundary conditions that model the effect of the fluid porepressure on the injection area:</p>
<p>!listing modules/porous_flow/examples/tutorial/04.i start=[BCs] end=[AuxVariables]</p>
<p>The <code>TensorMechanics</code> module of MOOSE provides some useful <code>AuxKernels</code> for extracting effective stresses of interest to this problem (the effective radial stress and the effective hoop stress)</p>
<p>!listing modules/porous_flow/examples/tutorial/04.i start=[AuxVariables] end=[Modules]</p>
<p>Finally, some mechanics-related <code>Materials</code> need to be defined</p>
<p>!listing modules/porous_flow/examples/tutorial/04.i start=[elasticity_tensor] end=[Preconditioning]</p>
<p>An animation of the results is shown in [tut04_gif_fig].</p>
<p>!media porous_flow/tut04.gif style=width:50%;margin-left:10px caption=Displacement (magnified by 100 times) and effective hoop-stress evolution in the borehole-aquifer-caprock system. id=tut04_gif_fig</p>
<p>The dynamics of this model are fascinating, and readers are encouraged to pause and play with parameters to explore how they effect the final result. In fact, this model is very similar to the "THM Rehbinder" test in PorousFlow's test suite. Rehbinder <a href="rehbinder1995">!citep</a> derived analytical solutions for a similar THM problem, and MOOSE replicates his result exactly:</p>
<p>!media media/porous_flow/thm_rehbinder_temperature_fig.png style=width:60%;margin-left:10px caption=Comparison between MOOSE and Rehbinder's analytical solution. id=fig_thm_t.fig</p>
<p>!media media/porous_flow/thm_rehbinder_porepressure_fig.png style=width:60%;margin-left:10px caption=Comparison between MOOSE and Rehbinder's analytical solution. id=fig:thm_p.fig</p>
<p>!media media/porous_flow/thm_rehbinder_displacement_fig.png style=width:60%;margin-left:10px caption=Comparison between MOOSE and Rehbinder's analytical solution. id=fig:thm_d.fig</p>
<p>!bibtex bibliography</p>
<p><a href="porous_flow/tutorial_00.md">Start</a> |
<a href="porous_flow/tutorial_03.md">Previous</a> |
<a href="porous_flow/tutorial_05.md">Next</a></p>