-
Notifications
You must be signed in to change notification settings - Fork 54
The most important API functions
On this page we list the functions of t8code that are most important for users to interface with t8code.
This list does not provide a detailed description of all these functions. Please see the code and the Doxygen documentation for further details.
The list may not be complete. If you feel a function is missing from this list, please contact the developers, or create an issue.
The coarse mesh interface.
Use these to create a cmesh from one of the provided examples or a .msh
file:
t8_cmesh_new… t8_cmesh_from_msh_file
To partition an existing cmesh:
t8_cmesh_init t8_cmesh_set_derive t8_cmesh_set_partition_uniform t8_cmesh_commit
Call these functions between t8_cmesh_init
and t8_cmesh_commit
to build a cmesh
from scratch:
t8_cmesh_set_tree_class t8_cmesh_set_join t8_cmesh_register_geometry t8_cmesh_set_tree_vertices
You can find examples for some of these functions in the Step 1 tutorial.
The forest interface.
The most important functions for constructing and modifying a forest:
t8_forest_new_uniform t8_forest_new_adapt t8_forest_init t8_forest_set_user_data t8_forest_get_user_data t8_forest_set_user_function t8_forest_get_user_function t8_forest_set_adapt t8_forest_set_balance t8_forest_set_ghost t8_forest_set_partition t8_forest_commit
Forests are usually unreferenced (thus, possibly deleted) when they are used as input to construct a new forest (for example when you adapt a forest). To keep a forest alive beyond such an operation, use t8_forest_ref before. To unreference a forest manually when it is no longer needed, use t8_forest_unref.
t8_forest_vtk_write_file
can be used to create a VTK output.
See also the Step 2, Step 3 and Step 4 tutorials.
These are the most important functions to deal with user data:
t8_forest_iterate_replace t8_forest_partition_data t8_forest_ghost_exchange_data t8_forest_iterate_faces (currently not tested) t8_forest_search
iterate_replace
is used to interpolate data between different forests (that arise from each other via adapting).
partition_data
is used to repartition user data after the forest partition has changed.
ghost_exchange_data
communicates date from local elements to remote processes that have these elements as ghosts.
t8_forest_search
carries out a recursive search to identify matching elements according to a user defined criterion. See also the Search tutorial.
Getters to query certain values:
t8_forest_get_num_local_trees t8_forest_get_tree_class t8_forest_get_eclass_scheme t8_forest_get_tree_num_elements t8_forest_get_local_num_elements t8_forest_get_global_num_elements t8_forest_get_element_in_tree t8_forest_get_tree_element_offset t8_forest_get_num_ghosts
Computing neighbor elements:
t8_forest_leaf_face_neighbors t8_forest_element_face_neighbor
Note that t8_forest_leaf_face_neighbors
returns all face neighbors of an element that exist as leaves in the forest as an array.
t8_forest_element_face_neighbor
returns a single same level face neighbor element that may not exist as a leaf in the forest.
Functions to compute geometry information of a single element, these are currently all computed as linear approximations based on the geometrically correct vertex and midpoint coordinates of an element.
t8_forest_element_centroid t8_forest_element_volume t8_forest_element_coordinate t8_forest_element_diam t8_forest_element_face_centroid t8_forest_element_face_normal t8_forest_element_face_area t8_forest_element_point_inside
The element scheme interface offers functions that operate on a per element level.
t8_element_level
t8_element_shape
t8_element_num_corners
t8_element_num_faces
t8_element_max_num_faces
t8_element_num_children
t8_element_num_face_children
t8_element_face_shape
t8_element_tree_face
t8_element_boundary_face
t8_element_is_root_boundary
t8_element_vertex_reference_coords
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