t8  1.2.0
t8code is a C library to manage a forest of adaptive space-trees of general element classes in parallel.
Public Member Functions | Protected Attributes
t8_geometry Struct Referenceabstract
Inheritance diagram for t8_geometry:
t8_geometry_analytic t8_geometry_extended t8_geometry_w_vertices t8_geometry_zero t8_geometry_linear

Public Member Functions

 t8_geometry (int dimension, const char *name, const char *attribute_name=NULL)
 
virtual ~ t8_geometry ()
 The destructor. More...
 
virtual void t8_geom_evaluate (t8_cmesh_t cmesh, t8_gloidx_t gtreeid, const double *ref_coords, double out_coords[3]) const =0
 Map a point in the reference space $$[0,1]^dimension$$ to $$\mathbb R^3$$. More...
 
virtual void t8_geom_evalute_jacobian (t8_cmesh_t cmesh, t8_gloidx_t gtreeid, const double *ref_coords, double *jacobian) const =0
 Compute the jacobian of the t8_geom_evaluate map at a point in the reference space $$[0,1]^dimension$$. More...
 
virtual void t8_geom_load_tree_data (t8_cmesh_t cmesh, t8_gloidx_t gtreeid)=0
 Update a possible internal data buffer for per tree data. More...
 
int t8_geom_get_dimension () const
 Get the dimension of this geometry. More...
 
const char * t8_geom_get_name () const
 Get the name of this geometry. More...
 

Protected Attributes

int dimension
 The dimension of reference space for which this is a geometry.
 
const char * name
 The name of this geometry.
 

Constructor & Destructor Documentation

◆ ~ t8_geometry()

virtual t8_geometry::~ t8_geometry ( )
inlinevirtual

The destructor.

It does nothing but has to be defined since we may want to delete geometry that is actually inherited and providing an implementation for the destructor ensures that the destructor of the child class will be executed.

Member Function Documentation

◆ t8_geom_evaluate()

virtual void t8_geometry::t8_geom_evaluate ( t8_cmesh_t  cmesh,
t8_gloidx_t  gtreeid,
const double *  ref_coords,
double  out_coords[3] 
) const
pure virtual

Map a point in the reference space $$[0,1]^dimension$$ to $$\mathbb R^3$$.

Parameters
[in]cmeshThe cmesh in which the point lies.
[in]gtreeidThe global tree (of the cmesh) in which the reference point is.
[in]ref_coordsArray of dimension many entries, specifying a point in [0,1]^dimension.
[out]out_coordsThe mapped coordinates in physical space of ref_coords.

Implemented in t8_geometry_zero, t8_geometry_linear, and t8_geometry_analytic.

◆ t8_geom_evalute_jacobian()

virtual void t8_geometry::t8_geom_evalute_jacobian ( t8_cmesh_t  cmesh,
t8_gloidx_t  gtreeid,
const double *  ref_coords,
double *  jacobian 
) const
pure virtual

Compute the jacobian of the t8_geom_evaluate map at a point in the reference space $$[0,1]^dimension$$.

Parameters
[in]cmeshThe cmesh in which the point lies.
[in]glreeidThe global tree (of the cmesh) in which the reference point is.
[in]ref_coordsArray of dimension many entries, specifying a point in [0,1]^dimension.
[out]jacobianThe jacobian at ref_coords. Array of size dimension x 3. Indices 3*i, 3*i+1, 3*i+2 correspond to the i-th column of the jacobian (Entry 3*i + j is del f_j/del x_i).

Implemented in t8_geometry_zero, t8_geometry_linear, and t8_geometry_analytic.

◆ t8_geom_get_dimension()

int t8_geometry::t8_geom_get_dimension ( ) const
inline

Get the dimension of this geometry.

Returns
The dimension.

◆ t8_geom_get_name()

const char* t8_geometry::t8_geom_get_name ( ) const
inline

Get the name of this geometry.

Returns
The name.

◆ t8_geom_load_tree_data()

virtual void t8_geometry::t8_geom_load_tree_data ( t8_cmesh_t  cmesh,
t8_gloidx_t  gtreeid 
)
pure 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).

Parameters
[in]cmeshThe cmesh.
[in]gtreeidThe global tree.

Implemented in t8_geometry_zero, t8_geometry_analytic, and t8_geometry_w_vertices.


The documentation for this struct was generated from the following file: