-
Notifications
You must be signed in to change notification settings - Fork 61
t8_time_forest_partition.cxx
The t8_time_forest_partition.cxx benchmark evaluates the performance of t8code's mesh partitioning capabilities. It measures the efficiency of partitioning operations across various mesh configurations and parallel processing scenarios.
Run the benchmark using MPI:
mpirun -n <num_processes> ./t8_time_forest_partition [options]
Replace <num_processes> with the desired number of MPI processes.
The benchmark accepts various options to configure the mesh and partitioning parameters.
| Short | Long | Argument | Description |
|---|---|---|---|
| -h | --help | Show a help message and exit | |
| -o | --no-vtk | Do not produce VTK (visualization) output files | |
| -f | --mshfile | STRING | Use a .msh file (GMSH format, prefix only) as the coarse mesh |
| -d | --dim | INT | (With -f) Dimension of the mesh: 2 or 3 |
| -c | --cmeshfile | STRING | Use cmesh files created by t8_cmesh_save |
| -n | --nfiles | INT | Number of cmesh files to use with -c |
| -s | --stride | INT | MPI rank stride for cmesh file reading (default: 16) |
| -t | --test-tet | Use built-in tetrahedral connectivity test mesh (disables VTK by default) | |
| -L | --test-linear-cylinder | Use built-in linear cylinder mesh (disables VTK by default) | |
| -O | --test-cad-cylinder | Use built-in CAD (curved) cylinder mesh (disables VTK by default) | |
| -l | --level | INT | Initial uniform refinement level |
| -r | --rlevel | INT | Number of adaptive refinement levels to add (band refinement) |
| --cmesh-level | INT | Starting level for built-in cylinder meshes (default 0, only with -L or -O) | |
| -x | --xmin | REAL | Minimum x-coordinate for the adaptive refinement band |
| -X | --xmax | REAL | Maximum x-coordinate for the adaptive refinement band |
| -T | --time | REAL | Simulated time span (end time) |
| -D | --delta_t | REAL | Timestep size (deprecated; use -C for CFL) |
| -C | --cfl | REAL | CFL number; if set, delta_t = CFL * 0.64 / 2^level |
| -g | --ghost | Create ghost elements for parallel overlap | |
| -b | --balance | Enforce 2:1 mesh balancing | |
| -z | --use_cad | Use curved meshes to match original geometry (needs .brep and .msh files) |
For a complete list of options and their descriptions, run:
./t8_time_forest_partition -h
mpirun -np 8 ./t8_time_forest_partition -L -l 4 -r 3 -x -0.3 -X -0.4 -T 0.05 -C 0.8 -g -b
- Uses the built-in linear cylinder mesh.
- Sets initial uniform refinement level to 4, with up to 3 additional adaptive refinements in the band x ∈ [−0.3, −0.4].
- Runs up to time T = 0.05, with CFL-derived time step.
- Builds ghost layers and enforces mesh balancing.

The benchmark outputs timing information for the partitioning operations, including:
- Total time taken for partitioning.
- Average time per trial.
- Minimum and maximum times observed.
This data helps assess the scalability and efficiency of t8code's partitioning algorithms under different configurations.
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
Prerequisites & Compilation
t8_time_forest_partition
t8_time_fractal
t8_time_new_refine
t8_time_partition
t8_time_prism
t8_time_set_join_by_vertices