38 #ifndef P8EST_GEOMETRY_H
39 #define P8EST_GEOMETRY_H
135 double R2,
double R1);
175 double R2,
double R1);
186 double R2,
double R1,
208 double R0,
double R1,
259 sc_array_t * coordinates, sc_array_t * element_coordinates);
int32_t p4est_qcoord_t
Typedef for quadrant coordinates.
Definition: p4est_base.h:81
int32_t p4est_topidx_t
Typedef for counting topological entities (trees, tree vertices).
Definition: p4est_base.h:93
void p8est_geometry_destroy(p8est_geometry_t *geom)
Can be used to conveniently destroy a geometry structure.
void p8est_geometry_coordinates_lnodes(p8est_t *p8est, p8est_lnodes_t *lnodes, const double *refloc, p8est_geometry_t *geom, sc_array_t *coordinates, sc_array_t *element_coordinates)
Compute node coordinates for a p8est_lnodes structure.
void(* p8est_geometry_destroy_t)(p8est_geometry_t *geom)
Destructor prototype for a user-allocated p8est_geometry_t.
Definition: p8est_geometry.h:60
void p8est_geometry_transform_coordinates(p8est_geometry_t *geom, p4est_topidx_t which_tree, p4est_qcoord_t coords_in[3], double coords_out[3])
Transform a quadrant reference coordinate into the geometry.
p8est_geometry_t * p8est_geometry_new_connectivity(p8est_connectivity_t *conn)
Create a geometry structure based on the vertices in a connectivity.
void(* p8est_geometry_X_t)(p8est_geometry_t *geom, p4est_topidx_t which_tree, const double abc[3], double xyz[3])
Forward transformation from the reference unit square to physical space.
Definition: p8est_geometry.h:51
p8est_geometry_t * p8est_geometry_new_torus(p8est_connectivity_t *conn, double R0, double R1, double R2)
Create a geometry structure for the torus.
p8est_geometry_t * p8est_geometry_new_pillow_sphere(p8est_connectivity_t *conn, double R, pillow_sphere_config_t config)
Create a geometry for mapping the solid sphere using the 1-tree unit connectivity.
p8est_geometry_t * p8est_geometry_new_pillow(p8est_connectivity_t *conn, double R2, double R1)
Create a geometry structure for the spherical shell of 2 trees.
void p8est_geometry_connectivity_X(p8est_geometry_t *geom, p4est_topidx_t which_tree, const double abc[3], double xyz[3])
Geometric coordinate transformation for geometry created with p8est_geometry_new_connectivity.
p8est_geometry_t * p8est_geometry_new_sphere(p8est_connectivity_t *conn, double R2, double R1, double R0)
Create a geometry structure for the solid sphere of 13 trees.
p8est_geometry_t * p8est_geometry_new_shell(p8est_connectivity_t *conn, double R2, double R1)
Create a geometry structure for the spherical shell of 24 trees.
pillow_sphere_config_t
Characterize different mappings of the solid sphere using a 1-tree connectivity.
Definition: p8est_geometry.h:147
Generate Lobatto node numbers for any degree.
This structure holds the 3D inter-tree connectivity information.
Definition: p8est_connectivity.h:216
This structure can be created by the user, p4est will never change its contents.
Definition: p8est_geometry.h:78
const char * name
User's choice is arbitrary.
Definition: p8est_geometry.h:79
p8est_geometry_destroy_t destroy
Destructor called by p8est_geometry_destroy.
Definition: p8est_geometry.h:82
p8est_geometry_X_t X
Coordinate transformation.
Definition: p8est_geometry.h:81
void * user
User's choice is arbitrary.
Definition: p8est_geometry.h:80
Store a parallel numbering of Lobatto points of a given degree > 0.
Definition: p8est_lnodes.h:127
The p8est forest datatype.
Definition: p8est.h:146