1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
|
=====================
Tutorials, by Physics
=====================
.. highlight:: none
Below we list examples which simulate particular physics problems so that users interested in a particular set of governing equations can easily locate a relevant example. Often PETSc will have several examples looking at the same physics using different numerical tools, such as different discretizations, meshing strategy, closure model, or parameter regime.
Poisson
=======
The Poisson equation
.. math::
-\Delta u = f
is used to model electrostatics, steady-state diffusion, and other physical processes. Many PETSc examples solve this equation.
Finite Difference
:2D: `SNES example 5 <PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/snes/tutorials/ex5.c.html>`_
:3D: `KSP example 45 <PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/ksp/ksp/tutorials/ex45.c.html>`_
Finite Element
:2D: `SNES example 12 <PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/snes/tutorials/ex12.c.html>`_
:3D: `SNES example 12 <PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/snes/tutorials/ex12.c.html>`_
Elastostatics
=============
The equation for elastostatics balances body forces against stresses in the body
.. math::
-\nabla\cdot \bm \sigma = \bm f
where :math:`\bm\sigma` is the stress tensor. Linear, isotropic elasticity governing infinitesimal strains has the particular stress-strain relation
.. math::
-\nabla\cdot \left( \lambda I \operatorname{trace}(\bm\varepsilon) + 2\mu \bm\varepsilon \right) = \bm f
where the strain tensor :math:`\bm \varepsilon` is given by
.. math::
\bm \varepsilon = \frac{1}{2} \left(\nabla \bm u + (\nabla \bm u)^T \right)
where :math:`\bm u` is the infinitesimal displacement of the body. The resulting discretizations use PETSc's nonlinear solvers
Finite Element
:2D: `SNES example 17 <PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/snes/tutorials/ex17.c.html>`_
:3D: `SNES example 17 <PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/snes/tutorials/ex17.c.html>`_
:3D: `SNES example 56 <PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/snes/tutorials/ex56.c.html>`_
If we allow finite strains in the body, we can express the stress-strain relation in terms of the Jacobian of the deformation gradient
.. math::
J = \mathrm{det}(F) = \mathrm{det}\left(\nabla u\right)
and the right Cauchy-Green deformation tensor
.. math::
C = F^T F
so that
.. math::
\frac{\mu}{2} \left( \mathrm{Tr}(C) - 3 \right) + J p + \frac{\kappa}{2} (J - 1) = 0
In the example everything is expressed in terms of determinants and cofactors of :math:`F`.
Finite Element
:3D: `SNES example 77 <PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/snes/tutorials/ex77.c.html>`_
Stokes
======
:doc:`physics/guide_to_stokes`
Euler
=====
Not yet developed
Heat equation
=============
The time-dependent heat equation
.. math::
\frac{\partial u}{\partial t} - \Delta u = f
is used to model heat flow, time-dependent diffusion, and other physical processes.
Finite Element
:2D: `TS example 45 <PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/ts/tutorials/ex45.c.html>`_
:3D: `TS example 45 <PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/ts/tutorials/ex45.c.html>`_
Navier-Stokes
=============
The time-dependent incompressible Navier-Stokes equations
.. math::
\begin{aligned}
\frac{\partial u}{\partial t} + u\cdot\nabla u - \nabla \cdot \left(\mu \left(\nabla u + \nabla u^T\right)\right) + \nabla p + f &= 0 \\
\nabla\cdot u &= 0 \end{aligned}
are appropriate for flow of an incompressible fluid at low to moderate Reynolds number.
Finite Element
:2D: `TS example 46 <PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/ts/tutorials/ex46.c.html>`_
:3D: `TS example 46 <PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/ts/tutorials/ex46.c.html>`_
|