28 #ifndef T8_GEOMETRY_BASE_HXX
29 #define T8_GEOMETRY_BASE_HXX
82 double *out_coords)
const
96 double *jacobian)
const
127 const double *points,
const int num_points,
int *is_inside,
128 const double tolerance)
const
130 SC_ABORTF (
"Point batch inside element function not implemented");
140 SC_ABORTF (
"Tree negative volume function not implemented");
159 inline const std::string
166 t8_geom_get_hash ()
const
This structure holds the connectivity data of the coarse mesh.
Definition: t8_cmesh_types.h:88
This structure is private to the implementation.
Definition: t8_forest_types.h:69
The base class for all geometries.
Definition: t8_geometry_base.hxx:48
int dimension
The dimension of reference space for which this is a geometry.
Definition: t8_geometry_base.hxx:180
size_t hash
The hash of the name of this geometry.
Definition: t8_geometry_base.hxx:186
const std::string t8_geom_get_name() const
Get the name of this geometry.
Definition: t8_geometry_base.hxx:160
virtual bool t8_geom_tree_negative_volume() const
Check if the currently active tree has a negative volume.
Definition: t8_geometry_base.hxx:138
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 =0
Maps points in the reference space .
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.
Definition: t8_geometry_base.hxx:126
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 =0
Compute the jacobian of the t8_geom_evaluate map at a point in the reference space .
virtual t8_geometry_type_t t8_geom_get_type() const =0
Get the type of this geometry.
int t8_geom_get_dimension() const
Get the dimension of this geometry.
Definition: t8_geometry_base.hxx:150
virtual ~t8_geometry()
The destructor.
Definition: t8_geometry_base.hxx:68
std::string name
The name of this geometry.
Definition: t8_geometry_base.hxx:183
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.
This is the administrative header file for t8code.
int64_t t8_gloidx_t
A type for global indexing that holds really big numbers.
Definition: t8.h:100
int32_t t8_locidx_t
A type for processor-local indexing.
Definition: t8.h:89
#define T8_ASSERT(c)
Widely used assertion.
Definition: t8.h:71
We define the coarse mesh of trees in this file.
#define T8_ECLASS_MAX_DIM
The maximal possible dimension for an eclass.
Definition: t8_eclass.h:77
struct t8_element t8_element_t
Opaque structure for a generic element, only used as pointer.
Definition: t8_element.h:42
Includes all headers based on previous t8_forest.h.
Typedef for the t8_geometry class in order to be usable as a pointer from .c files.
enum t8_geometry_type t8_geometry_type_t
This enumeration contains all possible geometries.