|
Mallard 0.8.0
Unstructured, GPU accelerated, high-order finite volume CFD solver
Mallard website |
Curved geometry of one rank's mesh. Faces are curved where they lie on a curved surface, and in 3D where they share an edge with one (blended from their edges). Reference coordinates of a face, in its node order: 2D s in [-1, 1] from node 0 to node 1; triangles (u, v) with x = v0 + u (v1 - v0) + v (v2 - v0) when flat; quadrilaterals (s, t) in [-1, 1]^2, nodes 0..3 at (-1, -1), (1, -1), (1, 1), (-1, 1). More...
#include <curved.h>
Public Member Functions | |
| Geometry (const Mesh &mesh, const Surfaces &surfaces) | |
| bool | face_is_curved (uint32_t f) const |
| bool | cell_is_curved (uint32_t c) const |
| uint32_t | n_curved_faces () const |
| double | max_shape_offset () const |
| Largest distance of a node of a projected edge from its analytic shape, relative to the edge's length (0 if none). | |
| void | eval (uint32_t f, const double *xi, Vec3 &x, Vec3 *dx) const |
| Point x of face f at reference coordinates xi, and its derivatives dx[k] = dx / dxi_k (k < N_DIM - 1), in the frame of the face's cell 0. | |
| Vec3 | area_vector (uint32_t f) const |
| The area vector int n dS of face f (out of its cell 0), exact for its edges. | |
| void | face_rule (uint32_t f, const std::vector< std::array< double, 2 > > &ref, const std::vector< double > &ref_w, std::vector< Vec3 > &x, std::vector< Vec3 > &n, std::vector< double > &w) const |
| Quadrature of face f from a rule on its flat reference element (weights summing to the reference measure: 2 on edges and quadrilaterals, 1 on triangles, as the flat rules): points, unit normals out of cell 0, and area elements, whose area vectors sum exactly to area_vector(f). | |
| void | cell_rule (uint32_t c, int degree, std::vector< Vec3 > &x, std::vector< double > &w) const |
| Points and signed weights integrating polynomials of the given degree over cell c (curved or not), in the cell's frame: cones from its vertex average over its faces. | |
Curved geometry of one rank's mesh. Faces are curved where they lie on a curved surface, and in 3D where they share an edge with one (blended from their edges). Reference coordinates of a face, in its node order: 2D s in [-1, 1] from node 0 to node 1; triangles (u, v) with x = v0 + u (v1 - v0) + v (v2 - v0) when flat; quadrilaterals (s, t) in [-1, 1]^2, nodes 0..3 at (-1, -1), (1, -1), (1, 1), (-1, 1).
The area vector int n dS of face f (out of its cell 0), exact for its edges.
| void curved::Geometry::cell_rule | ( | uint32_t | c, |
| int | degree, | ||
| std::vector< Vec3 > & | x, | ||
| std::vector< double > & | w | ||
| ) | const |
Points and signed weights integrating polynomials of the given degree over cell c (curved or not), in the cell's frame: cones from its vertex average over its faces.
Point x of face f at reference coordinates xi, and its derivatives dx[k] = dx / dxi_k (k < N_DIM - 1), in the frame of the face's cell 0.
| void curved::Geometry::face_rule | ( | uint32_t | f, |
| const std::vector< std::array< double, 2 > > & | ref, | ||
| const std::vector< double > & | ref_w, | ||
| std::vector< Vec3 > & | x, | ||
| std::vector< Vec3 > & | n, | ||
| std::vector< double > & | w | ||
| ) | const |
Quadrature of face f from a rule on its flat reference element (weights summing to the reference measure: 2 on edges and quadrilaterals, 1 on triangles, as the flat rules): points, unit normals out of cell 0, and area elements, whose area vectors sum exactly to area_vector(f).
| double curved::Geometry::max_shape_offset | ( | ) | const |
Largest distance of a node of a projected edge from its analytic shape, relative to the edge's length (0 if none).
|
inline |