-
Notifications
You must be signed in to change notification settings - Fork 62
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.
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