Components of Underworld
This section of the Underworld User Guide is a great introduction to the basic building blocks of the software suite. We cover the individual concepts in the code and provide simple notebooks to illustrate how to use them.
Note
Expand the boxes below to read more about each notebook and to view a preview. You can run these notebooks live on http://www.mybinder.org.Overview - 01_GettingStarted.ipynb
Read this notebook first to learn about the purpose of this section of the User Guide and navigate to the other notebooks.Finite element Mesh - 02_TheMesh.ipynb
The mesh in Underworld is one of the basic components of any model. The mesh holds the unknowns of velocity, pressure, temperature and so on.Mesh based variables - 03_MeshVariable.ipynb
Mesh Variables are unknowns discretised on the structured mesh but they also know about how they should be interpolated, differentiated, integrated.Lagrangian (material) point swarms - 04_Swarms.ipynb
Lagrangian (material) points are carried through the mesh by deformation of the background fluid. They record their history along their path. Collectively, they form a 'particle swarm' and need some careful management in a parallel code (which Underworld understands and does correctly)Underworld functions - 05_Functions.ipynb
In Underworld, we need a mechanism to evaluate arbitrary mathematical functions at various times during the solve that we cannot predict in advance. We provide this feature through an interface that allowsmeshVariables
to be combined, processed and evaluated when needed.
Equation systems - 06_Systems.ipynb
We provide templates that use the mesh, swarm, boundary conditions and variables to solve particular systems of equations. For example, there is a solver that is pre-configured to solve the incompressible Stokes equation \begin{align*} \frac{\partial \tau_{ij}}{\partial x_j} - \frac{\partial p}{\partial x_i} &= f_i \\ \frac{\partial u_i}{\partial x_i} &= 0 \end{align*} with various hooks for complicated constitutive behaviour and non-linearity already enabled. (See Stokes solver notebook for details)Utilities - 07_Utilities.ipynb
Including ways to integrate functions across the domain / on a surface, how to store variables and restore them for checkpointing.Visualisation - 08_Visualisation.ipynb
ThegLucifer
module is a parallel version of the fast, particle-based lavavu
visualisation
toolbox that we use to render images and create object databases during large parallel runs.
Interactivity in Notebooks
To view the interactive aspects of lavavu running in a notebook, you will need to open the live version of the documentation.