Skip to content

The most important API functions

Johannes Holke edited this page Apr 21, 2022 · 23 revisions

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.

cmesh

The coarse mesh interface.

Creating a cmesh

t8_cmesh_new…
t8_cmesh_from_msh_file

Use these to create a cmesh from one of the provided examples or a .msh file.

t8_cmesh_init
t8_cmesh_set_derive
t8_cmesh_set_partition_uniform
t8_cmesh_commit

To partition an existing cmesh.

t8_cmesh_set_tree_class
t8_cmesh_set_join
t8_cmesh_register_geometry
t8_cmesh_set_tree_vertices

Call these functions between t8_cmesh_init and t8_cmesh_commit to build a cmesh from scratch.

You can find examples for some of these functions in the Step 1 tutorial.

Forest

The forest interface.

General

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.

Data handling

These are the most important function 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.

Unsorted List - work on progress

ACCESS 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 t8_forest_leaf_face_neighbors t8_forest_element_face_neighbor # Should be called "virtual"/"same level" oder so, um missverständnis zu vermeiden

GEOMETRY 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

ELEMENT SCHEME 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

Clone this wiki locally