18 poly_cell.vertex_ids_.size(),
19 MakeFaceNodeMapping(poly_cell)),
20 volume_quadrature_(volume_quadrature),
21 surface_quadrature_(surface_quadrature)
41 double sidedetJ = ((sidev01.
x) * (sidev02.
y) - (sidev02.
x) * (sidev01.
y));
44 triangle_data.
detJ = sidedetJ;
50 triangle_data.
v0 = v0;
53 triangle_data.
J.
SetIJ(0, 0, sidev01.
x);
54 triangle_data.
J.
SetIJ(1, 0, sidev01.
y);
55 triangle_data.
J.
SetIJ(0, 1, sidev02.
x);
56 triangle_data.
J.
SetIJ(1, 1, sidev02.
y);
57 triangle_data.
J.
SetIJ(2, 2, 0.0);
60 triangle_data.
Jinv.
SetIJ(0, 0, sidev02.
y / sidedetJ);
61 triangle_data.
Jinv.
SetIJ(1, 0, -sidev01.
y / sidedetJ);
62 triangle_data.
Jinv.
SetIJ(0, 1, -sidev02.
x / sidedetJ);
63 triangle_data.
Jinv.
SetIJ(1, 1, sidev01.
x / sidedetJ);
67 triangle_data.
JTinv.
SetIJ(0, 0, sidev02.
y / sidedetJ);
68 triangle_data.
JTinv.
SetIJ(1, 0, -sidev02.
x / sidedetJ);
69 triangle_data.
JTinv.
SetIJ(0, 1, -sidev01.
y / sidedetJ);
70 triangle_data.
JTinv.
SetIJ(1, 1, sidev01.
x / sidedetJ);
76 sides_.push_back(triangle_data);
80 for (
int v = 0; v < poly_cell.
vertex_ids_.size(); v++)
86 side_mapping[side] = -1;
89 if (face.
vertex_ids_[0] == vindex) { side_mapping[side] = 0; }
90 if (face.
vertex_ids_[1] == vindex) { side_mapping[side] = 1; }
const chi_mesh::MeshContinuum & ref_grid_
std::vector< std::vector< int > > node_to_side_map_
PieceWiseLinearPolygonMapping(const chi_mesh::Cell &poly_cell, const chi_mesh::MeshContinuum &ref_grid, const QuadratureTriangle &volume_quadrature, const QuadratureLine &surface_quadrature)
std::vector< FEside_data2d > sides_
Normal normal_
A list of the vertices.
std::vector< uint64_t > vertex_ids_
std::vector< CellFace > faces_
std::vector< uint64_t > vertex_ids_
chi_mesh::Matrix3x3 JTinv
std::array< uint64_t, 2 > v_index
void SetIJ(int i, int j, double value)