PolyDiM
C++ library for POLYtopal DIscretization Methods
Loading...
Searching...
No Matches
MeshMatrices.hpp
Go to the documentation of this file.
1// _LICENSE_HEADER_
2//
3// Copyright (C) 2019 - 2025.
4// Terms register on the GPL-3.0 license.
5//
6// This file can be redistributed and/or modified under the license terms.
7//
8// See top level LICENSE file for more details.
9//
10// This file can be used citing references in CITATION.cff file.
11
12#ifndef __MeshMatrices_H
13#define __MeshMatrices_H
14
15#include "Eigen/Eigen"
16#include <unordered_set>
17
18namespace Gedim
19{
21{
22 unsigned int Dimension = 0;
23 unsigned int NumberCell0D = 0;
24 std::vector<double> Cell0DCoordinates = {};
25 std::vector<unsigned int> Cell0DMarkers = {};
26 std::vector<unsigned int> NumberCell0DNeighbourCell1D = {0};
28 std::vector<unsigned int> Cell0DNeighbourCell1Ds = {};
30 std::vector<unsigned int> NumberCell0DNeighbourCell2D = {0};
32 std::vector<unsigned int> Cell0DNeighbourCell2Ds = {};
34 std::vector<unsigned int> NumberCell0DNeighbourCell3D = {0};
36 std::vector<unsigned int> Cell0DNeighbourCell3Ds = {};
38 std::vector<bool> ActiveCell0D = {};
39 std::unordered_map<unsigned int, std::unordered_set<unsigned int>> UpdatedCell0Ds = {};
41 std::vector<std::string> Cell0DDoublePropertyIds = {};
42 std::unordered_map<std::string, unsigned int> Cell0DDoublePropertyIndices = {};
44 std::vector<std::vector<unsigned int>> Cell0DDoublePropertySizes = {};
45 std::vector<std::vector<double>> Cell0DDoublePropertyValues = {};
46 unsigned int NumberCell1D = 0;
47 std::vector<unsigned int> Cell1DVertices = {};
48 std::vector<unsigned int> NumberCell1DNeighbourCell2D = {0};
50 std::vector<unsigned int> NumberCell1DNeighbourCell3D = {0};
52 std::vector<unsigned int> Cell1DNeighbourCell2Ds = {};
54 std::vector<unsigned int> Cell1DNeighbourCell3Ds = {};
56 std::vector<unsigned int> Cell1DMarkers = {};
57 std::vector<bool> ActiveCell1D = {};
58 std::vector<unsigned int> Cell1DOriginalCell1Ds = {};
61 std::unordered_map<unsigned int, std::unordered_set<unsigned int>> UpdatedCell1Ds = {};
63 std::vector<std::string> Cell1DDoublePropertyIds = {};
64 std::unordered_map<std::string, unsigned int> Cell1DDoublePropertyIndices = {};
66 std::vector<std::vector<unsigned int>> Cell1DDoublePropertySizes = {};
67 std::vector<std::vector<double>> Cell1DDoublePropertyValues = {};
68 unsigned int NumberCell2D = 0;
69 std::vector<unsigned int> NumberCell2DVertices = {0};
70 std::vector<unsigned int> NumberCell2DEdges = {0};
71 std::vector<unsigned int> Cell2DVertices = {};
73 std::vector<unsigned int> Cell2DEdges = {};
74 std::vector<unsigned int> NumberCell2DNeighbourCell3D = {0};
76 std::vector<unsigned int> Cell2DNeighbourCell3Ds = {};
78 std::vector<unsigned int> Cell2DMarkers = {};
79 std::vector<bool> ActiveCell2D = {};
80 std::vector<unsigned int> NumberCell2DSubdivision = {0};
82 std::vector<unsigned int> Cell2DSubdivision = {};
84 std::vector<unsigned int> Cell2DOriginalCell2Ds = {};
87 std::unordered_map<unsigned int, std::unordered_set<unsigned int>> UpdatedCell2Ds = {};
89 std::vector<std::string> Cell2DDoublePropertyIds = {};
90 std::unordered_map<std::string, unsigned int> Cell2DDoublePropertyIndices = {};
92 std::vector<std::vector<unsigned int>> Cell2DDoublePropertySizes = {};
93 std::vector<std::vector<double>> Cell2DDoublePropertyValues = {};
94 unsigned int NumberCell3D = 0;
95 std::vector<unsigned int> NumberCell3DVertices = {0};
96 std::vector<unsigned int> NumberCell3DEdges = {0};
97 std::vector<unsigned int> NumberCell3DFaces = {0};
98 std::vector<unsigned int> Cell3DVertices = {};
100 std::vector<unsigned int> Cell3DEdges = {};
101 std::vector<unsigned int> Cell3DFaces = {};
102 std::vector<unsigned int> Cell3DMarkers = {};
103 std::vector<bool> ActiveCell3D = {};
104 std::vector<unsigned int> Cell3DOriginalCell3Ds = {};
107 std::unordered_map<unsigned int, std::unordered_set<unsigned int>> UpdatedCell3Ds = {};
109 std::vector<std::string> Cell3DDoublePropertyIds = {};
110 std::unordered_map<std::string, unsigned int> Cell3DDoublePropertyIndices = {};
112 std::vector<std::vector<unsigned int>> Cell3DDoublePropertySizes = {};
113 std::vector<std::vector<double>> Cell3DDoublePropertyValues = {};
114};
115} // namespace Gedim
116
117#endif
Eigen column vector.
Definition Eigen_Array.hpp:23
Definition Eigen_Array.cpp:22
Definition MeshMatrices.hpp:21
unsigned int NumberCell2D
number of Cell2D
Definition MeshMatrices.hpp:68
std::vector< unsigned int > Cell1DNeighbourCell3Ds
Definition MeshMatrices.hpp:54
std::vector< unsigned int > NumberCell0DNeighbourCell3D
Definition MeshMatrices.hpp:34
std::vector< unsigned int > NumberCell0DNeighbourCell1D
Definition MeshMatrices.hpp:26
std::vector< unsigned int > Cell0DNeighbourCell1Ds
Definition MeshMatrices.hpp:28
std::vector< unsigned int > Cell2DOriginalCell2Ds
Definition MeshMatrices.hpp:84
unsigned int NumberCell1D
number of Cell1D
Definition MeshMatrices.hpp:46
std::vector< unsigned int > NumberCell1DNeighbourCell2D
Definition MeshMatrices.hpp:48
std::vector< std::string > Cell3DDoublePropertyIds
Cell3D double property id - double property index.
Definition MeshMatrices.hpp:109
std::vector< unsigned int > NumberCell3DEdges
number of Edges per Cell3D, size 1 x NumberCell3D + 1
Definition MeshMatrices.hpp:96
std::vector< std::vector< unsigned int > > Cell0DDoublePropertySizes
Cell0D double property sizes.
Definition MeshMatrices.hpp:44
std::vector< unsigned int > Cell3DVertices
Definition MeshMatrices.hpp:98
std::vector< bool > ActiveCell1D
active Cell1D
Definition MeshMatrices.hpp:57
std::vector< unsigned int > Cell3DOriginalCell3Ds
Definition MeshMatrices.hpp:104
std::vector< unsigned int > Cell2DEdges
Cell2D Cell1D indices, size 1 x NumberCell2DEdges[NumberCell2D].
Definition MeshMatrices.hpp:73
std::vector< std::string > Cell0DDoublePropertyIds
Cell0D double property id - double property index.
Definition MeshMatrices.hpp:41
std::unordered_map< unsigned int, std::unordered_set< unsigned int > > UpdatedCell2Ds
Definition MeshMatrices.hpp:87
std::unordered_map< unsigned int, std::unordered_set< unsigned int > > UpdatedCell1Ds
Definition MeshMatrices.hpp:61
unsigned int NumberCell3D
number of Cell3D
Definition MeshMatrices.hpp:94
std::vector< unsigned int > Cell2DMarkers
Cell2D markers, size 1 x NumberCell2D (marker)
Definition MeshMatrices.hpp:78
std::vector< unsigned int > Cell2DNeighbourCell3Ds
Definition MeshMatrices.hpp:76
std::unordered_map< std::string, unsigned int > Cell2DDoublePropertyIndices
Definition MeshMatrices.hpp:90
std::unordered_map< unsigned int, std::unordered_set< unsigned int > > UpdatedCell3Ds
Definition MeshMatrices.hpp:107
std::vector< std::vector< double > > Cell3DDoublePropertyValues
Cell3D double property values.
Definition MeshMatrices.hpp:113
std::vector< unsigned int > Cell2DSubdivision
Definition MeshMatrices.hpp:82
std::vector< bool > ActiveCell2D
active Cell2D
Definition MeshMatrices.hpp:79
std::vector< unsigned int > Cell0DMarkers
Cell0D markers, size 1 x NumberCell0D (marker)
Definition MeshMatrices.hpp:25
std::vector< unsigned int > NumberCell2DNeighbourCell3D
Definition MeshMatrices.hpp:74
std::vector< unsigned int > Cell1DVertices
Cell1D vertices indices, size 2 x NumberCell1D (fromId,toId)
Definition MeshMatrices.hpp:47
std::vector< unsigned int > NumberCell3DFaces
number of Faces per Cell3D, size 1 x NumberCell3D + 1
Definition MeshMatrices.hpp:97
std::vector< unsigned int > Cell1DNeighbourCell2Ds
Definition MeshMatrices.hpp:52
std::vector< std::vector< double > > Cell2DDoublePropertyValues
Cell2D double property values.
Definition MeshMatrices.hpp:93
std::vector< unsigned int > Cell0DNeighbourCell3Ds
Definition MeshMatrices.hpp:36
std::vector< std::vector< unsigned int > > Cell1DDoublePropertySizes
Cell1D double property sizes.
Definition MeshMatrices.hpp:66
std::vector< unsigned int > Cell2DVertices
Definition MeshMatrices.hpp:71
std::unordered_map< std::string, unsigned int > Cell0DDoublePropertyIndices
Definition MeshMatrices.hpp:42
std::vector< unsigned int > NumberCell2DVertices
number of Vertices per Cell2D, size 1 x NumberCell2D + 1
Definition MeshMatrices.hpp:69
std::unordered_map< unsigned int, std::unordered_set< unsigned int > > UpdatedCell0Ds
Definition MeshMatrices.hpp:39
std::unordered_map< std::string, unsigned int > Cell3DDoublePropertyIndices
Definition MeshMatrices.hpp:110
std::vector< unsigned int > Cell0DNeighbourCell2Ds
Definition MeshMatrices.hpp:32
std::vector< std::vector< double > > Cell1DDoublePropertyValues
Cell1D double property values.
Definition MeshMatrices.hpp:67
std::vector< std::vector< unsigned int > > Cell2DDoublePropertySizes
Cell2D double property sizes.
Definition MeshMatrices.hpp:92
std::vector< unsigned int > NumberCell2DSubdivision
Definition MeshMatrices.hpp:80
std::vector< std::vector< unsigned int > > Cell3DDoublePropertySizes
Cell3D double property sizes.
Definition MeshMatrices.hpp:112
unsigned int Dimension
Geometric dimension.
Definition MeshMatrices.hpp:22
std::vector< double > Cell0DCoordinates
Cell0D coordinates, size 3 x NumberCell0D (x,y,z)
Definition MeshMatrices.hpp:24
std::vector< unsigned int > Cell1DMarkers
Cell1D propertoes, size 1 x NumberCell1D (marker)
Definition MeshMatrices.hpp:56
std::vector< unsigned int > NumberCell3DVertices
number of Vertices per Cell3D, size 1 x NumberCell3D + 1
Definition MeshMatrices.hpp:95
std::vector< unsigned int > NumberCell0DNeighbourCell2D
Definition MeshMatrices.hpp:30
std::vector< unsigned int > Cell1DOriginalCell1Ds
Definition MeshMatrices.hpp:58
std::vector< unsigned int > Cell3DEdges
Cell3D Cell1D indices, size 1 x NumberCell3DEdges[NumberCell3D].
Definition MeshMatrices.hpp:100
std::vector< unsigned int > Cell3DMarkers
Cell3D markers, size 1 x NumberCell3D (marker)
Definition MeshMatrices.hpp:102
std::unordered_map< std::string, unsigned int > Cell1DDoublePropertyIndices
Definition MeshMatrices.hpp:64
std::vector< bool > ActiveCell3D
active Cell3D
Definition MeshMatrices.hpp:103
std::vector< std::string > Cell1DDoublePropertyIds
Cell1D double property id - double property index.
Definition MeshMatrices.hpp:63
std::vector< std::string > Cell2DDoublePropertyIds
Cell2D double property id - double property index.
Definition MeshMatrices.hpp:89
std::vector< bool > ActiveCell0D
active Cell0D
Definition MeshMatrices.hpp:38
unsigned int NumberCell0D
number of Cell0D
Definition MeshMatrices.hpp:23
std::vector< unsigned int > Cell3DFaces
Cell3D Cell2D indices, size 1 x NumberCell3DFaces[NumberCell3D].
Definition MeshMatrices.hpp:101
std::vector< std::vector< double > > Cell0DDoublePropertyValues
Cell0D double property values.
Definition MeshMatrices.hpp:45
std::vector< unsigned int > NumberCell1DNeighbourCell3D
Definition MeshMatrices.hpp:50
std::vector< unsigned int > NumberCell2DEdges
number of Edges per Cell2D, size 1 x NumberCell2D + 1
Definition MeshMatrices.hpp:70