GeoEntity.h (getdp-3.4.0-source.tgz) | : | GeoEntity.h (getdp-3.5.0-source.tgz) | ||
---|---|---|---|---|
// GetDP - Copyright (C) 1997-2021 P. Dular and C. Geuzaine, University of Liege | // GetDP - Copyright (C) 1997-2022 P. Dular and C. Geuzaine, University of Liege | |||
// | // | |||
// See the LICENSE.txt file for license information. Please report all | // See the LICENSE.txt file for license information. Please report all | |||
// issues on https://gitlab.onelab.info/getdp/getdp/issues. | // issues on https://gitlab.onelab.info/getdp/getdp/issues. | |||
#ifndef GEO_ENTITY_H | #ifndef GEO_ENTITY_H | |||
#define GEO_ENTITY_H | #define GEO_ENTITY_H | |||
/* Incidence Matrices : Den (EdgesXNodes), Dfe (FacetsXEdges) */ | /* Incidence Matrices : Den (EdgesXNodes), Dfe (FacetsXEdges) */ | |||
/* Xp stands for 'expanded' (used in discrete operators) */ | /* Xp stands for 'expanded' (used in discrete operators) */ | |||
skipping to change at line 24 | skipping to change at line 24 | |||
v | v | |||
| | | | |||
| | | | |||
-----1-----u | -----1-----u | |||
| | | | |||
| | | | |||
------------------------------------------------------------------------ */ | ------------------------------------------------------------------------ */ | |||
static int NbrNodes_Point = 1 ; | static int NbrNodes_Point = 1; | |||
static int NbrEdges_Point = 0 ; | static int NbrEdges_Point = 0; | |||
static int NbrFacets_Point = 0 ; | static int NbrFacets_Point = 0; | |||
static double Nodes_Point [][3] | static double Nodes_Point[][3] = {{0., 0., 0.}}; | |||
= { {0., 0., 0.} } ; | ||||
/* ------------------------------------------------------------------------ | /* ------------------------------------------------------------------------ | |||
LINE edge 1: nodes 1 -> 2 | LINE edge 1: nodes 1 -> 2 | |||
v | v | |||
| | | | |||
| | | | |||
--1-----2--u | --1-----2--u | |||
| | | | |||
| | | | |||
------------------------------------------------------------------------ */ | ------------------------------------------------------------------------ */ | |||
static int NbrNodes_Line = 2 ; | static int NbrNodes_Line = 2; | |||
static int NbrEdges_Line = 1 ; | static int NbrEdges_Line = 1; | |||
static int NbrFacets_Line = 0 ; | static int NbrFacets_Line = 0; | |||
static double Nodes_Line[][3] = {{-1., 0., 0.}, | ||||
{ | ||||
1., | ||||
0., | ||||
0., | ||||
}}; | ||||
static double Nodes_Line [][3] | static int Den_Line[][NBR_MAX_SUBENTITIES_IN_ELEMENT] = {{1, -2, 0}}; | |||
= { {-1., 0., 0.} , {1., 0., 0.,} } ; | ||||
static int Den_Line [] [NBR_MAX_SUBENTITIES_IN_ELEMENT] | static int Den_Line_Xp[] = {-1, 1}; | |||
= { { 1, -2, 0} } ; | ||||
static int Den_Line_Xp [] | ||||
= { -1, 1 } ; | ||||
/* ------------------------------------------------------------------------ | /* ------------------------------------------------------------------------ | |||
LINE_2 edge 1: nodes 1 -> 2 | LINE_2 edge 1: nodes 1 -> 2 | |||
v | v | |||
| | | | |||
| | | | |||
--1--3--2--u | --1--3--2--u | |||
| | | | |||
| | | | |||
------------------------------------------------------------------------ */ | ------------------------------------------------------------------------ */ | |||
static int NbrNodes_Line_2 = 3 ; | static int NbrNodes_Line_2 = 3; | |||
static double Nodes_Line_2 [][3] | static double Nodes_Line_2[][3] = {{-1., 0., 0.}, | |||
= { {-1., 0., 0.} , {1., 0., 0.,} , {0., 0., 0.,} } ; | { 1., 0., 0.}, | |||
{ 0., 0., 0.}}; | ||||
/* ------------------------------------------------------------------------ | /* ------------------------------------------------------------------------ | |||
TRIANGLE edge 1: nodes 1 -> 2 | TRIANGLE edge 1: nodes 1 -> 2 | |||
v 2: 1 -> 3 | v 2: 1 -> 3 | |||
| 3: 2 -> 3 | | 3: 2 -> 3 | |||
| | | | |||
3 facet 1: edges 1 -2 3 nodes 1 2 3 | 3 facet 1: edges 1 -2 3 nodes 1 2 3 | |||
|\ | |\ | |||
| \ | | \ | |||
|__\___u | |__\___u | |||
1 2 | 1 2 | |||
------------------------------------------------------------------------ */ | ------------------------------------------------------------------------ */ | |||
static int NbrNodes_Triangle = 3 ; | static int NbrNodes_Triangle = 3; | |||
static int NbrEdges_Triangle = 3 ; | static int NbrEdges_Triangle = 3; | |||
static int NbrFacets_Triangle = 1 ; | static int NbrFacets_Triangle = 1; | |||
static double Nodes_Triangle [][3] | static double Nodes_Triangle[][3] = {{0., 0., 0.}, {1., 0., 0.}, {0., 1., 0.}}; | |||
= { {0., 0., 0.} , {1., 0., 0.} , {0., 1., 0.} } ; | ||||
static int Den_Triangle [] [NBR_MAX_SUBENTITIES_IN_ELEMENT] | static int Den_Triangle[][NBR_MAX_SUBENTITIES_IN_ELEMENT] = { | |||
= { { 1, -2, 0}, { 1, -3, 0}, { 2, -3, 0} } ; | {1, -2, 0}, {1, -3, 0}, {2, -3, 0}}; | |||
static int Den_Triangle_Xp [] | static int Den_Triangle_Xp[] = {-1, 1, 0, -1, 0, 1, 0, -1, 1}; | |||
= { -1, 1, 0, | ||||
-1, 0, 1, | ||||
0,-1, 1 } ; | ||||
static int Dfe_Triangle [] [NBR_MAX_SUBENTITIES_IN_ELEMENT] | static int Dfe_Triangle[][NBR_MAX_SUBENTITIES_IN_ELEMENT] = {{1, 3, -2, 0}}; | |||
= { { 1, 3, -2, 0} } ; | ||||
static int Dfe_Triangle_Xp [] | static int Dfe_Triangle_Xp[] = {1, -1, 1}; | |||
= { 1,-1, 1 } ; | ||||
static int Dfn_Triangle [] [NBR_MAX_SUBENTITIES_IN_ELEMENT] | static int Dfn_Triangle[][NBR_MAX_SUBENTITIES_IN_ELEMENT] = {{1, 2, 3, 0}}; | |||
= { { 1, 2, 3, 0} } ; | ||||
/* ------------------------------------------------------------------------ | /* ------------------------------------------------------------------------ | |||
TRIANGLE_2 edge 1: nodes 1 -> 2 | TRIANGLE_2 edge 1: nodes 1 -> 2 | |||
v 2: 1 -> 3 | v 2: 1 -> 3 | |||
| 3: 2 -> 3 | | 3: 2 -> 3 | |||
| | | | |||
3 facet 1: edges 1 -2 3 nodes 1 2 3 | 3 facet 1: edges 1 -2 3 nodes 1 2 3 | |||
|\ | |\ | |||
6 5 | 6 5 | |||
|__\___u | |__\___u | |||
1 4 2 | 1 4 2 | |||
------------------------------------------------------------------------ */ | ------------------------------------------------------------------------ */ | |||
static int NbrNodes_Triangle_2 = 6 ; | static int NbrNodes_Triangle_2 = 6; | |||
static double Nodes_Triangle_2 [][3] | static double Nodes_Triangle_2[][3] = {{0., 0., 0.}, {1., 0., 0.}, | |||
= { {0., 0., 0.} , {1., 0., 0.} , {0., 1., 0.} , | {0., 1., 0.}, {0.5, 0., 0.}, | |||
{0.5, 0., 0.} , {0.5, 0.5, 0.} , {0., 0.5, 0.} } ; | {0.5, 0.5, 0.}, {0., 0.5, 0.}}; | |||
/* ------------------------------------------------------------------------ | /* ------------------------------------------------------------------------ | |||
QUADRANGLE edge 1: nodes 1 -> 2 | QUADRANGLE edge 1: nodes 1 -> 2 | |||
v 2: 1 -> 4 | v 2: 1 -> 4 | |||
| 3: 2 -> 3 | | 3: 2 -> 3 | |||
4--|--3 4: 3 -> 4 | 4--|--3 4: 3 -> 4 | |||
| | | | | | | | |||
-----------u facet 1: edges 1 -2 3 4 nodes 1 2 3 4 | -----------u facet 1: edges 1 -2 3 4 nodes 1 2 3 4 | |||
| | | | | | | | |||
1--|--2 | 1--|--2 | |||
| | | | |||
------------------------------------------------------------------------ */ | ------------------------------------------------------------------------ */ | |||
static int NbrNodes_Quadrangle = 4 ; | static int NbrNodes_Quadrangle = 4; | |||
static int NbrEdges_Quadrangle = 4 ; | static int NbrEdges_Quadrangle = 4; | |||
static int NbrFacets_Quadrangle = 1 ; | static int NbrFacets_Quadrangle = 1; | |||
static double Nodes_Quadrangle [][3] | static double Nodes_Quadrangle[][3] = { | |||
= { {-1., -1., 0.} , {1., -1., 0.} , | {-1., -1., 0.}, {1., -1., 0.}, {1., 1., 0.}, {-1., 1., 0.}}; | |||
{ 1., 1., 0.} , {-1., 1., 0.} } ; | ||||
static int Den_Quadrangle[][NBR_MAX_SUBENTITIES_IN_ELEMENT] = { | ||||
static int Den_Quadrangle [] [NBR_MAX_SUBENTITIES_IN_ELEMENT] | {1, -2, 0}, {1, -4, 0}, {2, -3, 0}, {3, -4, 0}}; | |||
= { { 1, -2, 0}, { 1, -4, 0}, { 2, -3, 0}, { 3, -4, 0} } ; | ||||
static int Den_Quadrangle_Xp [] | ||||
= { -1, 1, 0, 0, | ||||
-1, 0, 0, 1, | ||||
0,-1, 1, 0, | ||||
0, 0,-1, 1 } ; | ||||
static int Dfe_Quadrangle [] [NBR_MAX_SUBENTITIES_IN_ELEMENT] | static int Den_Quadrangle_Xp[] = {-1, 1, 0, 0, -1, 0, 0, 1, | |||
= { { 1, 3, 4, -2, 0} } ; | 0, -1, 1, 0, 0, 0, -1, 1}; | |||
static int Dfe_Quadrangle_Xp [] | static int Dfe_Quadrangle[][NBR_MAX_SUBENTITIES_IN_ELEMENT] = { | |||
= { 1,-1, 1, 1 } ; | {1, 3, 4, -2, 0}}; | |||
static int Dfn_Quadrangle [] [NBR_MAX_SUBENTITIES_IN_ELEMENT] | static int Dfe_Quadrangle_Xp[] = {1, -1, 1, 1}; | |||
= { { 1, 2, 3, 4, 0} } ; | ||||
static int Dfn_Quadrangle[][NBR_MAX_SUBENTITIES_IN_ELEMENT] = {{1, 2, 3, 4, 0}}; | ||||
/* ------------------------------------------------------------------------ | /* ------------------------------------------------------------------------ | |||
QUADRANGLE_2 edge 1: nodes 1 -> 2 | QUADRANGLE_2 edge 1: nodes 1 -> 2 | |||
v 2: 1 -> 4 | v 2: 1 -> 4 | |||
| 3: 2 -> 3 | | 3: 2 -> 3 | |||
4--7--3 4: 3 -> 4 | 4--7--3 4: 3 -> 4 | |||
| | | | | | | | |||
--8--9--6--u facet 1: edges 1 -2 3 4 nodes 1 2 3 4 | --8--9--6--u facet 1: edges 1 -2 3 4 nodes 1 2 3 4 | |||
| | | | | | | | |||
1--5--2 | 1--5--2 | |||
| | | | |||
------------------------------------------------------------------------ */ | ------------------------------------------------------------------------ */ | |||
static int NbrNodes_Quadrangle_2 = 9 ; | static int NbrNodes_Quadrangle_2 = 9; | |||
static double Nodes_Quadrangle_2 [][3] | static double Nodes_Quadrangle_2[][3] = { | |||
= { {-1., -1., 0.} , { 1.,-1., 0.} , | {-1., -1., 0.}, {1., -1., 0.}, {1., 1., 0.}, {-1., 1., 0.}, {0., -1., 0.}, | |||
{ 1., 1., 0.} , {-1., 1., 0.} , | {1., 0., 0.}, {0., 1., 0.}, {-1., 0., 0.}, {0., 0., 0.}}; | |||
{ 0., -1., 0.} , { 1., 0., 0.} , | ||||
{ 0., 1., 0.} , {-1., 0., 0.} , | ||||
{ 0., 0., 0.} | ||||
} ; | ||||
/* ------------------------------------------------------------------------ | /* ------------------------------------------------------------------------ | |||
QUADRANGLE_2_8N edge 1: nodes 1 -> 3 | QUADRANGLE_2_8N edge 1: nodes 1 -> 3 | |||
v 2: 1 -> 7 | v 2: 1 -> 7 | |||
| 3: 3 -> 5 | | 3: 3 -> 5 | |||
7--6--5 4: 5 -> 7 | 7--6--5 4: 5 -> 7 | |||
| | | | | | | | |||
--8-----4--u facet 1: edges 1 -3 5 7 nodes 1 3 5 7 | --8-----4--u facet 1: edges 1 -3 5 7 nodes 1 3 5 7 | |||
| | | | | | | | |||
1--2--3 | 1--2--3 | |||
| | | | |||
------------------------------------------------------------------------ */ | ------------------------------------------------------------------------ */ | |||
static int NbrNodes_Quadrangle_2_8N = 8 ; | static int NbrNodes_Quadrangle_2_8N = 8; | |||
static double Nodes_Quadrangle_2_8N [][3] | static double Nodes_Quadrangle_2_8N[][3] = { | |||
= { {-1., -1., 0.} , { 1.,-1., 0.} , | {-1., -1., 0.}, {1., -1., 0.}, {1., 1., 0.}, {-1., 1., 0.}, | |||
{ 1., 1., 0.} , {-1., 1., 0.} , | {0., -1., 0.}, {1., 0., 0.}, {0., 1., 0.}, {-1., 0., 0.}, | |||
{ 0., -1., 0.} , { 1., 0., 0.} , | }; | |||
{ 0., 1., 0.} , {-1., 0., 0.} , | ||||
} ; | ||||
/* ------------------------------------------------------------------------ | /* ------------------------------------------------------------------------ | |||
TETRAHEDRON edge 1: nodes 1 -> 2 | TETRAHEDRON edge 1: nodes 1 -> 2 | |||
v 2: 1 -> 3 | v 2: 1 -> 3 | |||
| 3: 1 -> 4 | | 3: 1 -> 4 | |||
| 4: 2 -> 3 | | 4: 2 -> 3 | |||
| 5: 2 -> 4 | | 5: 2 -> 4 | |||
3 6: 3 -> 4 | 3 6: 3 -> 4 | |||
|\ | |\ | |||
| \ facet 1: edges 1 -3 5 nodes 1 2 4 | | \ facet 1: edges 1 -3 5 nodes 1 2 4 | |||
|__\2_____u 2: -1 2 -4 1 3 2 | |__\2_____u 2: -1 2 -4 1 3 2 | |||
1\ / 3: -2 3 -6 1 4 3 | 1\ / 3: -2 3 -6 1 4 3 | |||
\4 4: 4 -5 6 2 3 4 | \4 4: 4 -5 6 2 3 4 | |||
\ | \ | |||
w | w | |||
------------------------------------------------------------------------ */ | ------------------------------------------------------------------------ */ | |||
static int NbrNodes_Tetrahedron = 4 ; | static int NbrNodes_Tetrahedron = 4; | |||
static int NbrEdges_Tetrahedron = 6 ; | static int NbrEdges_Tetrahedron = 6; | |||
static int NbrFacets_Tetrahedron = 4 ; | static int NbrFacets_Tetrahedron = 4; | |||
static double Nodes_Tetrahedron [][3] | static double Nodes_Tetrahedron[][3] = { | |||
= { {0., 0., 0.} , {1., 0., 0.}, | {0., 0., 0.}, {1., 0., 0.}, {0., 1., 0.}, {0., 0., 1.}}; | |||
{0., 1., 0.} , {0., 0., 1.} } ; | ||||
static int Den_Tetrahedron[][NBR_MAX_SUBENTITIES_IN_ELEMENT] = { | ||||
static int Den_Tetrahedron [] [NBR_MAX_SUBENTITIES_IN_ELEMENT] | {1, -2, 0}, {1, -3, 0}, {1, -4, 0}, {2, -3, 0}, {2, -4, 0}, {3, -4, 0}}; | |||
= { { 1, -2, 0}, { 1, -3, 0}, { 1, -4, 0}, | ||||
{ 2, -3, 0}, { 2, -4, 0}, { 3, -4, 0} } ; | static int Den_Tetrahedron_Xp[] = {-1, 1, 0, 0, -1, 0, 1, 0, -1, 0, 0, 1, | |||
0, -1, 1, 0, 0, -1, 0, 1, 0, 0, -1, 1}; | ||||
static int Den_Tetrahedron_Xp [] | ||||
= { -1, 1, 0, 0, | static int Dfe_Tetrahedron[][NBR_MAX_SUBENTITIES_IN_ELEMENT] = { | |||
-1, 0, 1, 0, | {1, -3, 5, 0}, {-1, 2, -4, 0}, {-2, 3, -6, 0}, {4, -5, 6, 0}}; | |||
-1, 0, 0, 1, | ||||
0,-1, 1, 0, | static int Dfe_Tetrahedron_Xp[] = {1, 0, -1, 0, 1, 0, -1, 1, 0, -1, 0, 0, | |||
0,-1, 0, 1, | 0, -1, 1, 0, 0, -1, 0, 0, 0, 1, -1, 1}; | |||
0, 0,-1, 1 } ; | ||||
static int Dfn_Tetrahedron[][NBR_MAX_SUBENTITIES_IN_ELEMENT] = { | ||||
static int Dfe_Tetrahedron [] [NBR_MAX_SUBENTITIES_IN_ELEMENT] | {1, 2, 4, 0}, {1, 3, 2, 0}, {1, 4, 3, 0}, {2, 3, 4, 0}}; | |||
= { { 1, -3, 5, 0}, { -1, 2, -4, 0}, | ||||
{ -2, 3, -6, 0}, { 4, -5, 6, 0} } ; | ||||
static int Dfe_Tetrahedron_Xp [] | ||||
= { 1, 0,-1, 0, 1, 0, | ||||
-1, 1, 0,-1, 0, 0, | ||||
0,-1, 1, 0, 0,-1, | ||||
0, 0, 0, 1,-1, 1 } ; | ||||
static int Dfn_Tetrahedron [] [NBR_MAX_SUBENTITIES_IN_ELEMENT] | ||||
= { { 1, 2, 4, 0}, { 1, 3, 2, 0}, | ||||
{ 1, 4, 3, 0}, { 2, 3, 4, 0} } ; | ||||
/* ------------------------------------------------------------------------ * | /* ------------------------------------------------------------------------ * | |||
TETRAHEDRON_2 edge 1: nodes 1 -> 2 | TETRAHEDRON_2 edge 1: nodes 1 -> 2 | |||
3 2: 1 -> 3 | 3 2: 1 -> 3 | |||
,/|`\ 3: 1 -> 4 | ,/|`\ 3: 1 -> 4 | |||
,/ | `\ 4: 2 -> 3 | ,/ | `\ 4: 2 -> 3 | |||
,7 '. `6 5: 2 -> 4 | ,7 '. `6 5: 2 -> 4 | |||
,/ 9 `\ 6: 3 -> 4 | ,/ 9 `\ 6: 3 -> 4 | |||
,/ | `\ | ,/ | `\ | |||
1--------5--'.--------2 facet 1: edges 1 -3 5 nodes 1 2 4 | 1--------5--'.--------2 facet 1: edges 1 -3 5 nodes 1 2 4 | |||
`\. | ,/ 2: -1 2 -4 1 3 2 | `\. | ,/ 2: -1 2 -4 1 3 2 | |||
`\. | ,10 3: -2 3 -6 1 4 3 | `\. | ,10 3: -2 3 -6 1 4 3 | |||
`8. '. ,/ 4: 4 -5 6 2 3 4 | `8. '. ,/ 4: 4 -5 6 2 3 4 | |||
`\. |/ | `\. |/ | |||
`4 | `4 | |||
------------------------------------------------------------------------ */ | ------------------------------------------------------------------------ */ | |||
static int NbrNodes_Tetrahedron_2 = 10 ; | static int NbrNodes_Tetrahedron_2 = 10; | |||
static double Nodes_Tetrahedron_2 [][3] | static double Nodes_Tetrahedron_2[][3] = { | |||
= { {0., 0., 0.}, {1., 0., 0.}, {0., 1., 0.}, {0., 0., 1.}, | {0., 0., 0.}, {1., 0., 0.}, {0., 1., 0.}, {0., 0., 1.}, {0.5, 0., 0.}, | |||
{0.5, 0., 0.}, {0.5, 0.5, 0.}, {0., 0.5, 0.}, | {0.5, 0.5, 0.}, {0., 0.5, 0.}, {0., 0., 0.5}, {0., 0.5, 0.5}, {0.5, 0., 0.5}}; | |||
{0., 0., 0.5}, {0., 0.5, 0.5}, {0.5, 0., 0.5} } ; | ||||
/* ------------------------------------------------------------------------ | /* ------------------------------------------------------------------------ | |||
HEXAHEDRON edge 1: nodes 1 -> 2 | HEXAHEDRON edge 1: nodes 1 -> 2 | |||
v 2: 1 -> 4 | v 2: 1 -> 4 | |||
| 3: 1 -> 5 | | 3: 1 -> 5 | |||
| 4: 2 -> 3 | | 4: 2 -> 3 | |||
4----|--3 5: 2 -> 6 | 4----|--3 5: 2 -> 6 | |||
|\ | |\ 6: 3 -> 4 | |\ | |\ 6: 3 -> 4 | |||
| 8-------7 7: 3 -> 7 | | 8-------7 7: 3 -> 7 | |||
| | ----|---u 8: 4 -> 8 | | | ----|---u 8: 4 -> 8 | |||
1-|---\-2 | 9: 5 -> 6 | 1-|---\-2 | 9: 5 -> 6 | |||
\| \ \| 10: 5 -> 8 | \| \ \| 10: 5 -> 8 | |||
5-----\-6 11: 6 -> 7 | 5-----\-6 11: 6 -> 7 | |||
\ 12: 7 -> 8 | \ 12: 7 -> 8 | |||
w | w | |||
facet 1: edges 1 -3 5 -9 nodes 1 2 6 5 | facet 1: edges 1 -3 5 -9 nodes 1 2 6 5 | |||
2: -1 2 -4 -6 1 4 3 2 | 2: -1 2 -4 -6 1 4 3 2 | |||
3: -2 3 -8 10 1 5 8 4 | 3: -2 3 -8 10 1 5 8 4 | |||
4: 4 -5 7 -11 2 3 7 6 | 4: 4 -5 7 -11 2 3 7 6 | |||
5: 6 -7 8 -12 3 4 8 7 | 5: 6 -7 8 -12 3 4 8 7 | |||
6: 9 -10 11 12 5 6 7 8 | 6: 9 -10 11 12 5 6 7 8 | |||
------------------------------------------------------------------------ */ | ------------------------------------------------------------------------ */ | |||
static int NbrNodes_Hexahedron = 8 ; | static int NbrNodes_Hexahedron = 8; | |||
static int NbrEdges_Hexahedron = 12 ; | static int NbrEdges_Hexahedron = 12; | |||
static int NbrFacets_Hexahedron = 6 ; | static int NbrFacets_Hexahedron = 6; | |||
static double Nodes_Hexahedron [][3] | static double Nodes_Hexahedron[][3] = { | |||
= { {-1., -1., -1.} , {1., -1., -1.} , | {-1., -1., -1.}, {1., -1., -1.}, {1., 1., -1.}, {-1., 1., -1.}, | |||
{ 1., 1., -1.} , {-1., 1., -1.} , | {-1., -1., 1.}, {1., -1., 1.}, {1., 1., 1.}, {-1., 1., 1.}}; | |||
{-1., -1., 1.} , {1., -1., 1.} , | ||||
{ 1., 1., 1.} , {-1., 1., 1.} } ; | static int Den_Hexahedron[][NBR_MAX_SUBENTITIES_IN_ELEMENT] = { | |||
{1, -2, 0}, {1, -4, 0}, {1, -5, 0}, {2, -3, 0}, {2, -6, 0}, {3, -4, 0}, | ||||
static int Den_Hexahedron [] [NBR_MAX_SUBENTITIES_IN_ELEMENT] | {3, -7, 0}, {4, -8, 0}, {5, -6, 0}, {5, -8, 0}, {6, -7, 0}, {7, -8, 0}}; | |||
= { { 1, -2, 0}, { 1, -4, 0}, { 1, -5, 0}, | ||||
{ 2, -3, 0}, { 2, -6, 0}, { 3, -4, 0}, | static int Den_Hexahedron_Xp[] = { | |||
{ 3, -7, 0}, { 4, -8, 0}, { 5, -6, 0}, | -1, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, | |||
{ 5, -8, 0}, { 6, -7, 0}, { 7, -8, 0} } ; | 1, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, | |||
0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, -1, | ||||
static int Den_Hexahedron_Xp [] | 0, 0, 0, 1, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, | |||
= { -1, 1, 0, 0, 0, 0, 0, 0, | 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, -1, 1}; | |||
-1, 0, 0, 1, 0, 0, 0, 0, | ||||
-1, 0, 0, 0, 1, 0, 0, 0, | static int Dfe_Hexahedron[][NBR_MAX_SUBENTITIES_IN_ELEMENT] = { | |||
0,-1, 1, 0, 0, 0, 0, 0, | {1, -3, 5, -9, 0}, {-1, 2, -4, -6, 0}, {-2, 3, -8, 10, 0}, | |||
0,-1, 0, 0, 0, 1, 0, 0, | {4, -5, 7, -11, 0}, {6, -7, 8, -12, 0}, {9, -10, 11, 12, 0}}; | |||
0, 0,-1, 1, 0, 0, 0, 0, | ||||
0, 0,-1, 0, 0, 0, 1, 0, | static int Dfe_Hexahedron_Xp[] = { | |||
0, 0, 0,-1, 0, 0, 0, 1, | 1, 0, -1, 0, 1, 0, 0, 0, -1, 0, 0, 0, -1, 1, 0, -1, 0, -1, | |||
0, 0, 0, 0,-1, 1, 0, 0, | 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, -1, 0, 1, 0, 0, | |||
0, 0, 0, 0,-1, 0, 0, 1, | 0, 0, 0, 1, -1, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, | |||
0, 0, 0, 0, 0,-1, 1, 0, | -1, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 1, 1}; | |||
0, 0, 0, 0, 0, 0,-1, 1 }; | ||||
static int Dfn_Hexahedron[][NBR_MAX_SUBENTITIES_IN_ELEMENT] = { | ||||
static int Dfe_Hexahedron [] [NBR_MAX_SUBENTITIES_IN_ELEMENT] | {1, 2, 6, 5, 0}, {1, 4, 3, 2, 0}, {1, 5, 8, 4, 0}, | |||
= { { 1, -3, 5, -9, 0}, {-1, 2, -4, -6, 0}, {-2, 3, -8, 10, 0}, | {2, 3, 7, 6, 0}, {3, 4, 8, 7, 0}, {5, 6, 7, 8, 0}}; | |||
{ 4, -5, 7, -11, 0}, { 6, -7, 8, -12, 0}, { 9, -10, 11, 12, 0} } ; | ||||
static int Dfe_Hexahedron_Xp [] | ||||
= { 1, 0,-1, 0, 1, 0, 0, 0,-1, 0, 0, 0, | ||||
-1, 1, 0,-1, 0,-1, 0, 0, 0, 0, 0, 0, | ||||
0,-1, 1, 0, 0, 0, 0,-1, 0, 1, 0, 0, | ||||
0, 0, 0, 1,-1, 0, 1, 0, 0, 0,-1, 0, | ||||
0, 0, 0, 0, 0, 1,-1, 1, 0, 0, 0,-1, | ||||
0, 0, 0, 0, 0, 0, 0, 0, 1,-1, 1, 1 }; | ||||
static int Dfn_Hexahedron [] [NBR_MAX_SUBENTITIES_IN_ELEMENT] | ||||
= { { 1, 2, 6, 5, 0}, { 1, 4, 3, 2, 0}, { 1, 5, 8, 4, 0}, | ||||
{ 2, 3, 7, 6, 0}, { 3, 4, 8, 7, 0}, { 5, 6, 7, 8, 0} } ; | ||||
/* ------------------------------------------------------------------------ | /* ------------------------------------------------------------------------ | |||
PRISM edge 1: nodes 1 -> 2 | PRISM edge 1: nodes 1 -> 2 | |||
v 2: 1 -> 3 | v 2: 1 -> 3 | |||
3 | 3: 1 -> 4 | 3 | 3: 1 -> 4 | |||
|\| 4: 2 -> 3 | |\| 4: 2 -> 3 | |||
| | 5: 2 -> 5 | | | 5: 2 -> 5 | |||
1_|2 6: 3 -> 6 | 1_|2 6: 3 -> 6 | |||
\| 6 7: 4 -> 5 | \| 6 7: 4 -> 5 | |||
|_|_\___u 8: 4 -> 6 | |_|_\___u 8: 4 -> 6 | |||
\| \ 9: 5 -> 6 | \| \ 9: 5 -> 6 | |||
4 __5 | 4 __5 | |||
\ facet 1: edges 1 -3 5 -7 nodes 1 2 5 4 | \ facet 1: edges 1 -3 5 -7 nodes 1 2 5 4 | |||
\ 2: -1 2 -4 1 3 2 | \ 2: -1 2 -4 1 3 2 | |||
w 3: -2 3 -6 8 1 4 6 3 | w 3: -2 3 -6 8 1 4 6 3 | |||
4: 4 -5 6 -9 2 3 6 5 | 4: 4 -5 6 -9 2 3 6 5 | |||
5: 7 -8 9 4 5 6 | 5: 7 -8 9 4 5 6 | |||
------------------------------------------------------------------------ */ | ------------------------------------------------------------------------ */ | |||
static int NbrNodes_Prism = 6 ; | static int NbrNodes_Prism = 6; | |||
static int NbrEdges_Prism = 9 ; | static int NbrEdges_Prism = 9; | |||
static int NbrFacets_Prism = 5 ; | static int NbrFacets_Prism = 5; | |||
static double Nodes_Prism [][3] | static double Nodes_Prism[][3] = {{0., 0., -1.}, {1., 0., -1.}, {0., 1., -1.}, | |||
= { {0., 0., -1.} , {1., 0., -1.} , {0., 1., -1.} , | {0., 0., 1.}, {1., 0., 1.}, {0., 1., 1.}}; | |||
{0., 0., 1.} , {1., 0., 1.} , {0., 1., 1.} } ; | ||||
static int Den_Prism[][NBR_MAX_SUBENTITIES_IN_ELEMENT] = { | ||||
static int Den_Prism [] [NBR_MAX_SUBENTITIES_IN_ELEMENT] | {1, -2, 0}, {1, -3, 0}, {1, -4, 0}, {2, -3, 0}, {2, -5, 0}, | |||
= { { 1, -2, 0}, { 1, -3, 0}, { 1, -4, 0}, | {3, -6, 0}, {4, -5, 0}, {4, -6, 0}, {5, -6, 0}}; | |||
{ 2, -3, 0}, { 2, -5, 0}, { 3, -6, 0}, | ||||
{ 4, -5, 0}, { 4, -6, 0}, { 5, -6, 0} } ; | static int Den_Prism_Xp[] = {-1, 1, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, -1, 0, | |||
0, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, -1, 0, 0, | ||||
static int Den_Prism_Xp [] | 1, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, -1, 1, 0, | |||
= { -1, 1, 0, 0, 0, 0, | 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, -1, 1}; | |||
-1, 0, 1, 0, 0, 0, | ||||
-1, 0, 0, 1, 0, 0, | static int Dfe_Prism[][NBR_MAX_SUBENTITIES_IN_ELEMENT] = {{1, -3, 5, -7, 0}, | |||
0,-1, 1, 0, 0, 0, | {-1, 2, -4, 0}, | |||
0,-1, 0, 0, 1, 0, | {-2, 3, -6, 8, 0}, | |||
0, 0,-1, 0, 0, 1, | {4, -5, 6, -9, 0}, | |||
0, 0, 0,-1, 1, 0, | {7, -8, 9, 0}}; | |||
0, 0, 0,-1, 0, 1, | ||||
0, 0, 0, 0,-1, 1 }; | static int Dfe_Prism_Xp[] = { | |||
1, 0, -1, 0, 1, 0, -1, 0, 0, -1, 1, 0, -1, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, | ||||
static int Dfe_Prism [] [NBR_MAX_SUBENTITIES_IN_ELEMENT] | -1, 0, 1, 0, 0, 0, 0, 1, -1, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, -1, 1}; | |||
= { { 1, -3, 5, -7, 0}, { -1, 2, -4, 0}, { -2, 3, -6, 8, 0}, | ||||
{ 4, -5, 6, -9, 0}, { 7, -8, 9, 0} } ; | static int Dfn_Prism[][NBR_MAX_SUBENTITIES_IN_ELEMENT] = {{1, 2, 5, 4, 0}, | |||
{1, 3, 2, 0}, | ||||
static int Dfe_Prism_Xp [] | {1, 4, 6, 3, 0}, | |||
= { 1, 0,-1, 0, 1, 0,-1, 0, 0, | {2, 3, 6, 5, 0}, | |||
-1, 1, 0,-1, 0, 0, 0, 0, 0, | {4, 5, 6, 0}}; | |||
0,-1, 1, 0, 0,-1, 0, 1, 0, | ||||
0, 0, 0, 1,-1, 1, 0, 0,-1, | ||||
0, 0, 0, 0, 0, 0, 1,-1, 1 }; | ||||
static int Dfn_Prism [] [NBR_MAX_SUBENTITIES_IN_ELEMENT] | ||||
= { { 1, 2, 5, 4, 0}, { 1, 3, 2, 0}, { 1, 4, 6, 3, 0}, | ||||
{ 2, 3, 6, 5, 0}, { 4, 5, 6, 0} } ; | ||||
/* ------------------------------------------------------------------------ | /* ------------------------------------------------------------------------ | |||
PYRAMID edge 1: nodes 1 -> 2 | PYRAMID edge 1: nodes 1 -> 2 | |||
v 2: 1 -> 4 | v 2: 1 -> 4 | |||
| 3: 1 -> 5 | | 3: 1 -> 5 | |||
| 4: 2 -> 3 | | 4: 2 -> 3 | |||
4---|---3 5: 2 -> 5 | 4---|---3 5: 2 -> 5 | |||
| \ | /| 6: 3 -> 4 | | \ | /| 6: 3 -> 4 | |||
| \ -/-|---u 7: 3 -> 5 | | \ -/-|---u 7: 3 -> 5 | |||
| / 5\ | 8: 4 -> 5 | | / 5\ | 8: 4 -> 5 | |||
1/----\-2 | 1/----\-2 | |||
\ facet 1: edges 1 5 -3 nodes 1 2 5 | \ facet 1: edges 1 5 -3 nodes 1 2 5 | |||
\ 2: 2 -6 -4 -1 1 4 3 2 | \ 2: 2 -6 -4 -1 1 4 3 2 | |||
w 3: 3 -8 -2 1 5 4 | w 3: 3 -8 -2 1 5 4 | |||
4: 4 7 -5 2 3 5 | 4: 4 7 -5 2 3 5 | |||
5: 6 8 -7 3 4 5 | 5: 6 8 -7 3 4 5 | |||
------------------------------------------------------------------------ */ | ------------------------------------------------------------------------ */ | |||
static int NbrNodes_Pyramid = 5 ; | static int NbrNodes_Pyramid = 5; | |||
static int NbrEdges_Pyramid = 8 ; | static int NbrEdges_Pyramid = 8; | |||
static int NbrFacets_Pyramid = 5 ; | static int NbrFacets_Pyramid = 5; | |||
static double Nodes_Pyramid [][3] | static double Nodes_Pyramid[][3] = { | |||
= { {-1., -1., 0.} , { 1., -1., 0.} , | {-1., -1., 0.}, {1., -1., 0.}, {1., 1., 0.}, {-1., 1., 0.}, {0., 0., 1.}}; | |||
{ 1., 1., 0.} , {-1., 1., 0.} , | ||||
{ 0., 0., 1.} } ; | static int Den_Pyramid[][NBR_MAX_SUBENTITIES_IN_ELEMENT] = { | |||
{1, -2, 0}, {1, -4, 0}, {1, -5, 0}, {2, -3, 0}, | ||||
static int Den_Pyramid [] [NBR_MAX_SUBENTITIES_IN_ELEMENT] | {2, -5, 0}, {3, -4, 0}, {3, -5, 0}, {4, -5, 0}}; | |||
= { { 1, -2, 0}, { 1, -4, 0}, { 1, -5, 0}, { 2, -3, 0}, | ||||
{ 2, -5, 0}, { 3, -4, 0}, { 3, -5, 0}, { 4, -5, 0} } ; | static int Den_Pyramid_Xp[] = {-1, 1, 0, 0, 0, -1, 0, 0, 1, 0, -1, 0, 0, 0, | |||
1, 0, -1, 1, 0, 0, 0, -1, 0, 0, 1, 0, 0, -1, | ||||
static int Den_Pyramid_Xp [] | 1, 0, 0, 0, -1, 0, 1, 0, 0, 0, -1, 1}; | |||
= { -1, 1, 0, 0, 0, | ||||
-1, 0, 0, 1, 0, | static int Dfe_Pyramid[][NBR_MAX_SUBENTITIES_IN_ELEMENT] = {{1, 5, -3, 0}, | |||
-1, 0, 0, 0, 1, | {2, -6, -4, -1, 0}, | |||
0,-1, 1, 0, 0, | {3, -8, -2, 0}, | |||
0,-1, 0, 0, 1, | {4, 7, -5, 0}, | |||
0, 0,-1, 1, 0, | {6, 8, -7, 0}}; | |||
0, 0,-1, 0, 1, | ||||
0, 0, 0,-1, 1 }; | static int Dfe_Pyramid_Xp[] = {1, 0, -1, 0, 1, 0, 0, 0, -1, 1, 0, -1, 0, -1, | |||
0, 0, 0, -1, 1, 0, 0, 0, 0, -1, 0, 0, 0, 1, | ||||
static int Dfe_Pyramid [] [NBR_MAX_SUBENTITIES_IN_ELEMENT] | -1, 0, 1, 0, 0, 0, 0, 0, 0, 1, -1, 1}; | |||
= { { 1, 5, -3, 0}, { 2, -6, -4, -1, 0}, { 3, -8, -2, 0}, | ||||
{ 4, 7, -5, 0}, { 6, 8, -7, 0} } ; | static int Dfn_Pyramid[][NBR_MAX_SUBENTITIES_IN_ELEMENT] = { | |||
{1, 2, 5, 0}, {1, 4, 3, 2, 0}, {1, 5, 4, 0}, {2, 3, 5, 0}, {3, 4, 5, 0}}; | ||||
static int Dfe_Pyramid_Xp [] | ||||
= { 1, 0,-1, 0, 1, 0, 0, 0, | ||||
-1, 1, 0,-1, 0,-1, 0, 0, | ||||
0,-1, 1, 0, 0, 0, 0,-1, | ||||
0, 0, 0, 1,-1, 0, 1, 0, | ||||
0, 0, 0, 0, 0, 1,-1, 1 }; | ||||
static int Dfn_Pyramid [] [NBR_MAX_SUBENTITIES_IN_ELEMENT] | ||||
= { { 1, 2, 5, 0}, { 1, 4, 3, 2, 0}, { 1, 5, 4, 0}, | ||||
{ 2, 3, 5, 0}, { 3, 4, 5, 0} } ; | ||||
#endif | #endif | |||
End of changes. 33 change blocks. | ||||
241 lines changed or deleted | 181 lines changed or added |