t8  UNKNOWN
t8code is a C library to manage a forest of adaptive space-trees of general element classes in parallel.
t8_geometry_examples.hxx
1 /*
2  This file is part of t8code.
3  t8code is a C library to manage a collection (a forest) of multiple
4  connected adaptive space-trees of general element classes in parallel.
5 
6  Copyright (C) 2023 the developers
7 
8  t8code is free software; you can redistribute it and/or modify
9  it under the terms of the GNU General Public License as published by
10  the Free Software Foundation; either version 2 of the License, or
11  (at your option) any later version.
12 
13  t8code is distributed in the hope that it will be useful,
14  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  GNU General Public License for more details.
17 
18  You should have received a copy of the GNU General Public License
19  along with t8code; if not, write to the Free Software Foundation, Inc.,
20  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21 */
22 
27 #ifndef T8_GEOMETRY_EXAMPLES_HXX
28 #define T8_GEOMETRY_EXAMPLES_HXX
29 
30 #include <t8.h>
32 
36  public:
37  /* Basic constructor that sets the dimension and the name. */
38  t8_geometry_squared_disk (): t8_geometry_with_vertices (2, "t8_squared_disk")
39  {
40  }
41 
65  void
66  t8_geom_evaluate (t8_cmesh_t cmesh, t8_gloidx_t gtreeid, const double *ref_coords, const size_t num_coords,
67  double *out_coords) const;
68 
69  /* Jacobian, not implemented. */
70  void
71  t8_geom_evaluate_jacobian (t8_cmesh_t cmesh, t8_gloidx_t gtreeid, const double *ref_coords, const size_t num_coords,
72  double *jacobian) const
73  {
74  SC_ABORT_NOT_REACHED ();
75  }
76 
81  inline t8_geometry_type_t
83  {
85  };
86 
87  /* Load tree data is inherited from t8_geometry_with_vertices. */
88 };
89 
90 #endif /* T8_GEOMETRY_EXAMPLES_HXX */
This geometry maps five quads to a disk.
Definition: t8_geometry_examples.hxx:35
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
Map five quads to a disk.
Definition: t8_geometry_examples.cxx:28
t8_geometry_type_t t8_geom_get_type() const
Get the type of this geometry.
Definition: t8_geometry_examples.hxx:82
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 .
Definition: t8_geometry_examples.hxx:71
Definition: t8_geometry_with_vertices.hxx:38
This structure holds the connectivity data of the coarse mesh.
Definition: t8_cmesh_types.h:88
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:98
@ T8_GEOMETRY_TYPE_UNDEFINED
This is no geometry type but is used for every geometry, where no type is defined.
Definition: t8_geometry.h:49
enum t8_geometry_type t8_geometry_type_t
This enumeration contains all possible geometries.
Implements the inherited class t8_geometry_with_vertices, which can be used for geometries that use v...