indicate parameters and report vtk type
This commit is contained in:
parent
2d294aba23
commit
0cf27a8229
368
src/element.f90
368
src/element.f90
|
@ -22,6 +22,8 @@ module element
|
||||||
NcellnodesPerCell, &
|
NcellnodesPerCell, &
|
||||||
nIPs, &
|
nIPs, &
|
||||||
nIPneighbors
|
nIPneighbors
|
||||||
|
character(len=:), allocatable :: &
|
||||||
|
vtkType
|
||||||
integer, dimension(:,:), allocatable :: &
|
integer, dimension(:,:), allocatable :: &
|
||||||
Cell, & !< intra-element (cell) nodes that constitute a cell
|
Cell, & !< intra-element (cell) nodes that constitute a cell
|
||||||
IPneighbor, &
|
IPneighbor, &
|
||||||
|
@ -36,10 +38,10 @@ module element
|
||||||
end type tElement
|
end type tElement
|
||||||
|
|
||||||
|
|
||||||
integer, parameter, private :: &
|
integer, parameter :: &
|
||||||
NELEMTYPE = 13
|
NELEMTYPE = 13
|
||||||
|
|
||||||
integer, dimension(NELEMTYPE), parameter, private :: NNODE = &
|
integer, dimension(NELEMTYPE), parameter :: NNODE = &
|
||||||
[ &
|
[ &
|
||||||
3, & ! 2D 3node 1ip
|
3, & ! 2D 3node 1ip
|
||||||
6, & ! 2D 6node 3ip
|
6, & ! 2D 6node 3ip
|
||||||
|
@ -57,7 +59,7 @@ module element
|
||||||
20 & ! 3D 20node 27ip
|
20 & ! 3D 20node 27ip
|
||||||
] !< number of nodes that constitute a specific type of element
|
] !< number of nodes that constitute a specific type of element
|
||||||
|
|
||||||
integer, dimension(NELEMTYPE), parameter, public :: GEOMTYPE = &
|
integer, dimension(NELEMTYPE), parameter :: GEOMTYPE = &
|
||||||
[ &
|
[ &
|
||||||
1, &
|
1, &
|
||||||
2, &
|
2, &
|
||||||
|
@ -74,7 +76,7 @@ module element
|
||||||
10 &
|
10 &
|
||||||
] !< geometry type of particular element type
|
] !< geometry type of particular element type
|
||||||
|
|
||||||
integer, dimension(maxval(GEOMTYPE)), parameter, private :: NCELLNODE = &
|
integer, dimension(maxval(GEOMTYPE)), parameter :: NCELLNODE = &
|
||||||
[ &
|
[ &
|
||||||
3, &
|
3, &
|
||||||
7, &
|
7, &
|
||||||
|
@ -88,7 +90,7 @@ module element
|
||||||
64 &
|
64 &
|
||||||
] !< number of cell nodes in a specific geometry type
|
] !< number of cell nodes in a specific geometry type
|
||||||
|
|
||||||
integer, dimension(maxval(GEOMTYPE)), parameter, private :: NIP = &
|
integer, dimension(maxval(GEOMTYPE)), parameter :: NIP = &
|
||||||
[ &
|
[ &
|
||||||
1, &
|
1, &
|
||||||
3, &
|
3, &
|
||||||
|
@ -102,7 +104,7 @@ module element
|
||||||
27 &
|
27 &
|
||||||
] !< number of IPs in a specific geometry type
|
] !< number of IPs in a specific geometry type
|
||||||
|
|
||||||
integer, dimension(maxval(GEOMTYPE)), parameter, private :: CELLTYPE = &
|
integer, dimension(maxval(GEOMTYPE)), parameter :: CELLTYPE = &
|
||||||
[ &
|
[ &
|
||||||
1, & ! 2D 3node
|
1, & ! 2D 3node
|
||||||
2, & ! 2D 4node
|
2, & ! 2D 4node
|
||||||
|
@ -116,7 +118,7 @@ module element
|
||||||
4 & ! 3D 8node
|
4 & ! 3D 8node
|
||||||
] !< cell type that is used by each geometry type
|
] !< cell type that is used by each geometry type
|
||||||
|
|
||||||
integer, dimension(maxval(CELLTYPE)), parameter, private :: NIPNEIGHBOR = &
|
integer, dimension(maxval(CELLTYPE)), parameter :: NIPNEIGHBOR = &
|
||||||
[ &
|
[ &
|
||||||
3, & ! 2D 3node
|
3, & ! 2D 3node
|
||||||
4, & ! 2D 4node
|
4, & ! 2D 4node
|
||||||
|
@ -124,7 +126,7 @@ module element
|
||||||
6 & ! 3D 8node
|
6 & ! 3D 8node
|
||||||
] !< number of ip neighbors / cell faces in a specific cell type
|
] !< number of ip neighbors / cell faces in a specific cell type
|
||||||
|
|
||||||
integer, dimension(maxval(CELLTYPE)), parameter, private :: NCELLNODEPERCELLFACE = &
|
integer, dimension(maxval(CELLTYPE)), parameter :: NCELLNODEPERCELLFACE = &
|
||||||
[ &
|
[ &
|
||||||
2, & ! 2D 3node
|
2, & ! 2D 3node
|
||||||
2, & ! 2D 4node
|
2, & ! 2D 4node
|
||||||
|
@ -132,7 +134,7 @@ module element
|
||||||
4 & ! 3D 8node
|
4 & ! 3D 8node
|
||||||
] !< number of cell nodes in a specific cell type
|
] !< number of cell nodes in a specific cell type
|
||||||
|
|
||||||
integer, dimension(maxval(CELLTYPE)), parameter, private :: NCELLNODEPERCELL = &
|
integer, dimension(maxval(CELLTYPE)), parameter :: NCELLNODEPERCELL = &
|
||||||
[ &
|
[ &
|
||||||
3, & ! 2D 3node
|
3, & ! 2D 3node
|
||||||
4, & ! 2D 4node
|
4, & ! 2D 4node
|
||||||
|
@ -146,27 +148,27 @@ module element
|
||||||
! Positive integers denote an intra-element IP identifier.
|
! Positive integers denote an intra-element IP identifier.
|
||||||
! Negative integers denote the interface behind which the neighboring (extra-element) IP will be located.
|
! Negative integers denote the interface behind which the neighboring (extra-element) IP will be located.
|
||||||
|
|
||||||
integer, dimension(nIPneighbor(cellType(1)),nIP(1)), parameter, private :: IPneighbor1 = &
|
integer, dimension(NIPNEIGHBOR(CELLTYPE(1)),NIP(1)), parameter :: IPNEIGHBOR1 = &
|
||||||
reshape([&
|
reshape([&
|
||||||
-2,-3,-1 &
|
-2,-3,-1 &
|
||||||
],[nIPneighbor(cellType(1)),nIP(1)])
|
],shape(IPNEIGHBOR1))
|
||||||
|
|
||||||
integer, dimension(nIPneighbor(cellType(2)),nIP(2)), parameter, private :: IPneighbor2 = &
|
integer, dimension(NIPNEIGHBOR(CELLTYPE(2)),NIP(2)), parameter :: IPNEIGHBOR2 = &
|
||||||
reshape([&
|
reshape([&
|
||||||
2,-3, 3,-1, &
|
2,-3, 3,-1, &
|
||||||
-2, 1, 3,-1, &
|
-2, 1, 3,-1, &
|
||||||
2,-3,-2, 1 &
|
2,-3,-2, 1 &
|
||||||
],[nIPneighbor(cellType(2)),nIP(2)])
|
],shape(IPNEIGHBOR2))
|
||||||
|
|
||||||
integer, dimension(nIPneighbor(cellType(3)),nIP(3)), parameter, private :: IPneighbor3 = &
|
integer, dimension(NIPNEIGHBOR(CELLTYPE(3)),NIP(3)), parameter :: IPNEIGHBOR3 = &
|
||||||
reshape([&
|
reshape([&
|
||||||
2,-4, 3,-1, &
|
2,-4, 3,-1, &
|
||||||
-2, 1, 4,-1, &
|
-2, 1, 4,-1, &
|
||||||
4,-4,-3, 1, &
|
4,-4,-3, 1, &
|
||||||
-2, 3,-3, 2 &
|
-2, 3,-3, 2 &
|
||||||
],[nIPneighbor(cellType(3)),nIP(3)])
|
],shape(IPNEIGHBOR3))
|
||||||
|
|
||||||
integer, dimension(nIPneighbor(cellType(4)),nIP(4)), parameter, private :: IPneighbor4 = &
|
integer, dimension(NIPNEIGHBOR(CELLTYPE(4)),NIP(4)), parameter :: IPNEIGHBOR4 = &
|
||||||
reshape([&
|
reshape([&
|
||||||
2,-4, 4,-1, &
|
2,-4, 4,-1, &
|
||||||
3, 1, 5,-1, &
|
3, 1, 5,-1, &
|
||||||
|
@ -177,22 +179,22 @@ module element
|
||||||
8,-4,-3, 4, &
|
8,-4,-3, 4, &
|
||||||
9, 7,-3, 5, &
|
9, 7,-3, 5, &
|
||||||
-2, 8,-3, 6 &
|
-2, 8,-3, 6 &
|
||||||
],[nIPneighbor(cellType(4)),nIP(4)])
|
],shape(IPNEIGHBOR4))
|
||||||
|
|
||||||
integer, dimension(nIPneighbor(cellType(5)),nIP(5)), parameter, private :: IPneighbor5 = &
|
integer, dimension(NIPNEIGHBOR(CELLTYPE(5)),NIP(5)), parameter :: IPNEIGHBOR5 = &
|
||||||
reshape([&
|
reshape([&
|
||||||
-1,-2,-3,-4 &
|
-1,-2,-3,-4 &
|
||||||
],[nIPneighbor(cellType(5)),nIP(5)])
|
],shape(IPNEIGHBOR5))
|
||||||
|
|
||||||
integer, dimension(nIPneighbor(cellType(6)),nIP(6)), parameter, private :: IPneighbor6 = &
|
integer, dimension(NIPNEIGHBOR(CELLTYPE(6)),NIP(6)), parameter :: IPNEIGHBOR6 = &
|
||||||
reshape([&
|
reshape([&
|
||||||
2,-4, 3,-2, 4,-1, &
|
2,-4, 3,-2, 4,-1, &
|
||||||
-2, 1, 3,-2, 4,-1, &
|
-2, 1, 3,-2, 4,-1, &
|
||||||
2,-4,-3, 1, 4,-1, &
|
2,-4,-3, 1, 4,-1, &
|
||||||
2,-4, 3,-2,-3, 1 &
|
2,-4, 3,-2,-3, 1 &
|
||||||
],[nIPneighbor(cellType(6)),nIP(6)])
|
],shape(IPNEIGHBOR6))
|
||||||
|
|
||||||
integer, dimension(nIPneighbor(cellType(7)),nIP(7)), parameter, private :: IPneighbor7 = &
|
integer, dimension(NIPNEIGHBOR(CELLTYPE(7)),NIP(7)), parameter :: IPNEIGHBOR7 = &
|
||||||
reshape([&
|
reshape([&
|
||||||
2,-4, 3,-2, 4,-1, &
|
2,-4, 3,-2, 4,-1, &
|
||||||
-3, 1, 3,-2, 5,-1, &
|
-3, 1, 3,-2, 5,-1, &
|
||||||
|
@ -200,14 +202,14 @@ module element
|
||||||
5,-4, 6,-2,-5, 1, &
|
5,-4, 6,-2,-5, 1, &
|
||||||
-3, 4, 6,-2,-5, 2, &
|
-3, 4, 6,-2,-5, 2, &
|
||||||
5,-4,-3, 4,-5, 3 &
|
5,-4,-3, 4,-5, 3 &
|
||||||
],[nIPneighbor(cellType(7)),nIP(7)])
|
],shape(IPNEIGHBOR7))
|
||||||
|
|
||||||
integer, dimension(nIPneighbor(cellType(8)),nIP(8)), parameter, private :: IPneighbor8 = &
|
integer, dimension(NIPNEIGHBOR(CELLTYPE(8)),NIP(8)), parameter :: IPNEIGHBOR8 = &
|
||||||
reshape([&
|
reshape([&
|
||||||
-3,-5,-4,-2,-6,-1 &
|
-3,-5,-4,-2,-6,-1 &
|
||||||
],[nIPneighbor(cellType(8)),nIP(8)])
|
],shape(IPNEIGHBOR8))
|
||||||
|
|
||||||
integer, dimension(nIPneighbor(cellType(9)),nIP(9)), parameter, private :: IPneighbor9 = &
|
integer, dimension(NIPNEIGHBOR(CELLTYPE(9)),NIP(9)), parameter :: IPNEIGHBOR9 = &
|
||||||
reshape([&
|
reshape([&
|
||||||
2,-5, 3,-2, 5,-1, &
|
2,-5, 3,-2, 5,-1, &
|
||||||
-3, 1, 4,-2, 6,-1, &
|
-3, 1, 4,-2, 6,-1, &
|
||||||
|
@ -217,9 +219,9 @@ module element
|
||||||
-3, 5, 8,-2,-6, 2, &
|
-3, 5, 8,-2,-6, 2, &
|
||||||
8,-5,-4, 5,-6, 3, &
|
8,-5,-4, 5,-6, 3, &
|
||||||
-3, 7,-4, 6,-6, 4 &
|
-3, 7,-4, 6,-6, 4 &
|
||||||
],[nIPneighbor(cellType(9)),nIP(9)])
|
],shape(IPNEIGHBOR9))
|
||||||
|
|
||||||
integer, dimension(nIPneighbor(cellType(10)),nIP(10)), parameter, private :: IPneighbor10 = &
|
integer, dimension(NIPNEIGHBOR(CELLTYPE(10)),NIP(10)), parameter :: IPNEIGHBOR10 = &
|
||||||
reshape([&
|
reshape([&
|
||||||
2,-5, 4,-2,10,-1, &
|
2,-5, 4,-2,10,-1, &
|
||||||
3, 1, 5,-2,11,-1, &
|
3, 1, 5,-2,11,-1, &
|
||||||
|
@ -248,17 +250,17 @@ module element
|
||||||
26,-5,-4,22,-6,16, &
|
26,-5,-4,22,-6,16, &
|
||||||
27,25,-4,23,-6,17, &
|
27,25,-4,23,-6,17, &
|
||||||
-3,26,-4,24,-6,18 &
|
-3,26,-4,24,-6,18 &
|
||||||
],[nIPneighbor(cellType(10)),nIP(10)])
|
],shape(IPNEIGHBOR10))
|
||||||
|
|
||||||
|
|
||||||
integer, dimension(nNode(1),NcellNode(geomType(1))), parameter :: cellNodeParentNodeWeights1 = &
|
integer, dimension(NNODE(1),NCELLNODE(GEOMTYPE(1))), parameter :: CELLNODEPARENTNODEWEIGHTS1 = &
|
||||||
reshape([&
|
reshape([&
|
||||||
1, 0, 0, &
|
1, 0, 0, &
|
||||||
0, 1, 0, &
|
0, 1, 0, &
|
||||||
0, 0, 1 &
|
0, 0, 1 &
|
||||||
],[nNode(1),NcellNode(geomType(1))]) !< 2D 3node 1ip
|
],shape(CELLNODEPARENTNODEWEIGHTS1)) !< 2D 3node 1ip
|
||||||
|
|
||||||
integer, dimension(nNode(2),NcellNode(geomType(2))), parameter :: cellNodeParentNodeWeights2 = &
|
integer, dimension(NNODE(2),NCELLNODE(GEOMTYPE(2))), parameter :: CELLNODEPARENTNODEWEIGHTS2 = &
|
||||||
reshape([&
|
reshape([&
|
||||||
1, 0, 0, 0, 0, 0, &
|
1, 0, 0, 0, 0, 0, &
|
||||||
0, 1, 0, 0, 0, 0, &
|
0, 1, 0, 0, 0, 0, &
|
||||||
|
@ -267,9 +269,9 @@ module element
|
||||||
0, 0, 0, 0, 1, 0, &
|
0, 0, 0, 0, 1, 0, &
|
||||||
0, 0, 0, 0, 0, 1, &
|
0, 0, 0, 0, 0, 1, &
|
||||||
1, 1, 1, 2, 2, 2 &
|
1, 1, 1, 2, 2, 2 &
|
||||||
],[nNode(2),NcellNode(geomType(2))]) !< 2D 6node 3ip
|
],shape(CELLNODEPARENTNODEWEIGHTS2)) !< 2D 6node 3ip
|
||||||
|
|
||||||
integer, dimension(nNode(3),NcellNode(geomType(3))), parameter :: cellNodeParentNodeWeights3 = &
|
integer, dimension(NNODE(3),NCELLNODE(GEOMTYPE(3))), parameter :: CELLNODEPARENTNODEWEIGHTS3 = &
|
||||||
reshape([&
|
reshape([&
|
||||||
1, 0, 0, 0, &
|
1, 0, 0, 0, &
|
||||||
0, 1, 0, 0, &
|
0, 1, 0, 0, &
|
||||||
|
@ -280,9 +282,9 @@ module element
|
||||||
0, 0, 1, 1, &
|
0, 0, 1, 1, &
|
||||||
1, 0, 0, 1, &
|
1, 0, 0, 1, &
|
||||||
1, 1, 1, 1 &
|
1, 1, 1, 1 &
|
||||||
],[nNode(3),NcellNode(geomType(3))]) !< 2D 6node 3ip
|
],shape(CELLNODEPARENTNODEWEIGHTS3)) !< 2D 6node 3ip
|
||||||
|
|
||||||
integer, dimension(nNode(4),NcellNode(geomType(4))), parameter :: cellNodeParentNodeWeights4 = &
|
integer, dimension(NNODE(4),NCELLNODE(GEOMTYPE(4))), parameter :: CELLNODEPARENTNODEWEIGHTS4 = &
|
||||||
reshape([&
|
reshape([&
|
||||||
1, 0, 0, 0, 0, 0, 0, 0, &
|
1, 0, 0, 0, 0, 0, 0, 0, &
|
||||||
0, 1, 0, 0, 0, 0, 0, 0, &
|
0, 1, 0, 0, 0, 0, 0, 0, &
|
||||||
|
@ -300,9 +302,9 @@ module element
|
||||||
1, 4, 1, 1, 8, 8, 2, 2, &
|
1, 4, 1, 1, 8, 8, 2, 2, &
|
||||||
1, 1, 4, 1, 2, 8, 8, 2, &
|
1, 1, 4, 1, 2, 8, 8, 2, &
|
||||||
1, 1, 1, 4, 2, 2, 8, 8 &
|
1, 1, 1, 4, 2, 2, 8, 8 &
|
||||||
],[nNode(4),NcellNode(geomType(4))]) !< 2D 8node 9ip
|
],shape(CELLNODEPARENTNODEWEIGHTS4)) !< 2D 8node 9ip
|
||||||
|
|
||||||
integer, dimension(nNode(5),NcellNode(geomType(5))), parameter :: cellNodeParentNodeWeights5 = &
|
integer, dimension(NNODE(5),NCELLNODE(GEOMTYPE(5))), parameter :: CELLNODEPARENTNODEWEIGHTS5 = &
|
||||||
reshape([&
|
reshape([&
|
||||||
1, 0, 0, 0, 0, 0, 0, 0, &
|
1, 0, 0, 0, 0, 0, 0, 0, &
|
||||||
0, 1, 0, 0, 0, 0, 0, 0, &
|
0, 1, 0, 0, 0, 0, 0, 0, &
|
||||||
|
@ -313,17 +315,17 @@ module element
|
||||||
0, 0, 0, 0, 0, 0, 1, 0, &
|
0, 0, 0, 0, 0, 0, 1, 0, &
|
||||||
0, 0, 0, 0, 0, 0, 0, 1, &
|
0, 0, 0, 0, 0, 0, 0, 1, &
|
||||||
1, 1, 1, 1, 2, 2, 2, 2 &
|
1, 1, 1, 1, 2, 2, 2, 2 &
|
||||||
],[nNode(5),NcellNode(geomType(5))]) !< 2D 8node 4ip
|
],shape(CELLNODEPARENTNODEWEIGHTS5)) !< 2D 8node 4ip
|
||||||
|
|
||||||
integer, dimension(nNode(6),NcellNode(geomType(6))), parameter :: cellNodeParentNodeWeights6 = &
|
integer, dimension(NNODE(6),NcellNode(GEOMTYPE(6))), parameter :: CELLNODEPARENTNODEWEIGHTS6 = &
|
||||||
reshape([&
|
reshape([&
|
||||||
1, 0, 0, 0, &
|
1, 0, 0, 0, &
|
||||||
0, 1, 0, 0, &
|
0, 1, 0, 0, &
|
||||||
0, 0, 1, 0, &
|
0, 0, 1, 0, &
|
||||||
0, 0, 0, 1 &
|
0, 0, 0, 1 &
|
||||||
],[nNode(6),NcellNode(geomType(6))]) !< 3D 4node 1ip
|
],shape(CELLNODEPARENTNODEWEIGHTS6)) !< 3D 4node 1ip
|
||||||
|
|
||||||
integer, dimension(nNode(7),NcellNode(geomType(7))), parameter :: cellNodeParentNodeWeights7 = &
|
integer, dimension(NNODE(7),NCELLNODE(GEOMTYPE(7))), parameter :: CELLNODEPARENTNODEWEIGHTS7 = &
|
||||||
reshape([&
|
reshape([&
|
||||||
1, 0, 0, 0, 0, &
|
1, 0, 0, 0, 0, &
|
||||||
0, 1, 0, 0, 0, &
|
0, 1, 0, 0, 0, &
|
||||||
|
@ -340,9 +342,9 @@ module element
|
||||||
0, 1, 1, 1, 0, &
|
0, 1, 1, 1, 0, &
|
||||||
1, 0, 1, 1, 0, &
|
1, 0, 1, 1, 0, &
|
||||||
0, 0, 0, 0, 1 &
|
0, 0, 0, 0, 1 &
|
||||||
],[nNode(7),NcellNode(geomType(7))]) !< 3D 5node 4ip
|
],shape(CELLNODEPARENTNODEWEIGHTS7)) !< 3D 5node 4ip
|
||||||
|
|
||||||
integer, dimension(nNode(8),NcellNode(geomType(8))), parameter :: cellNodeParentNodeWeights8 = &
|
integer, dimension(NNODE(8),NCELLNODE(GEOMTYPE(8))), parameter :: CELLNODEPARENTNODEWEIGHTS8 = &
|
||||||
reshape([&
|
reshape([&
|
||||||
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, &
|
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, &
|
||||||
0, 1, 0, 0, 0, 0, 0, 0, 0, 0, &
|
0, 1, 0, 0, 0, 0, 0, 0, 0, 0, &
|
||||||
|
@ -359,9 +361,9 @@ module element
|
||||||
0, 1, 1, 1, 0, 2, 0, 0, 2, 2, &
|
0, 1, 1, 1, 0, 2, 0, 0, 2, 2, &
|
||||||
1, 0, 1, 1, 0, 0, 2, 2, 0, 2, &
|
1, 0, 1, 1, 0, 0, 2, 2, 0, 2, &
|
||||||
3, 3, 3, 3, 4, 4, 4, 4, 4, 4 &
|
3, 3, 3, 3, 4, 4, 4, 4, 4, 4 &
|
||||||
],[nNode(8),NcellNode(geomType(8))]) !< 3D 10node 4ip
|
],shape(CELLNODEPARENTNODEWEIGHTS8)) !< 3D 10node 4ip
|
||||||
|
|
||||||
integer, dimension(nNode(9),NcellNode(geomType(9))), parameter :: cellNodeParentNodeWeights9 = &
|
integer, dimension(NNODE(9),NCELLNODE(GEOMTYPE(9))), parameter :: CELLNODEPARENTNODEWEIGHTS9 = &
|
||||||
reshape([&
|
reshape([&
|
||||||
1, 0, 0, 0, 0, 0, &
|
1, 0, 0, 0, 0, 0, &
|
||||||
0, 1, 0, 0, 0, 0, &
|
0, 1, 0, 0, 0, 0, &
|
||||||
|
@ -384,9 +386,9 @@ module element
|
||||||
1, 0, 1, 1, 0, 1, &
|
1, 0, 1, 1, 0, 1, &
|
||||||
0, 0, 0, 1, 1, 1, &
|
0, 0, 0, 1, 1, 1, &
|
||||||
1, 1, 1, 1, 1, 1 &
|
1, 1, 1, 1, 1, 1 &
|
||||||
],[nNode(9),NcellNode(geomType(9))]) !< 3D 6node 6ip
|
],shape(CELLNODEPARENTNODEWEIGHTS9)) !< 3D 6node 6ip
|
||||||
|
|
||||||
integer, dimension(nNode(10),NcellNode(geomType(10))), parameter :: cellNodeParentNodeWeights10 = &
|
integer, dimension(NNODE(10),NCELLNODE(GEOMTYPE(10))), parameter :: CELLNODEPARENTNODEWEIGHTS10 = &
|
||||||
reshape([&
|
reshape([&
|
||||||
1, 0, 0, 0, 0, 0, 0, 0, &
|
1, 0, 0, 0, 0, 0, 0, 0, &
|
||||||
0, 1, 0, 0, 0, 0, 0, 0, &
|
0, 1, 0, 0, 0, 0, 0, 0, &
|
||||||
|
@ -396,9 +398,9 @@ module element
|
||||||
0, 0, 0, 0, 0, 1, 0, 0, &
|
0, 0, 0, 0, 0, 1, 0, 0, &
|
||||||
0, 0, 0, 0, 0, 0, 1, 0, &
|
0, 0, 0, 0, 0, 0, 1, 0, &
|
||||||
0, 0, 0, 0, 0, 0, 0, 1 &
|
0, 0, 0, 0, 0, 0, 0, 1 &
|
||||||
],[nNode(10),NcellNode(geomType(10))]) !< 3D 8node 1ip
|
],shape(CELLNODEPARENTNODEWEIGHTS10)) !< 3D 8node 1ip
|
||||||
|
|
||||||
integer, dimension(nNode(11),NcellNode(geomType(11))), parameter :: cellNodeParentNodeWeights11 = &
|
integer, dimension(NNODE(11),NCELLNODE(GEOMTYPE(11))), parameter :: CELLNODEPARENTNODEWEIGHTS11 = &
|
||||||
reshape([&
|
reshape([&
|
||||||
1, 0, 0, 0, 0, 0, 0, 0, & !
|
1, 0, 0, 0, 0, 0, 0, 0, & !
|
||||||
0, 1, 0, 0, 0, 0, 0, 0, & !
|
0, 1, 0, 0, 0, 0, 0, 0, & !
|
||||||
|
@ -427,9 +429,9 @@ module element
|
||||||
1, 0, 0, 1, 1, 0, 0, 1, & ! 25
|
1, 0, 0, 1, 1, 0, 0, 1, & ! 25
|
||||||
0, 0, 0, 0, 1, 1, 1, 1, & !
|
0, 0, 0, 0, 1, 1, 1, 1, & !
|
||||||
1, 1, 1, 1, 1, 1, 1, 1 & !
|
1, 1, 1, 1, 1, 1, 1, 1 & !
|
||||||
],[nNode(11),NcellNode(geomType(11))]) !< 3D 8node 8ip
|
],shape(CELLNODEPARENTNODEWEIGHTS11)) !< 3D 8node 8ip
|
||||||
|
|
||||||
integer, dimension(nNode(12),NcellNode(geomType(12))), parameter :: cellNodeParentNodeWeights12 = &
|
integer, dimension(NNODE(12),NCELLNODE(GEOMTYPE(12))), parameter :: CELLNODEPARENTNODEWEIGHTS12 = &
|
||||||
reshape([&
|
reshape([&
|
||||||
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, & !
|
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, & !
|
||||||
0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, & !
|
0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, & !
|
||||||
|
@ -458,9 +460,9 @@ module element
|
||||||
1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 2, 2, 0, 0, 2, & ! 25
|
1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 2, 2, 0, 0, 2, & ! 25
|
||||||
0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, & !
|
0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, & !
|
||||||
3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 & !
|
3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 & !
|
||||||
],[nNode(12),NcellNode(geomType(12))]) !< 3D 20node 8ip
|
],shape(CELLNODEPARENTNODEWEIGHTS12)) !< 3D 20node 8ip
|
||||||
|
|
||||||
integer, dimension(nNode(13),NcellNode(geomType(13))), parameter :: cellNodeParentNodeWeights13 = &
|
integer, dimension(NNODE(13),NCELLNODE(GEOMTYPE(13))), parameter :: CELLNODEPARENTNODEWEIGHTS13 = &
|
||||||
reshape([&
|
reshape([&
|
||||||
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, & !
|
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, & !
|
||||||
0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, & !
|
0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, & !
|
||||||
|
@ -526,30 +528,30 @@ module element
|
||||||
4, 8, 4, 3, 8,24, 8, 4, 12,12, 4, 4, 32,32,12,12, 12,32,12, 4, & !
|
4, 8, 4, 3, 8,24, 8, 4, 12,12, 4, 4, 32,32,12,12, 12,32,12, 4, & !
|
||||||
3, 4, 8, 4, 4, 8,24, 8, 4,12,12, 4, 12,32,32,12, 4,12,32,12, & !
|
3, 4, 8, 4, 4, 8,24, 8, 4,12,12, 4, 12,32,32,12, 4,12,32,12, & !
|
||||||
4, 3, 4, 8, 8, 4, 8,24, 4, 4,12,12, 12,12,32,32, 12, 4,12,32 & !
|
4, 3, 4, 8, 8, 4, 8,24, 4, 4,12,12, 12,12,32,32, 12, 4,12,32 & !
|
||||||
],[nNode(13),NcellNode(geomType(13))]) !< 3D 20node 27ip
|
],shape(CELLNODEPARENTNODEWEIGHTS13)) !< 3D 20node 27ip
|
||||||
|
|
||||||
|
|
||||||
integer, dimension(NCELLNODEPERCELL(CELLTYPE(1)),NIP(1)), parameter :: CELL1 = &
|
integer, dimension(NCELLNODEPERCELL(CELLTYPE(1)),NIP(1)), parameter :: CELL1 = &
|
||||||
reshape([&
|
reshape([&
|
||||||
1,2,3 &
|
1,2,3 &
|
||||||
],[NCELLNODEPERCELL(CELLTYPE(1)),NIP(1)])
|
],shape(CELL1))
|
||||||
|
|
||||||
integer, dimension(NCELLNODEPERCELL(CELLTYPE(2)),NIP(2)), parameter :: CELL2 = &
|
integer, dimension(NCELLNODEPERCELL(CELLTYPE(2)),NIP(2)), parameter :: CELL2 = &
|
||||||
reshape([&
|
reshape([&
|
||||||
1, 4, 7, 6, &
|
1, 4, 7, 6, &
|
||||||
2, 5, 7, 4, &
|
2, 5, 7, 4, &
|
||||||
3, 6, 7, 5 &
|
3, 6, 7, 5 &
|
||||||
],[NCELLNODEPERCELL(CELLTYPE(2)),NIP(2)])
|
],shape(CELL2))
|
||||||
|
|
||||||
integer, dimension(NCELLNODEPERCELL(CELLTYPE(3)),NIP(3)), parameter :: CELL3 = &
|
integer, dimension(NCELLNODEPERCELL(CELLTYPE(3)),NIP(3)), parameter :: CELL3 = &
|
||||||
reshape([&
|
reshape([&
|
||||||
1, 5, 9, 8, &
|
1, 5, 9, 8, &
|
||||||
5, 2, 6, 9, &
|
5, 2, 6, 9, &
|
||||||
8, 9, 7, 4, &
|
8, 9, 7, 4, &
|
||||||
9, 6, 3, 7 &
|
9, 6, 3, 7 &
|
||||||
],[NCELLNODEPERCELL(CELLTYPE(3)),NIP(3)])
|
],shape(CELL3))
|
||||||
|
|
||||||
integer, dimension(NCELLNODEPERCELL(CELLTYPE(4)),NIP(4)), parameter :: CELL4 = &
|
integer, dimension(NCELLNODEPERCELL(CELLTYPE(4)),NIP(4)), parameter :: CELL4 = &
|
||||||
reshape([&
|
reshape([&
|
||||||
1, 5,13,12, &
|
1, 5,13,12, &
|
||||||
5, 6,14,13, &
|
5, 6,14,13, &
|
||||||
|
@ -560,22 +562,22 @@ module element
|
||||||
11,16,10, 4, &
|
11,16,10, 4, &
|
||||||
16,15, 9,10, &
|
16,15, 9,10, &
|
||||||
15, 8, 3, 9 &
|
15, 8, 3, 9 &
|
||||||
],[NCELLNODEPERCELL(CELLTYPE(4)),NIP(4)])
|
],shape(CELL4))
|
||||||
|
|
||||||
integer, dimension(NCELLNODEPERCELL(CELLTYPE(5)),NIP(5)), parameter :: CELL5 = &
|
integer, dimension(NCELLNODEPERCELL(CELLTYPE(5)),NIP(5)), parameter :: CELL5 = &
|
||||||
reshape([&
|
reshape([&
|
||||||
1, 2, 3, 4 &
|
1, 2, 3, 4 &
|
||||||
],[NCELLNODEPERCELL(CELLTYPE(5)),NIP(5)])
|
],shape(CELL5))
|
||||||
|
|
||||||
integer, dimension(NCELLNODEPERCELL(CELLTYPE(6)),NIP(6)), parameter :: CELL6 = &
|
integer, dimension(NCELLNODEPERCELL(CELLTYPE(6)),NIP(6)), parameter :: CELL6 = &
|
||||||
reshape([&
|
reshape([&
|
||||||
1, 5,11, 7, 8,12,15,14, &
|
1, 5,11, 7, 8,12,15,14, &
|
||||||
5, 2, 6,11,12, 9,13,15, &
|
5, 2, 6,11,12, 9,13,15, &
|
||||||
7,11, 6, 3,14,15,13,10, &
|
7,11, 6, 3,14,15,13,10, &
|
||||||
8,12,15, 4, 4, 9,13,10 &
|
8,12,15, 4, 4, 9,13,10 &
|
||||||
],[NCELLNODEPERCELL(CELLTYPE(6)),NIP(6)])
|
],shape(CELL6))
|
||||||
|
|
||||||
integer, dimension(NCELLNODEPERCELL(CELLTYPE(7)),NIP(7)), parameter :: CELL7 = &
|
integer, dimension(NCELLNODEPERCELL(CELLTYPE(7)),NIP(7)), parameter :: CELL7 = &
|
||||||
reshape([&
|
reshape([&
|
||||||
1, 7,16, 9,10,17,21,19, &
|
1, 7,16, 9,10,17,21,19, &
|
||||||
7, 2, 8,16,17,11,18,21, &
|
7, 2, 8,16,17,11,18,21, &
|
||||||
|
@ -583,14 +585,14 @@ module element
|
||||||
10,17,21,19, 4,13,20,15, &
|
10,17,21,19, 4,13,20,15, &
|
||||||
17,11,18,21,13, 5,14,20, &
|
17,11,18,21,13, 5,14,20, &
|
||||||
19,21,18,12,15,20,14, 6 &
|
19,21,18,12,15,20,14, 6 &
|
||||||
],[NCELLNODEPERCELL(CELLTYPE(7)),NIP(7)])
|
],shape(CELL7))
|
||||||
|
|
||||||
integer, dimension(NCELLNODEPERCELL(CELLTYPE(8)),NIP(8)), parameter :: CELL8 = &
|
integer, dimension(NCELLNODEPERCELL(CELLTYPE(8)),NIP(8)), parameter :: CELL8 = &
|
||||||
reshape([&
|
reshape([&
|
||||||
1, 2, 3, 4, 5, 6, 7, 8 &
|
1, 2, 3, 4, 5, 6, 7, 8 &
|
||||||
],[NCELLNODEPERCELL(CELLTYPE(8)),NIP(8)])
|
],shape(CELL8))
|
||||||
|
|
||||||
integer, dimension(NCELLNODEPERCELL(CELLTYPE(9)),NIP(9)), parameter :: CELL9 = &
|
integer, dimension(NCELLNODEPERCELL(CELLTYPE(9)),NIP(9)), parameter :: CELL9 = &
|
||||||
reshape([&
|
reshape([&
|
||||||
1, 9,21,12,13,22,27,25, &
|
1, 9,21,12,13,22,27,25, &
|
||||||
9, 2,10,21,22,14,23,27, &
|
9, 2,10,21,22,14,23,27, &
|
||||||
|
@ -600,7 +602,7 @@ module element
|
||||||
22,14,23,27,17, 6,18,26, &
|
22,14,23,27,17, 6,18,26, &
|
||||||
25,27,24,16,20,26,19, 8, &
|
25,27,24,16,20,26,19, 8, &
|
||||||
27,23,15,24,26,18, 7,19 &
|
27,23,15,24,26,18, 7,19 &
|
||||||
],[NCELLNODEPERCELL(CELLTYPE(9)),NIP(9)])
|
],shape(CELL9))
|
||||||
|
|
||||||
integer, dimension(NCELLNODEPERCELL(CELLTYPE(10)),NIP(10)), parameter :: CELL10 = &
|
integer, dimension(NCELLNODEPERCELL(CELLTYPE(10)),NIP(10)), parameter :: CELL10 = &
|
||||||
reshape([&
|
reshape([&
|
||||||
|
@ -631,7 +633,7 @@ module element
|
||||||
51,64,50,24,31,56,30, 8, &
|
51,64,50,24,31,56,30, 8, &
|
||||||
64,63,49,50,56,55,29,30, &
|
64,63,49,50,56,55,29,30, &
|
||||||
63,48,23,49,55,28, 7,29 &
|
63,48,23,49,55,28, 7,29 &
|
||||||
],[NCELLNODEPERCELL(CELLTYPE(10)),NIP(10)])
|
],shape(CELL10))
|
||||||
|
|
||||||
|
|
||||||
integer, dimension(NCELLNODEPERCELLFACE(1),NIPNEIGHBOR(1)), parameter :: CELLFACE1 = &
|
integer, dimension(NCELLNODEPERCELLFACE(1),NIPNEIGHBOR(1)), parameter :: CELLFACE1 = &
|
||||||
|
@ -639,7 +641,7 @@ module element
|
||||||
2,3, &
|
2,3, &
|
||||||
3,1, &
|
3,1, &
|
||||||
1,2 &
|
1,2 &
|
||||||
],[NCELLNODEPERCELLFACE(1),NIPNEIGHBOR(1)]) !< 2D 3node, VTK_TRIANGLE (5)
|
],shape(CELLFACE1)) !< 2D 3node, VTK_TRIANGLE (5)
|
||||||
|
|
||||||
integer, dimension(NCELLNODEPERCELLFACE(2),NIPNEIGHBOR(2)), parameter :: CELLFACE2 = &
|
integer, dimension(NCELLNODEPERCELLFACE(2),NIPNEIGHBOR(2)), parameter :: CELLFACE2 = &
|
||||||
reshape([&
|
reshape([&
|
||||||
|
@ -647,7 +649,7 @@ module element
|
||||||
4,1, &
|
4,1, &
|
||||||
3,4, &
|
3,4, &
|
||||||
1,2 &
|
1,2 &
|
||||||
],[NCELLNODEPERCELLFACE(2),NIPNEIGHBOR(2)]) !< 2D 4node, VTK_QUAD (9)
|
],shape(CELLFACE2)) !< 2D 4node, VTK_QUAD (9)
|
||||||
|
|
||||||
integer, dimension(NCELLNODEPERCELLFACE(3),NIPNEIGHBOR(3)), parameter :: CELLFACE3 = &
|
integer, dimension(NCELLNODEPERCELLFACE(3),NIPNEIGHBOR(3)), parameter :: CELLFACE3 = &
|
||||||
reshape([&
|
reshape([&
|
||||||
|
@ -655,7 +657,7 @@ module element
|
||||||
1,2,4, &
|
1,2,4, &
|
||||||
2,3,4, &
|
2,3,4, &
|
||||||
1,4,3 &
|
1,4,3 &
|
||||||
],[NCELLNODEPERCELLFACE(3),NIPNEIGHBOR(3)]) !< 3D 4node, VTK_TETRA (10)
|
],shape(CELLFACE3)) !< 3D 4node, VTK_TETRA (10)
|
||||||
|
|
||||||
integer, dimension(NCELLNODEPERCELLFACE(4),NIPNEIGHBOR(4)), parameter :: CELLFACE4 = &
|
integer, dimension(NCELLNODEPERCELLFACE(4),NIPNEIGHBOR(4)), parameter :: CELLFACE4 = &
|
||||||
reshape([&
|
reshape([&
|
||||||
|
@ -665,114 +667,124 @@ module element
|
||||||
1,2,6,5, &
|
1,2,6,5, &
|
||||||
5,6,7,8, &
|
5,6,7,8, &
|
||||||
1,4,3,2 &
|
1,4,3,2 &
|
||||||
],[NCELLNODEPERCELLFACE(4),NIPNEIGHBOR(4)]) !< 3D 8node, VTK_HEXAHEDRON (12)
|
],shape(CELLFACE4)) !< 3D 8node, VTK_HEXAHEDRON (12)
|
||||||
|
|
||||||
|
|
||||||
contains
|
contains
|
||||||
|
|
||||||
|
|
||||||
|
!---------------------------------------------------------------------------------------------------
|
||||||
|
!> define properties of an element
|
||||||
|
!---------------------------------------------------------------------------------------------------
|
||||||
subroutine tElement_init(self,elemType)
|
subroutine tElement_init(self,elemType)
|
||||||
|
|
||||||
class(tElement) :: self
|
class(tElement) :: self
|
||||||
integer, intent(in) :: elemType
|
integer, intent(in) :: elemType
|
||||||
self%elemType = elemType
|
|
||||||
|
|
||||||
self%Nnodes = Nnode (self%elemType)
|
|
||||||
self%geomType = geomType (self%elemType)
|
|
||||||
select case (self%elemType)
|
|
||||||
case(1)
|
|
||||||
self%cellNodeParentNodeWeights = cellNodeParentNodeWeights1
|
|
||||||
case(2)
|
|
||||||
self%cellNodeParentNodeWeights = cellNodeParentNodeWeights2
|
|
||||||
case(3)
|
|
||||||
self%cellNodeParentNodeWeights = cellNodeParentNodeWeights3
|
|
||||||
case(4)
|
|
||||||
self%cellNodeParentNodeWeights = cellNodeParentNodeWeights4
|
|
||||||
case(5)
|
|
||||||
self%cellNodeParentNodeWeights = cellNodeParentNodeWeights5
|
|
||||||
case(6)
|
|
||||||
self%cellNodeParentNodeWeights = cellNodeParentNodeWeights6
|
|
||||||
case(7)
|
|
||||||
self%cellNodeParentNodeWeights = cellNodeParentNodeWeights7
|
|
||||||
case(8)
|
|
||||||
self%cellNodeParentNodeWeights = cellNodeParentNodeWeights8
|
|
||||||
case(9)
|
|
||||||
self%cellNodeParentNodeWeights = cellNodeParentNodeWeights9
|
|
||||||
case(10)
|
|
||||||
self%cellNodeParentNodeWeights = cellNodeParentNodeWeights10
|
|
||||||
case(11)
|
|
||||||
self%cellNodeParentNodeWeights = cellNodeParentNodeWeights11
|
|
||||||
case(12)
|
|
||||||
self%cellNodeParentNodeWeights = cellNodeParentNodeWeights12
|
|
||||||
case(13)
|
|
||||||
self%cellNodeParentNodeWeights = cellNodeParentNodeWeights13
|
|
||||||
case default
|
|
||||||
call IO_error(0,ext_msg='invalid element type')
|
|
||||||
end select
|
|
||||||
|
|
||||||
|
|
||||||
self%NcellNodes = NcellNode (self%geomType)
|
|
||||||
self%nIPs = nIP (self%geomType)
|
|
||||||
self%cellType = cellType (self%geomType)
|
|
||||||
|
|
||||||
select case (self%geomType)
|
|
||||||
case(1)
|
|
||||||
self%IPneighbor = IPneighbor1
|
|
||||||
self%cell = CELL1
|
|
||||||
case(2)
|
|
||||||
self%IPneighbor = IPneighbor2
|
|
||||||
self%cell = CELL2
|
|
||||||
case(3)
|
|
||||||
self%IPneighbor = IPneighbor3
|
|
||||||
self%cell = CELL3
|
|
||||||
case(4)
|
|
||||||
self%IPneighbor = IPneighbor4
|
|
||||||
self%cell = CELL4
|
|
||||||
case(5)
|
|
||||||
self%IPneighbor = IPneighbor5
|
|
||||||
self%cell = CELL5
|
|
||||||
case(6)
|
|
||||||
self%IPneighbor = IPneighbor6
|
|
||||||
self%cell = CELL6
|
|
||||||
case(7)
|
|
||||||
self%IPneighbor = IPneighbor7
|
|
||||||
self%cell = CELL7
|
|
||||||
case(8)
|
|
||||||
self%IPneighbor = IPneighbor8
|
|
||||||
self%cell = CELL8
|
|
||||||
case(9)
|
|
||||||
self%IPneighbor = IPneighbor9
|
|
||||||
self%cell = CELL9
|
|
||||||
case(10)
|
|
||||||
self%IPneighbor = IPneighbor10
|
|
||||||
self%cell = CELL10
|
|
||||||
end select
|
|
||||||
|
|
||||||
self%NcellnodesPerCell = NCELLNODEPERCELL(self%cellType)
|
|
||||||
|
|
||||||
select case(self%cellType)
|
self%elemType = elemType
|
||||||
case(1)
|
|
||||||
self%cellFace = CELLFACE1
|
self%Nnodes = NNODE (self%elemType)
|
||||||
case(2)
|
self%geomType = GEOMTYPE(self%elemType)
|
||||||
self%cellFace = CELLFACE2
|
|
||||||
case(3)
|
select case (self%elemType)
|
||||||
self%cellFace = CELLFACE3
|
case(1)
|
||||||
case(4)
|
self%cellNodeParentNodeWeights = CELLNODEPARENTNODEWEIGHTS1
|
||||||
self%cellFace = CELLFACE4
|
case(2)
|
||||||
end select
|
self%cellNodeParentNodeWeights = CELLNODEPARENTNODEWEIGHTS2
|
||||||
|
case(3)
|
||||||
self%nIPneighbors = size(self%IPneighbor,1)
|
self%cellNodeParentNodeWeights = CELLNODEPARENTNODEWEIGHTS3
|
||||||
|
case(4)
|
||||||
write(6,'(/,a)') ' <<<+- element_init -+>>>'
|
self%cellNodeParentNodeWeights = CELLNODEPARENTNODEWEIGHTS4
|
||||||
|
case(5)
|
||||||
write(6,*) ' element type: ',self%elemType
|
self%cellNodeParentNodeWeights = CELLNODEPARENTNODEWEIGHTS5
|
||||||
write(6,*) ' geom type: ',self%geomType
|
case(6)
|
||||||
write(6,*) ' cell type: ',self%cellType
|
self%cellNodeParentNodeWeights = CELLNODEPARENTNODEWEIGHTS6
|
||||||
write(6,*) ' # node: ',self%Nnodes
|
case(7)
|
||||||
write(6,*) ' # IP: ',self%nIPs
|
self%cellNodeParentNodeWeights = CELLNODEPARENTNODEWEIGHTS7
|
||||||
write(6,*) ' # cellnode: ',self%Ncellnodes
|
case(8)
|
||||||
write(6,*) ' # cellnode/cell: ',self%NcellnodesPerCell
|
self%cellNodeParentNodeWeights = CELLNODEPARENTNODEWEIGHTS8
|
||||||
write(6,*) ' # IP neighbor: ',self%nIPneighbors
|
case(9)
|
||||||
|
self%cellNodeParentNodeWeights = CELLNODEPARENTNODEWEIGHTS9
|
||||||
|
case(10)
|
||||||
|
self%cellNodeParentNodeWeights = CELLNODEPARENTNODEWEIGHTS10
|
||||||
|
case(11)
|
||||||
|
self%cellNodeParentNodeWeights = CELLNODEPARENTNODEWEIGHTS11
|
||||||
|
case(12)
|
||||||
|
self%cellNodeParentNodeWeights = CELLNODEPARENTNODEWEIGHTS12
|
||||||
|
case(13)
|
||||||
|
self%cellNodeParentNodeWeights = CELLNODEPARENTNODEWEIGHTS13
|
||||||
|
case default
|
||||||
|
call IO_error(0,ext_msg='invalid element type')
|
||||||
|
end select
|
||||||
|
|
||||||
|
|
||||||
|
self%NcellNodes = NCELLNODE(self%geomType)
|
||||||
|
self%nIPs = NIP (self%geomType)
|
||||||
|
self%cellType = CELLTYPE (self%geomType)
|
||||||
|
|
||||||
|
select case (self%geomType)
|
||||||
|
case(1)
|
||||||
|
self%IPneighbor = IPNEIGHBOR1
|
||||||
|
self%cell = CELL1
|
||||||
|
case(2)
|
||||||
|
self%IPneighbor = IPNEIGHBOR2
|
||||||
|
self%cell = CELL2
|
||||||
|
case(3)
|
||||||
|
self%IPneighbor = IPNEIGHBOR3
|
||||||
|
self%cell = CELL3
|
||||||
|
case(4)
|
||||||
|
self%IPneighbor = IPNEIGHBOR4
|
||||||
|
self%cell = CELL4
|
||||||
|
case(5)
|
||||||
|
self%IPneighbor = IPNEIGHBOR5
|
||||||
|
self%cell = CELL5
|
||||||
|
case(6)
|
||||||
|
self%IPneighbor = IPNEIGHBOR6
|
||||||
|
self%cell = CELL6
|
||||||
|
case(7)
|
||||||
|
self%IPneighbor = IPNEIGHBOR7
|
||||||
|
self%cell = CELL7
|
||||||
|
case(8)
|
||||||
|
self%IPneighbor = IPNEIGHBOR8
|
||||||
|
self%cell = CELL8
|
||||||
|
case(9)
|
||||||
|
self%IPneighbor = IPNEIGHBOR9
|
||||||
|
self%cell = CELL9
|
||||||
|
case(10)
|
||||||
|
self%IPneighbor = IPNEIGHBOR10
|
||||||
|
self%cell = CELL10
|
||||||
|
end select
|
||||||
|
|
||||||
|
self%NcellnodesPerCell = NCELLNODEPERCELL(self%cellType)
|
||||||
|
|
||||||
|
select case(self%cellType)
|
||||||
|
case(1)
|
||||||
|
self%cellFace = CELLFACE1
|
||||||
|
self%vtkType = 'TRIANGLE'
|
||||||
|
case(2)
|
||||||
|
self%cellFace = CELLFACE2
|
||||||
|
self%vtkType = 'QUAD'
|
||||||
|
case(3)
|
||||||
|
self%cellFace = CELLFACE3
|
||||||
|
self%vtkType = 'TETRA'
|
||||||
|
case(4)
|
||||||
|
self%cellFace = CELLFACE4
|
||||||
|
self%vtkType = 'HEXAHEDRON'
|
||||||
|
end select
|
||||||
|
|
||||||
|
self%nIPneighbors = size(self%IPneighbor,1)
|
||||||
|
|
||||||
|
write(6,'(/,a)') ' <<<+- element_init -+>>>'; flush(6)
|
||||||
|
|
||||||
|
write(6,*) ' element type: ',self%elemType
|
||||||
|
write(6,*) ' geom type: ',self%geomType
|
||||||
|
write(6,*) ' cell type: ',self%cellType
|
||||||
|
write(6,*) ' # node: ',self%Nnodes
|
||||||
|
write(6,*) ' # IP: ',self%nIPs
|
||||||
|
write(6,*) ' # cellnode: ',self%Ncellnodes
|
||||||
|
write(6,*) ' # cellnode/cell: ',self%NcellnodesPerCell
|
||||||
|
write(6,*) ' # IP neighbor: ',self%nIPneighbors
|
||||||
|
|
||||||
end subroutine tElement_init
|
end subroutine tElement_init
|
||||||
|
|
||||||
end module element
|
end module element
|
||||||
|
|
Loading…
Reference in New Issue