Skip to content

Commit 0b4031a

Browse files
author
Marc Massot
committed
next
1 parent 883c1a9 commit 0b4031a

File tree

2 files changed

+63
-2
lines changed

2 files changed

+63
-2
lines changed

figures/p4est_3.png

390 KB
Loading

talk.qmd

Lines changed: 63 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -888,8 +888,6 @@ Now, if we wanted to reconstruct all the cells of the finest level, we'd only ne
888888

889889
{{< include python_sections/anim_sin_bis.qmd >}}
890890

891-
892-
893891
# Adaptive mesh refinement software
894892

895893
## Mesh adaptation
@@ -931,7 +929,31 @@ As you advance in time, you can choose different time steps depending on the res
931929
Finally, given that the mesh is dynamic, the load balancing must be reviewed regularly during the calculation so that, in a parallel context, all the processes have more or less the same workload. There are two types of method: one based on the space filling curve, where you cut out chunks of the same size following this curve; the other is based on solving a diffusion equation on the workload of the processes.
932930
:::
933931

932+
## Open source software
933+
934+
:::::{.center-page}
935+
936+
::: {.fs-5}
937+
| Name | Data structure | Adaptation criteria | Time scheme | Load balancing |
938+
|---------|----------------|---------------------|---------------------------------|------------------------------|
939+
| AMReX | block | heuristic | global/local | SFC |
940+
| Dendro | tree | wavelet | global | SFC |
941+
| Dyablo | tree | heuristic | global | SFC |
942+
| Peano | tree | - | - | SFC |
943+
| P4est | tree | - | - | SFC |
944+
| samurai | interval | heuristic/wavelet | RK/splitting/IMEX<br>time-space/code coupling | SFC/diffusion algorithm |
945+
:::
934946

947+
::: {.text-center .color .mt-5 .fragment}
948+
*samurai: create a unified framework for testing a whole range<br class='m-0'>of mesh adaptation methods with the latest generation of numerical schemes.*
949+
:::
950+
:::::
951+
952+
:::{.notes}
953+
Here's an overview of the software we think is interesting to look at today.
954+
955+
Peano and p4est don't have any adaptation or time-scheme criteria, as they are software programs specializing solely in mesh management.
956+
:::
935957
---
936958

937959
<div style="position: absolute; top: 50%; transform: translate(0, -50%); text-align: center;">
@@ -946,6 +968,45 @@ Finally, given that the mesh is dynamic, the load balancing must be reviewed reg
946968
:::
947969
</div>
948970

971+
## Design principles
972+
973+
:::{.center-page-vertically .lh-lg}
974+
- Compress the mesh according to the level-wise spatial connectivity along each Cartesian axis.
975+
- Achieve fast look-up for a cell into the structure, especially for parents and neighbors.
976+
- Maximize the memory contiguity of the stored data to allow for caching and vectorization.
977+
- Facilitate inter-level operations which are common in many numerical techniques.
978+
:::
979+
980+
---
981+
982+
983+
## Compression rates
984+
985+
![](figures/p4est_3.png)
986+
987+
## Compression rates
988+
989+
::: {.center-page .fs-5}
990+
| Level | Num. of cells | p4est | samurai (leaves) | samurai (all) | ratio |
991+
|-------|---------------|-------------|------------------|---------------|--------|
992+
| $9$ | 66379 | 2.57 Mb | 33.68 Kb | 121 Kb | 21.24 |
993+
| $10$ | 263767 | 10.25 Mb | 66.64 Kb | 236.8 Kb | 43.28 |
994+
| $11$ | 1051747 | 40.96 Mb | 132.36 Kb | 467.24 Kb | 87.66 |
995+
| $12$ | 4200559 | 163.75 Mb | 263.6 Kb | 927 Kb | 176.64 |
996+
| $13$ | 16789627 | 654.86 Mb | 525.9 Kb | 1.85 Mb | 353.98 |
997+
| $14$ | 67133575 | 2.61 Gb | 1.05 Mb | 3.68 Mb | 709.24 |
998+
:::
999+
1000+
:::{.notes}
1001+
We can see here that the mesh is very compressed compared to a version using a tree structure.
1002+
1003+
The total size of the mesh is multiplied by just under 4, as we build different meshes to handle ghost cells and prediction cells.
1004+
1005+
What's important to note is that in a parallel context, it doesn't cost much for each process to have the meshes of its neighboring domains.
1006+
:::
1007+
1008+
1009+
9491010
---
9501011

9511012
## Roadmap

0 commit comments

Comments
 (0)