Mallard 0.8.0
Unstructured, GPU accelerated, high-order finite volume CFD solver
Mallard website
Loading...
Searching...
No Matches
curved::Geometry Class Reference

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.
 

Detailed Description

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).

Constructor & Destructor Documentation

◆ Geometry()

curved::Geometry::Geometry ( const Mesh &  mesh,
const Surfaces &  surfaces 
)

Member Function Documentation

◆ area_vector()

Vec3 curved::Geometry::area_vector ( uint32_t  f) const

The area vector int n dS of face f (out of its cell 0), exact for its edges.

◆ cell_is_curved()

bool curved::Geometry::cell_is_curved ( uint32_t  c) const
inline

◆ cell_rule()

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.

◆ eval()

void curved::Geometry::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.

◆ face_is_curved()

bool curved::Geometry::face_is_curved ( uint32_t  f) const
inline

◆ face_rule()

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).

◆ max_shape_offset()

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).

◆ n_curved_faces()

uint32_t curved::Geometry::n_curved_faces ( ) const
inline

The documentation for this class was generated from the following files: