-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
# Sphinx build info version 1 | ||
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. | ||
config: 500d46da7609ef2f82a8c46efb8152dd | ||
tags: 645f666f9bcd5a90fca523b33c5a78b7 |
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
This folder is for PDF files that can be embedded in the book (as a presentation, for example). |
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
# Navier-Stokes Benchmarks | ||
|
||
## Steady solution | ||
|
||
This benchmark is described here: | ||
|
||
|
||
## Periodic solution (Vortex shedding) | ||
|
||
This benchmark is described here: | ||
|
||
|
||
![NS Vortex shedding benchmark](../Figures/Diagrams/NS_Benchmark.png) | ||
|
||
|
||
Standard one used in the getting started section of `Fenics` | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
# Stokes Flow | ||
|
||
# Analytic benchmarking | ||
|
||
# Symmetry testing | ||
|
||
(e.g. mode coupling etc where we know which modes should be excluded) | ||
|
||
# Free surface models | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
# Bibliography | ||
|
||
<!-- This builds the bibliography itself when jupyter-book runs | ||
However, this will be only the examples that are cited using the JB mechanisms and not references that might be in the code that we want here for completeness | ||
We therefore have an additional step: we have a cite-everything file that is included (quietly) at the end of this file. See CiteEveryReference.md for instructions | ||
It's optional, of course. | ||
LM | ||
--> | ||
|
||
```{bibliography} | ||
``` | ||
|
||
--- | ||
|
||
</br> | ||
</br> | ||
</br> | ||
</br> | ||
</br> | ||
|
||
[.](CiteEveryReference.md) |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
<!-- | ||
grep "@" JupyterBook.bib | ||
replace @article / @book / @etcetc with {cite}` and , with ` | ||
or paste in the keys from zotero and {cite}`` them all at once. | ||
--> | ||
|
||
{cite}`moresiComputationalApproachesStudying2007` |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
Figures associated with "Exercises" for the jupyterbook | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
# Exercises | ||
|
||
Add questions to include in the JB ... don't add answers because a private repo | ||
cannot be clones to jupyterhub with nbgitpuller. | ||
|
||
The use of general "admonitions" is quite a good format for individual questions and it is useful to separate them out into a separate markdown file if you want to create a printable pdf. | ||
|
||
::::{admonition} Q1 - How to create a question | ||
|
||
Suppose you want to create a series of textbook style questions for your jupyterbook. | ||
The goal might be just to have a bunch of questions to choose from or it may be that you would | ||
like to release a worksheet. | ||
|
||
Try using a general jupyterbook admonition to create a question card and see if that works for you. | ||
|
||
:::: |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
# Diagrams / Figures | ||
|
||
<!-- Diagrams files - such as inkscape drawing originals / illustrator files and all that --> | ||
|
||
Note: for sketches / figures, please convert files to inkscape-compatible format at some point | ||
|
||
## Figure captions / descriptions. | ||
|
||
- **NS_Benchmark_DFG_2.png**: this is the benchmark for Reynolds number 100 in which the flow is a periodic shedding of vortices. | ||
This figure shows the flow and flow markers two periods apart in a low resolution calculation. In the upper image of this figure, the vortex that is just being | ||
shed from the top side of the cylinder is just about to be swept out of the domain in the lower image. UW is clearly capturing the | ||
periodicity well but the benchmark also demands accurate computation of lift, drag, pressure, frequency etc. | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
This folder is for PDF files that can be embedded in the book (as a presentation, for example). |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
|
||
# The Underworld Geodynamics Platform | ||
|
||
```{warning} | ||
Warning - Underworld 3 is still in $\beta$ release | ||
``` | ||
|
||
![](./Figures/SocialShare.png) | ||
|
||
## A parallel, python, particle-in-cell, finite-element code for Geodynamics | ||
|
||
Underworld is a python-friendly geodynamics code which provides a programmable and flexible front end to all the functionality of the code running in a parallel HPC environment. This gives significant advantages to the user, with access to the power of python libraries for setup of complex problems, analysis at runtime, problem steering, and coupling of multiple problems. Underworld is integrated with the literate programming environment of the jupyter notebook system for tutorials and as a teaching tool for solid Earth geoscience. | ||
|
||
Underworld is an open-source, particle-in-cell finite element code tuned for large-scale geodynamics simulations. The numerical algorithms allow the tracking of history information through the high-strain deformation associated with fluid flow (for example, transport of the stress tensor in a viscoelastic, convecting medium, or the advection of fine-scale damage parameters by the large-scale flow). The finite element mesh can be static or dynamic, but it is not constrained to move in lock-step with the evolving geometry of the fluid. This hybrid approach is very well suited to complex fluids which is how the solid Earth behaves on a geological timescale. | ||
|
||
#### Links | ||
|
||
- [Underworld Blog](https://www.underworldcode.org/articles) | ||
- [Underworld on Github](https://github.com/underworldcode/underworld3) | ||
- [Underworld documentation](https://underworldcode.github.io/underworld3/main) | ||
- [Underworld api documentation](https://underworldcode.github.io/underworld3/main_api) | ||
- [Underworld beta documentation](https://underworldcode.github.io/underworld3) | ||
|
||
|
||
### Governance | ||
|
||
Underworld is funded by AuScope which is part of the Australian Government's NCRIS initiative to provide community research infrastructure (please see www.auscope.org.au for more information). | ||
|
||
The Underworld development team is based in Australia at the Australian National University, the University of Sydney and at Monash University and is led by Louis Moresi (ANU). | ||
|
||
All development is overseen by a steering committee drawn from the supporting organisations and representatives from the Underworld community. | ||
|
||
### Background | ||
|
||
The numerical methods have been published in detail in Moresi et al, (2002, 2003). These papers dealt primarily with 2D applications but in recent years, we have introduced a number of improvements in the method to enable us to scale the problem to 3D (Moresi et al, 2007). For example we use a fast discrete Voronoi method to compute the integration weights of the particle-to-mesh mapping efficiently (Velic et al, 2009). We have also concentrated on extremely robust solvers / preconditioners which are necessary because the material variations and geometrical complexity are both large and unpredictable when we start of the simulation. | ||
|
||
The benefit of this approach is associated with the separation of the computational mesh from the swarm of points which track the history. This allows us to retain a much more structured computational mesh than the deformation / material history would otherwise allow. We can take full advantage of the most efficient geometrical multigrid solvers and there is no need to preserve structure during any remeshing operations we undertake (for example if we do need to track a free surface or an internal interface). Although there are several complexities introduced by enforcing this separation, we find that the benefits, for our particular class of problems, are significant. | ||
|
||
### Implementation and parallelism | ||
|
||
The numerical solvers are based around the PETSc software suite which focuses on delivering good parallel scalability (up to thousands-of-cores). Our experience to date shows good scalability 2000+ cores | ||
|
||
|
||
## Acknowledgements | ||
|
||
We would like to acknowledge AuScope Simulation, Analysis and Modelling for providing long term funding which has made the project possible. Additional funding for specific improvements and additional functionality has come from the Australian Research Council (http://www.arc.gov.au). The python toolkit was funded by the NeCTAR eresearch_tools program. Underworld2 was originally developed in collaboration with the Victorian Partnership for Advanced Computing. | ||
|
||
*The documentation and tutorial materials provided by the authors are open source under a creative commons licence. | ||
We acknowledge the contribution of the community in providing other materials and we endeavour to provide the correct attribution and citation. Please contact [email protected] for updates and corrections.* | ||
|
||
--- | ||
|
||
## Accessibility | ||
|
||
<button type="button" onclick="legibleFontSwitcher()">Switch Font</button> <button type="button" onclick="fontScaler(1.1)">➕</button><button type="button" onclick="fontScaler(0.0)">●</button><button type="button" onclick="fontScaler(0.909)">➖</button> | ||
|
||
|
||
The html can also be typeset using the [Atkinson Hyperlegible](https://brailleinstitute.org/freefont) font everywhere, other than monospaced computer code, as an aid to legibility. This button is also located at the bottom of the left navigation bar on every page and will toggle between settings. | ||
|
||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
# Glossary | ||
|
||
Below are some important definitions. | ||
|
||
```{glossary} | ||
Cloud Computing | ||
the on-demand availability of computer system resources, especially data storage (cloud storage) and computing power, without direct active management by the user.[2] Large clouds often have functions distributed over multiple locations, each location being a data center. Cloud computing relies on sharing of resources to achieve coherence and economies of scale (Wikipedia) | ||
FEM | ||
The Finite Element Method | ||
JupyterHub | ||
brings the power of notebooks to groups of users. It gives users access to computational environments and resources without burdening the users with installation and maintenance tasks. Users - including students, researchers, and data scientists - can get their work done in their own workspaces on shared resources which can be managed efficiently by system administrators. | ||
``` | ||
|
||
|
||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
# Lectures and Tutorials for Underworld 3 | ||
|
||
*This is named "Lectures" because it comes from the course-notes template but here it really stands for tutorial material.* | ||
|
||
|
||
|
||
Two examples of lecture notes and simple slideshows that we can embed. | ||
|
||
The lecture notes are in standard `myst markdown` format like the rest of the book. | ||
|
||
The slideshows are built along with the book using `reveal-md`. They are supposed to | ||
be very simple, versionable (text based, not binaries) and rely on external links for | ||
complicated media such as large movies. | ||
|
||
[Lecture 1](Lecture_example_1) is a demonstration | ||
|
||
[Lecture 2](Lecture_example_2) has a bit of information about the `reveal-md` slides |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
# Lecture 1 - Notes | ||
|
||
A lecture can have some notes and a slideshow. | ||
|
||
<iframe src="../slideshows/example_slide_deck1.reveal.html" title="Slideshow" width=100%, height=500, allowfullscreen></iframe> | ||
|
||
The embedding is via an `html iframe` that points to the built path (all the slides are rendered into the | ||
slideshows directory at the `root` level of the book) | ||
|
||
```html | ||
<iframe src="../slideshows/example_slide_deck1.reveal.html" title="Slideshow" width=100%, height=500, allowfullscreen></iframe> | ||
``` | ||
|
||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,103 @@ | ||
# Lecture 2 - Slides | ||
|
||
|
||
This is an embedded slide show that will show you a few tricks. | ||
|
||
<iframe src="../slideshows/example_slide_deck2.reveal.html" title="Slideshow" width=100%, height=500, allowfullscreen></iframe> | ||
|
||
|
||
The embedding is via an `html iframe` that points to the built path (all the slides are rendered into the | ||
slideshows directory at the `root` level of the book) | ||
|
||
```html | ||
<iframe src="../slideshows/example_slide_deck2.reveal.html" title="Slideshow" width=100%, height=500, allowfullscreen></iframe> | ||
``` | ||
|
||
## Source | ||
|
||
This is the source code for the slide deck. It is mostly (reveal-md) markdown with 1) a `yaml` header that has reveal options in it, 2) html tags that use `reveal.js` styling. Note that it is relatively easy to make a few slides this way but more than this can become complicated. | ||
|
||
`````markdown | ||
separator: '<--o--> ' | ||
verticalSeparator: '<--v-->' | ||
revealOptions: | ||
# transition: 'fade' | ||
|
||
slideNumber: true | ||
width: 1100 | ||
height: 750 | ||
margin: 0.07 | ||
--- | ||
|
||
# Slides | ||
|
||
- Louis Moresi | ||
- Australian National University | ||
|
||
<--o--> | ||
|
||
## Slide 2 | ||
|
||
Typically, we have one or two images on a slide | ||
|
||
<img class="r-stretch" data-src="images/LithosphereThickness.png"> | ||
|
||
and text that explains what is going on. | ||
The markdown image tags are limiting but `reveal.js` has image | ||
classes that can be used directly without too much bother: | ||
|
||
```html | ||
<img class="r-stretch" data-src="images/LithosphereThickness.png"> | ||
``` | ||
|
||
<--o--> | ||
|
||
## Slide 3 | ||
|
||
Animations / styling work using `reveal.js` classes | ||
|
||
<p class="fragment">Fade in</p> | ||
<p class="fragment fade-out">Fade out</p> | ||
<p class="fragment highlight-red">Highlight red</p> | ||
<p class="fragment fade-in-then-out">Fade in, then out</p> | ||
<p class="fragment fade-up">Slide up while fading in</p> | ||
|
||
<--o--> | ||
|
||
## Slide 4 Math | ||
|
||
Mathematics via *mathjax* | ||
|
||
$$ e^{i\pi} + 1 = 0$$ | ||
|
||
With inline available ($e^{i\pi} = -1$) as well | ||
|
||
<--o--> | ||
|
||
## Slide 5 Vertical slides | ||
|
||
Reveal has vertical sub-stacks that you can divert through | ||
|
||
- Vertical stack 1 | ||
|
||
<--v--> | ||
|
||
## Slide 5.1 Vertical slides | ||
|
||
|
||
Reveal has vertical sub-stacks that you can divert through | ||
|
||
- Vertical stack 2 | ||
|
||
<--v--> | ||
|
||
## Slide 5.2 Vertical slides | ||
|
||
Reveal has vertical sub-stacks that you can divert through | ||
|
||
![Earth](images/LithosphereThickness.png) <!-- .element height="50%" width="50%" --> | ||
|
||
<--o--> | ||
|
||
````` | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
# Lectures & Presentations | ||
|
||
`reveal-md` and embedded PDF are supported for lectures or tutorial presentations that are included in this book. | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
I wonder what goes in this folder ? |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
I wonder what goes in this folder ? |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
# Constitutive Models | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
# Introduction to Underworld 3 | ||
|
||
```{margin} | ||
![](./Figures/MansoursNightmare.png) | ||
<small> | ||
Come into the garden, Maud </br> | ||
Come into the garden, Maud </br> | ||
I am here at the gate alone; </br> | ||
And the woodbine spices are wafted abroad, </br> | ||
And the musk of the rose is blown. </br> | ||
</br> | ||
Alfred, Lord Tennyson | ||
</small> | ||
``` | ||
|
||
An introduction to the components of an underworld model: | ||
- [Meshing & Coordinate Systems](Meshes) | ||
- [Sympy interface & Functions](Sympy) | ||
- [Mesh Variables](VariablesAndFunctions) | ||
- Swarm Variables | ||
- Constitutive Models |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
# Meshes and model objects | ||
|
||
The most fundamental object within Underworld is the `Mesh` object. This object describes the geometry, boundary conditions, coordinate system, holds discrete variables (structured on the mesh or unstructured swarms). | ||
|
||
|
||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
# Solver Objects | ||
|
||
Templates for equations systems. |