t8
UNKNOWN
t8code is a C library to manage a forest of adaptive space-trees of general element classes in parallel.
|
Public Member Functions | |
t8_geometry_analytic (int dim, std::string name, t8_geom_analytic_fn analytical, t8_geom_analytic_jacobian_fn jacobian, t8_geom_load_tree_data_fn load_tree_data, t8_geom_tree_negative_volume_fn tree_negative_volume_in, const void *user_data) | |
Constructor of the analytic geometry with a given dimension. More... | |
t8_geometry_analytic (int dim, std::string name) | |
Constructor of the analytic geometry for testing purposes. More... | |
virtual | ~t8_geometry_analytic () |
The destructor. | |
t8_geometry_type_t | t8_geom_get_type () const |
Get the type of this geometry. More... | |
virtual void | t8_geom_evaluate (t8_cmesh_t cmesh, t8_gloidx_t gtreeid, const double *ref_coords, const size_t num_coords, double *out_coords) const |
Maps points in the reference space \( [0,1]^\mathrm{dim} \to \mathbb{R}^3 \). More... | |
virtual void | t8_geom_evaluate_jacobian (t8_cmesh_t cmesh, t8_gloidx_t gtreeid, const double *ref_coords, const size_t num_coords, double *jacobian) const |
Compute the jacobian of the t8_geom_evaluate map at a point in the reference space \( [0,1]^\mathrm{dim} \). More... | |
virtual void | t8_geom_point_batch_inside_element (t8_forest_t forest, t8_locidx_t ltreeid, const t8_element_t *element, const double *points, const int num_points, int *is_inside, const double tolerance) |
virtual bool | t8_geom_tree_negative_volume () const |
Check if the currently active tree has a negative volume. More... | |
virtual void | t8_geom_load_tree_data (t8_cmesh_t cmesh, t8_gloidx_t gtreeid) |
Update a possible internal data buffer for per tree data. More... | |
const void * | t8_geom_analytic_get_user_data () |
![]() | |
t8_geometry (int dim, std::string name) | |
virtual | ~t8_geometry () |
The destructor. More... | |
virtual void | t8_geom_point_batch_inside_element (t8_forest_t forest, t8_locidx_t ltreeid, const t8_element_t *element, const double *points, const int num_points, int *is_inside, const double tolerance) const |
Query whether a batch of points lies inside an element. More... | |
int | t8_geom_get_dimension () const |
Get the dimension of this geometry. More... | |
const std::string | t8_geom_get_name () const |
Get the name of this geometry. More... | |
const size_t | t8_geom_get_hash () const |
Additional Inherited Members | |
![]() | |
int | dimension |
The dimension of reference space for which this is a geometry. | |
std::string | name |
The name of this geometry. | |
size_t | hash |
The hash of the name of this geometry. | |
t8_geometry_analytic::t8_geometry_analytic | ( | int | dim, |
std::string | name, | ||
t8_geom_analytic_fn | analytical, | ||
t8_geom_analytic_jacobian_fn | jacobian, | ||
t8_geom_load_tree_data_fn | load_tree_data, | ||
t8_geom_tree_negative_volume_fn | tree_negative_volume_in, | ||
const void * | user_data | ||
) |
Constructor of the analytic geometry with a given dimension.
The geometry is viable with all tree types and uses a user-provided analytic and jacobian function. The actual mappings are done by these functions.
[in] | dim | The dimension of this geometry. |
[in] | name | The name to give this geometry. |
[in] | analytical | The analytical function to use for this geometry. |
[in] | jacobian | The jacobian of analytical. |
[in] | load_tree_data | The function that is used to load a tree's data. |
t8_geometry_analytic::t8_geometry_analytic | ( | int | dim, |
std::string | name | ||
) |
Constructor of the analytic geometry for testing purposes.
[in] | dim | The dimension of this geometry. |
[in] | name | The name to give this geometry. |
|
virtual |
Maps points in the reference space \( [0,1]^\mathrm{dim} \to \mathbb{R}^3 \).
[in] | cmesh | The cmesh in which the point lies. |
[in] | gtreeid | The global tree (of the cmesh) in which the reference point is. |
[in] | ref_coords | Array of dimension x num_coords many entries, specifying points in \( [0,1]^\mathrm{dim} \). |
[in] | num_coords | Amount of points of /f$ \mathrm{dim} /f$ to map. |
[out] | out_coords | The mapped coordinates in physical space of ref_coords. The length is num_coords * 3. |
Implements t8_geometry.
|
virtual |
Compute the jacobian of the t8_geom_evaluate map at a point in the reference space \( [0,1]^\mathrm{dim} \).
[in] | cmesh | The cmesh in which the point lies. |
[in] | gtreeid | The global tree (of the cmesh) in which the reference point is. |
[in] | ref_coords | Array of dimension x num_coords many entries, specifying points in \( [0,1]^\mathrm{dim} \). |
[in] | num_coords | Amount of points of /f$ \mathrm{dim} /f$ to map. |
[out] | jacobian | The jacobian at ref_coords. Array of size \( \mathrm{dim} \cdot 3 \) x num_coords. Indices \( 3 \cdot i\) , \( 3 \cdot i+1 \) , \( 3 \cdot i+2 \) correspond to the \( i \)-th column of the jacobian (Entry \( 3 \cdot i + j \) is \( \frac{\partial f_j}{\partial x_i} \)). |
Implements t8_geometry.
|
inlinevirtual |
|
virtual |
Update a possible internal data buffer for per tree data.
This function is called before the first coordinates in a new tree are evaluated. You can use it for example to load the vertex coordinates of the tree into an internal buffer (as is done in the linear geometry).
[in] | cmesh | The cmesh. |
[in] | gtreeid | The global tree. |
Implements t8_geometry.
|
inlinevirtual |
[in] | forest | The forest of the element. |
[in] | ltreeid | The local tree id of the element's tree |
[in] | element | The element |
[in] | points | points to check |
[in] | num_points | Number of points to check |
[in,out] | is_inside | Array to fill with flags whether the point is inside or not |
[in] | tolerance | Tolerance of the inside-check |
|
virtual |
Check if the currently active tree has a negative volume.
Reimplemented from t8_geometry.