-
Notifications
You must be signed in to change notification settings - Fork 53
Reproducing Scaling Results
To effectively reproduce scaling results for our core functionality, we recommend a benchmark program that showcases these capabilities. One such program is ./t8_time_forest_partition
, located in the benchmarks folder. This program is extensively used in several of our papers, notably described in Section 5.2 of this paper.
In this example we build a mesh geometry, uniformly refine it to a given level l, and then adaptively refine a band of elements, we move this band through the mesh over several time steps.
This example measures Adapt
Partition
Ghost
and Balance
, so all of our critical core algorithms.
A recommended call for the program is:
mpirun -np N ./t8_time_forest_partition -g -b -C 0.8 -x -0.4 -X -0.3 -l 4 -r 3 -O -o -T 0.05
This will build a 1 million element mesh, you can increase the -l
value if that's to small and runs to quickly.
Option | Description | recommendation |
---|---|---|
-g | Build Ghost layer | always use |
-b | 2:1 balance the mesh | always use |
-C | CFL number/how fast the mesh moves | Keep it at 0.8. |
-x | Where the band of fine elements starts | decrease for more fine elements |
-X | Where the band of fine elements stops | increase for more fine elements |
-l | Uniform refinement level | every step multiplies number of elements by 8 |
-r | How many refinement levels from the uniform level | change at will |
-O | Use cylindrical geometry | substitute with -L if t8code isn't linked against OpenCascade |
-o | Do not produce VTK output | Keep it while measuring runtime. For debugging/checking the mesh, leave it out. |
-T | Simulated time span | Divide by two for each additional uniform level. T has to be > 0. |
-h | Display a short help message |
By changing -l
to 2
the following call for a low dimensional example is created:
mpirun -np N ./t8_time_forest_partition -g -b -C 0.8 -x -0.4 -X -0.3 -l 2 -r 3 -O -o -T 0.05
Here is the resulting mesh:
Option | Description | recommendation |
---|---|---|
-f | The cmesh is constructed from a .msh (Gmsh) file with the give prefix | Cannot be used with -O or -L . |
-g | Together with -f : The dimension of the coarse mesh. |
2 or 3 |
-c | The cmesh is constructed from a collection of cmesh files. Created with t8_cmesh_save. | Cannot be used with -O or -L . |
-n | The number of cmesh files. | If n=1 then the cmesh will be replicated throughout the test. |
Installation Guide
Configure Options
Setup t8code on JUWELS and other Slurm based systems
Setup t8code for VTK
General
Step 0 Hello World
Step 1 Creating a coarse mesh
Step 2 Creating a uniform forest
Step 3 Adapting a forest
Step 4 Partition,-Balance,-Ghost
Step 5 Store element data
Step 6 Computing stencils
Step 7 Interpolation
Features
Documentation
Tree Indexing
Element Indexing
Running on JUWELS using Slurm
Overview of the most used API functions
Known issues
Workflow - FreeCAD to t8code
Reproducing Scaling Resluts
Coding Guidelines
Tips
Debugging with gdb
Debugging with valgrind
Test driven development
Testing with GoogleTest
Writing C interface code