function better suited for single return value
use correct shapes (1D list) for return value
This commit is contained in:
parent
b2409d6998
commit
f2be94ed5f
|
@ -8,20 +8,21 @@ module FEM_Zoo
|
||||||
implicit none
|
implicit none
|
||||||
private
|
private
|
||||||
|
|
||||||
integer, parameter, public:: &
|
integer, parameter :: &
|
||||||
maxOrder = 5 !< current max interpolation set at cubic (intended to be arbitrary)
|
maxOrder = 5 !< current max interpolation set at cubic (intended to be arbitrary)
|
||||||
real(pReal), dimension(2,3), private, parameter :: &
|
real(pReal), dimension(2,3), parameter :: &
|
||||||
triangle = reshape([-1.0_pReal, -1.0_pReal, &
|
triangle = reshape([-1.0_pReal, -1.0_pReal, &
|
||||||
1.0_pReal, -1.0_pReal, &
|
1.0_pReal, -1.0_pReal, &
|
||||||
-1.0_pReal, 1.0_pReal], shape=[2,3])
|
-1.0_pReal, 1.0_pReal], shape=[2,3])
|
||||||
real(pReal), dimension(3,4), private, parameter :: &
|
real(pReal), dimension(3,4), parameter :: &
|
||||||
tetrahedron = reshape([-1.0_pReal, -1.0_pReal, -1.0_pReal, &
|
tetrahedron = reshape([-1.0_pReal, -1.0_pReal, -1.0_pReal, &
|
||||||
1.0_pReal, -1.0_pReal, -1.0_pReal, &
|
1.0_pReal, -1.0_pReal, -1.0_pReal, &
|
||||||
-1.0_pReal, 1.0_pReal, -1.0_pReal, &
|
-1.0_pReal, 1.0_pReal, -1.0_pReal, &
|
||||||
-1.0_pReal, -1.0_pReal, 1.0_pReal], shape=[3,4])
|
-1.0_pReal, -1.0_pReal, 1.0_pReal], shape=[3,4])
|
||||||
integer, dimension(3,maxOrder), public, protected :: &
|
|
||||||
|
integer, dimension(1:3,maxOrder), public, protected :: &
|
||||||
FEM_Zoo_nQuadrature !< number of quadrature points for a given spatial dimension(1-3) and interpolation order(1-maxOrder)
|
FEM_Zoo_nQuadrature !< number of quadrature points for a given spatial dimension(1-3) and interpolation order(1-maxOrder)
|
||||||
type(group_float), dimension(3,maxOrder), public, protected :: &
|
type(group_float), dimension(1:3,maxOrder), public, protected :: &
|
||||||
FEM_Zoo_QuadratureWeights, & !< quadrature weights for each quadrature rule
|
FEM_Zoo_QuadratureWeights, & !< quadrature weights for each quadrature rule
|
||||||
FEM_Zoo_QuadraturePoints !< quadrature point coordinates (in simplical system) for each quadrature rule
|
FEM_Zoo_QuadraturePoints !< quadrature point coordinates (in simplical system) for each quadrature rule
|
||||||
|
|
||||||
|
@ -44,8 +45,7 @@ subroutine FEM_Zoo_init
|
||||||
allocate(FEM_Zoo_QuadratureWeights(2,1)%p(1))
|
allocate(FEM_Zoo_QuadratureWeights(2,1)%p(1))
|
||||||
allocate(FEM_Zoo_QuadraturePoints (2,1)%p(2))
|
allocate(FEM_Zoo_QuadraturePoints (2,1)%p(2))
|
||||||
FEM_Zoo_QuadratureWeights(2,1)%p(1) = 1.0_pReal
|
FEM_Zoo_QuadratureWeights(2,1)%p(1) = 1.0_pReal
|
||||||
call FEM_Zoo_permutationStar3([1.0_pReal/3.0_pReal], &
|
FEM_Zoo_QuadraturePoints (2,1)%p(1:2) = FEM_Zoo_permutationStar3([1.0_pReal/3.0_pReal])
|
||||||
FEM_Zoo_QuadraturePoints(2,1)%p(1:2))
|
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
! 2D quadratic
|
! 2D quadratic
|
||||||
|
@ -53,8 +53,7 @@ subroutine FEM_Zoo_init
|
||||||
allocate(FEM_Zoo_QuadratureWeights(2,2)%p(3))
|
allocate(FEM_Zoo_QuadratureWeights(2,2)%p(3))
|
||||||
allocate(FEM_Zoo_QuadraturePoints (2,2)%p(6))
|
allocate(FEM_Zoo_QuadraturePoints (2,2)%p(6))
|
||||||
FEM_Zoo_QuadratureWeights(2,2)%p(1:3) = 1.0_pReal/3.0_pReal
|
FEM_Zoo_QuadratureWeights(2,2)%p(1:3) = 1.0_pReal/3.0_pReal
|
||||||
call FEM_Zoo_permutationStar21([1.0_pReal/6.0_pReal], &
|
FEM_Zoo_QuadraturePoints (2,2)%p(1:6) = FEM_Zoo_permutationStar21([1.0_pReal/6.0_pReal])
|
||||||
FEM_Zoo_QuadraturePoints(2,2)%p(1:6))
|
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
! 2D cubic
|
! 2D cubic
|
||||||
|
@ -62,11 +61,9 @@ subroutine FEM_Zoo_init
|
||||||
allocate(FEM_Zoo_QuadratureWeights(2,3)%p(6 ))
|
allocate(FEM_Zoo_QuadratureWeights(2,3)%p(6 ))
|
||||||
allocate(FEM_Zoo_QuadraturePoints (2,3)%p(12))
|
allocate(FEM_Zoo_QuadraturePoints (2,3)%p(12))
|
||||||
FEM_Zoo_QuadratureWeights(2,3)%p(1:3) = 0.22338158967801146570_pReal
|
FEM_Zoo_QuadratureWeights(2,3)%p(1:3) = 0.22338158967801146570_pReal
|
||||||
call FEM_Zoo_permutationStar21([0.44594849091596488632_pReal], &
|
FEM_Zoo_QuadraturePoints (2,3)%p(1:6) = FEM_Zoo_permutationStar21([0.44594849091596488632_pReal])
|
||||||
FEM_Zoo_QuadraturePoints(2,3)%p(1:6))
|
|
||||||
FEM_Zoo_QuadratureWeights(2,3)%p(4:6) = 0.10995174365532186764_pReal
|
FEM_Zoo_QuadratureWeights(2,3)%p(4:6) = 0.10995174365532186764_pReal
|
||||||
call FEM_Zoo_permutationStar21([0.091576213509770743460_pReal], &
|
FEM_Zoo_QuadraturePoints (2,3)%p(7:12)= FEM_Zoo_permutationStar21([0.091576213509770743460_pReal])
|
||||||
FEM_Zoo_QuadraturePoints(2,3)%p(7:12))
|
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
! 2D quartic
|
! 2D quartic
|
||||||
|
@ -74,14 +71,11 @@ subroutine FEM_Zoo_init
|
||||||
allocate(FEM_Zoo_QuadratureWeights(2,4)%p(12))
|
allocate(FEM_Zoo_QuadratureWeights(2,4)%p(12))
|
||||||
allocate(FEM_Zoo_QuadraturePoints (2,4)%p(24))
|
allocate(FEM_Zoo_QuadraturePoints (2,4)%p(24))
|
||||||
FEM_Zoo_QuadratureWeights(2,4)%p(1:3) = 0.11678627572638_pReal
|
FEM_Zoo_QuadratureWeights(2,4)%p(1:3) = 0.11678627572638_pReal
|
||||||
call FEM_Zoo_permutationStar21([0.24928674517091_pReal], &
|
FEM_Zoo_QuadraturePoints (2,4)%p(1:6) = FEM_Zoo_permutationStar21([0.24928674517091_pReal])
|
||||||
FEM_Zoo_QuadraturePoints(2,4)%p(1:6))
|
|
||||||
FEM_Zoo_QuadratureWeights(2,4)%p(4:6) = 0.05084490637021_pReal
|
FEM_Zoo_QuadratureWeights(2,4)%p(4:6) = 0.05084490637021_pReal
|
||||||
call FEM_Zoo_permutationStar21([0.06308901449150_pReal], &
|
FEM_Zoo_QuadraturePoints (2,4)%p(7:12) = FEM_Zoo_permutationStar21([0.06308901449150_pReal])
|
||||||
FEM_Zoo_QuadraturePoints(2,4)%p(7:12))
|
|
||||||
FEM_Zoo_QuadratureWeights(2,4)%p(7:12) = 0.08285107561837_pReal
|
FEM_Zoo_QuadratureWeights(2,4)%p(7:12) = 0.08285107561837_pReal
|
||||||
call FEM_Zoo_permutationStar111([0.31035245103378_pReal, 0.63650249912140_pReal], &
|
FEM_Zoo_QuadraturePoints (2,4)%p(13:24)= FEM_Zoo_permutationStar111([0.31035245103378_pReal, 0.63650249912140_pReal])
|
||||||
FEM_Zoo_QuadraturePoints(2,4)%p(13:24))
|
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
! 2D order 5
|
! 2D order 5
|
||||||
|
@ -89,20 +83,15 @@ subroutine FEM_Zoo_init
|
||||||
allocate(FEM_Zoo_QuadratureWeights(2,5)%p(16))
|
allocate(FEM_Zoo_QuadratureWeights(2,5)%p(16))
|
||||||
allocate(FEM_Zoo_QuadraturePoints (2,5)%p(32))
|
allocate(FEM_Zoo_QuadraturePoints (2,5)%p(32))
|
||||||
FEM_Zoo_QuadratureWeights(2,5)%p(1 ) = 0.14431560767779_pReal
|
FEM_Zoo_QuadratureWeights(2,5)%p(1 ) = 0.14431560767779_pReal
|
||||||
call FEM_Zoo_permutationStar3([0.33333333333333_pReal], &
|
FEM_Zoo_QuadraturePoints (2,5)%p(1:2) = FEM_Zoo_permutationStar3([0.33333333333333_pReal])
|
||||||
FEM_Zoo_QuadraturePoints(2,5)%p(1:2))
|
|
||||||
FEM_Zoo_QuadratureWeights(2,5)%p(2:4) = 0.09509163426728_pReal
|
FEM_Zoo_QuadratureWeights(2,5)%p(2:4) = 0.09509163426728_pReal
|
||||||
call FEM_Zoo_permutationStar21([0.45929258829272_pReal], &
|
FEM_Zoo_QuadraturePoints (2,5)%p(3:8) = FEM_Zoo_permutationStar21([0.45929258829272_pReal])
|
||||||
FEM_Zoo_QuadraturePoints(2,5)%p(3:8))
|
|
||||||
FEM_Zoo_QuadratureWeights(2,5)%p(5:7) = 0.10321737053472_pReal
|
FEM_Zoo_QuadratureWeights(2,5)%p(5:7) = 0.10321737053472_pReal
|
||||||
call FEM_Zoo_permutationStar21([0.17056930775176_pReal], &
|
FEM_Zoo_QuadraturePoints (2,5)%p(9:14) = FEM_Zoo_permutationStar21([0.17056930775176_pReal])
|
||||||
FEM_Zoo_QuadraturePoints(2,5)%p(9:14))
|
|
||||||
FEM_Zoo_QuadratureWeights(2,5)%p(8:10) = 0.03245849762320_pReal
|
FEM_Zoo_QuadratureWeights(2,5)%p(8:10) = 0.03245849762320_pReal
|
||||||
call FEM_Zoo_permutationStar21([0.05054722831703_pReal], &
|
FEM_Zoo_QuadraturePoints (2,5)%p(15:20)= FEM_Zoo_permutationStar21([0.05054722831703_pReal])
|
||||||
FEM_Zoo_QuadraturePoints(2,5)%p(15:20))
|
FEM_Zoo_QuadratureWeights(2,5)%p(11:16)= 0.02723031417443_pReal
|
||||||
FEM_Zoo_QuadratureWeights(2,5)%p(11:16) = 0.02723031417443_pReal
|
FEM_Zoo_QuadraturePoints (2,5)%p(21:32)=FEM_Zoo_permutationStar111([0.26311282963464_pReal, 0.72849239295540_pReal])
|
||||||
call FEM_Zoo_permutationStar111([0.26311282963464_pReal, 0.72849239295540_pReal], &
|
|
||||||
FEM_Zoo_QuadraturePoints(2,5)%p(21:32))
|
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
! 3D linear
|
! 3D linear
|
||||||
|
@ -110,8 +99,7 @@ subroutine FEM_Zoo_init
|
||||||
allocate(FEM_Zoo_QuadratureWeights(3,1)%p(1))
|
allocate(FEM_Zoo_QuadratureWeights(3,1)%p(1))
|
||||||
allocate(FEM_Zoo_QuadraturePoints (3,1)%p(3))
|
allocate(FEM_Zoo_QuadraturePoints (3,1)%p(3))
|
||||||
FEM_Zoo_QuadratureWeights(3,1)%p(1) = 1.0_pReal
|
FEM_Zoo_QuadratureWeights(3,1)%p(1) = 1.0_pReal
|
||||||
call FEM_Zoo_permutationStar4([0.25_pReal], &
|
FEM_Zoo_QuadraturePoints (3,1)%p(1:3)= FEM_Zoo_permutationStar4([0.25_pReal])
|
||||||
FEM_Zoo_QuadraturePoints(3,1)%p(1:3))
|
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
! 3D quadratic
|
! 3D quadratic
|
||||||
|
@ -119,8 +107,7 @@ subroutine FEM_Zoo_init
|
||||||
allocate(FEM_Zoo_QuadratureWeights(3,2)%p(4 ))
|
allocate(FEM_Zoo_QuadratureWeights(3,2)%p(4 ))
|
||||||
allocate(FEM_Zoo_QuadraturePoints (3,2)%p(12))
|
allocate(FEM_Zoo_QuadraturePoints (3,2)%p(12))
|
||||||
FEM_Zoo_QuadratureWeights(3,2)%p(1:4) = 0.25_pReal
|
FEM_Zoo_QuadratureWeights(3,2)%p(1:4) = 0.25_pReal
|
||||||
call FEM_Zoo_permutationStar31([0.13819660112501051518_pReal], &
|
FEM_Zoo_QuadraturePoints (3,2)%p(1:12)= FEM_Zoo_permutationStar31([0.13819660112501051518_pReal])
|
||||||
FEM_Zoo_QuadraturePoints(3,2)%p(1:12))
|
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
! 3D cubic
|
! 3D cubic
|
||||||
|
@ -128,14 +115,11 @@ subroutine FEM_Zoo_init
|
||||||
allocate(FEM_Zoo_QuadratureWeights(3,3)%p(14))
|
allocate(FEM_Zoo_QuadratureWeights(3,3)%p(14))
|
||||||
allocate(FEM_Zoo_QuadraturePoints (3,3)%p(42))
|
allocate(FEM_Zoo_QuadraturePoints (3,3)%p(42))
|
||||||
FEM_Zoo_QuadratureWeights(3,3)%p(1:4) = 0.073493043116361949544_pReal
|
FEM_Zoo_QuadratureWeights(3,3)%p(1:4) = 0.073493043116361949544_pReal
|
||||||
call FEM_Zoo_permutationStar31([0.092735250310891226402_pReal], &
|
FEM_Zoo_QuadraturePoints (3,3)%p(1:12) = FEM_Zoo_permutationStar31([0.092735250310891226402_pReal])
|
||||||
FEM_Zoo_QuadraturePoints(3,3)%p(1:12))
|
|
||||||
FEM_Zoo_QuadratureWeights(3,3)%p(5:8) = 0.11268792571801585080_pReal
|
FEM_Zoo_QuadratureWeights(3,3)%p(5:8) = 0.11268792571801585080_pReal
|
||||||
call FEM_Zoo_permutationStar31([0.31088591926330060980_pReal], &
|
FEM_Zoo_QuadraturePoints (3,3)%p(13:24)= FEM_Zoo_permutationStar31([0.31088591926330060980_pReal])
|
||||||
FEM_Zoo_QuadraturePoints(3,3)%p(13:24))
|
|
||||||
FEM_Zoo_QuadratureWeights(3,3)%p(9:14) = 0.042546020777081466438_pReal
|
FEM_Zoo_QuadratureWeights(3,3)%p(9:14) = 0.042546020777081466438_pReal
|
||||||
call FEM_Zoo_permutationStar22([0.045503704125649649492_pReal], &
|
FEM_Zoo_QuadraturePoints (3,3)%p(25:42)= FEM_Zoo_permutationStar22([0.045503704125649649492_pReal])
|
||||||
FEM_Zoo_QuadraturePoints(3,3)%p(25:42))
|
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
! 3D quartic
|
! 3D quartic
|
||||||
|
@ -143,43 +127,33 @@ subroutine FEM_Zoo_init
|
||||||
allocate(FEM_Zoo_QuadratureWeights(3,4)%p(35))
|
allocate(FEM_Zoo_QuadratureWeights(3,4)%p(35))
|
||||||
allocate(FEM_Zoo_QuadraturePoints (3,4)%p(105))
|
allocate(FEM_Zoo_QuadraturePoints (3,4)%p(105))
|
||||||
FEM_Zoo_QuadratureWeights(3,4)%p(1:4) = 0.0021900463965388_pReal
|
FEM_Zoo_QuadratureWeights(3,4)%p(1:4) = 0.0021900463965388_pReal
|
||||||
call FEM_Zoo_permutationStar31([0.0267367755543735_pReal], &
|
FEM_Zoo_QuadraturePoints (3,4)%p(1:12) = FEM_Zoo_permutationStar31([0.0267367755543735_pReal])
|
||||||
FEM_Zoo_QuadraturePoints(3,4)%p(1:12))
|
|
||||||
FEM_Zoo_QuadratureWeights(3,4)%p(5:16) = 0.0143395670177665_pReal
|
FEM_Zoo_QuadratureWeights(3,4)%p(5:16) = 0.0143395670177665_pReal
|
||||||
call FEM_Zoo_permutationStar211([0.0391022406356488_pReal, 0.7477598884818090_pReal], &
|
FEM_Zoo_QuadraturePoints (3,4)%p(13:48) = FEM_Zoo_permutationStar211([0.0391022406356488_pReal, 0.7477598884818090_pReal])
|
||||||
FEM_Zoo_QuadraturePoints(3,4)%p(13:48))
|
|
||||||
FEM_Zoo_QuadratureWeights(3,4)%p(17:22) = 0.0250305395686746_pReal
|
FEM_Zoo_QuadratureWeights(3,4)%p(17:22) = 0.0250305395686746_pReal
|
||||||
call FEM_Zoo_permutationStar22([0.4547545999844830_pReal], &
|
FEM_Zoo_QuadraturePoints (3,4)%p(49:66) = FEM_Zoo_permutationStar22([0.4547545999844830_pReal])
|
||||||
FEM_Zoo_QuadraturePoints(3,4)%p(49:66))
|
|
||||||
FEM_Zoo_QuadratureWeights(3,4)%p(23:34) = 0.0479839333057554_pReal
|
FEM_Zoo_QuadratureWeights(3,4)%p(23:34) = 0.0479839333057554_pReal
|
||||||
call FEM_Zoo_permutationStar211([0.2232010379623150_pReal, 0.0504792790607720_pReal], &
|
FEM_Zoo_QuadraturePoints (3,4)%p(67:102) = FEM_Zoo_permutationStar211([0.2232010379623150_pReal, 0.0504792790607720_pReal])
|
||||||
FEM_Zoo_QuadraturePoints(3,4)%p(67:102))
|
|
||||||
FEM_Zoo_QuadratureWeights(3,4)%p(35) = 0.0931745731195340_pReal
|
FEM_Zoo_QuadratureWeights(3,4)%p(35) = 0.0931745731195340_pReal
|
||||||
call FEM_Zoo_permutationStar4([0.25_pReal], &
|
FEM_Zoo_QuadraturePoints (3,4)%p(103:105)= FEM_Zoo_permutationStar4([0.25_pReal])
|
||||||
FEM_Zoo_QuadraturePoints(3,4)%p(103:105))
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
! 3D quintic
|
! 3D quintic
|
||||||
FEM_Zoo_nQuadrature(3,5) = 56
|
FEM_Zoo_nQuadrature(3,5) = 56
|
||||||
allocate(FEM_Zoo_QuadratureWeights(3,5)%p(56))
|
allocate(FEM_Zoo_QuadratureWeights(3,5)%p(56))
|
||||||
allocate(FEM_Zoo_QuadraturePoints (3,5)%p(168))
|
allocate(FEM_Zoo_QuadraturePoints (3,5)%p(168))
|
||||||
FEM_Zoo_QuadratureWeights(3,5)%p(1:4) = 0.0010373112336140_pReal
|
FEM_Zoo_QuadratureWeights(3,5)%p(1:4) = 0.0010373112336140_pReal
|
||||||
call FEM_Zoo_permutationStar31([0.0149520651530592_pReal], &
|
FEM_Zoo_QuadraturePoints (3,5)%p(1:12) = FEM_Zoo_permutationStar31([0.0149520651530592_pReal])
|
||||||
FEM_Zoo_QuadraturePoints(3,5)%p(1:12))
|
|
||||||
FEM_Zoo_QuadratureWeights(3,5)%p(5:16) = 0.0096016645399480_pReal
|
FEM_Zoo_QuadratureWeights(3,5)%p(5:16) = 0.0096016645399480_pReal
|
||||||
call FEM_Zoo_permutationStar211([0.0340960211962615_pReal, 0.1518319491659370_pReal], &
|
FEM_Zoo_QuadraturePoints (3,5)%p(13:48) = FEM_Zoo_permutationStar211([0.0340960211962615_pReal, 0.1518319491659370_pReal])
|
||||||
FEM_Zoo_QuadraturePoints(3,5)%p(13:48))
|
|
||||||
FEM_Zoo_QuadratureWeights(3,5)%p(17:28) = 0.0164493976798232_pReal
|
FEM_Zoo_QuadratureWeights(3,5)%p(17:28) = 0.0164493976798232_pReal
|
||||||
call FEM_Zoo_permutationStar211([0.0462051504150017_pReal, 0.3549340560639790_pReal], &
|
FEM_Zoo_QuadraturePoints (3,5)%p(49:84) = FEM_Zoo_permutationStar211([0.0462051504150017_pReal, 0.3549340560639790_pReal])
|
||||||
FEM_Zoo_QuadraturePoints(3,5)%p(49:84))
|
|
||||||
FEM_Zoo_QuadratureWeights(3,5)%p(29:40) = 0.0153747766513310_pReal
|
FEM_Zoo_QuadratureWeights(3,5)%p(29:40) = 0.0153747766513310_pReal
|
||||||
call FEM_Zoo_permutationStar211([0.2281904610687610_pReal, 0.0055147549744775_pReal], &
|
FEM_Zoo_QuadraturePoints (3,5)%p(85:120) = FEM_Zoo_permutationStar211([0.2281904610687610_pReal, 0.0055147549744775_pReal])
|
||||||
FEM_Zoo_QuadraturePoints(3,5)%p(85:120))
|
|
||||||
FEM_Zoo_QuadratureWeights(3,5)%p(41:52) = 0.0293520118375230_pReal
|
FEM_Zoo_QuadratureWeights(3,5)%p(41:52) = 0.0293520118375230_pReal
|
||||||
call FEM_Zoo_permutationStar211([0.3523052600879940_pReal, 0.0992057202494530_pReal], &
|
FEM_Zoo_QuadraturePoints (3,5)%p(121:156)= FEM_Zoo_permutationStar211([0.3523052600879940_pReal, 0.0992057202494530_pReal])
|
||||||
FEM_Zoo_QuadraturePoints(3,5)%p(121:156))
|
|
||||||
FEM_Zoo_QuadratureWeights(3,5)%p(53:56) = 0.0366291366405108_pReal
|
FEM_Zoo_QuadratureWeights(3,5)%p(53:56) = 0.0366291366405108_pReal
|
||||||
call FEM_Zoo_permutationStar31([0.1344783347929940_pReal], &
|
FEM_Zoo_QuadraturePoints (3,5)%p(157:168)= FEM_Zoo_permutationStar31([0.1344783347929940_pReal])
|
||||||
FEM_Zoo_QuadraturePoints(3,5)%p(157:168))
|
|
||||||
|
|
||||||
end subroutine FEM_Zoo_init
|
end subroutine FEM_Zoo_init
|
||||||
|
|
||||||
|
@ -187,27 +161,27 @@ end subroutine FEM_Zoo_init
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
!> @brief star 3 permutation of input
|
!> @brief star 3 permutation of input
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine FEM_Zoo_permutationStar3(point,qPt)
|
pure function FEM_Zoo_permutationStar3(point) result(qPt)
|
||||||
|
|
||||||
|
real(pReal), dimension(2) :: qPt
|
||||||
real(pReal), dimension(1), intent(in) :: point
|
real(pReal), dimension(1), intent(in) :: point
|
||||||
real(pReal), dimension(2,1), intent(out) :: qPt
|
|
||||||
|
|
||||||
real(pReal), dimension(3,1) :: temp
|
real(pReal), dimension(3,1) :: temp
|
||||||
|
|
||||||
temp(:,1) = [point(1), point(1), point(1)]
|
temp(:,1) = [point(1), point(1), point(1)]
|
||||||
|
|
||||||
qPt = matmul(triangle, temp)
|
qPt = reshape(matmul(triangle, temp),[2])
|
||||||
|
|
||||||
end subroutine FEM_Zoo_permutationStar3
|
end function FEM_Zoo_permutationStar3
|
||||||
|
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
!> @brief star 21 permutation of input
|
!> @brief star 21 permutation of input
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine FEM_Zoo_permutationStar21(point,qPt)
|
pure function FEM_Zoo_permutationStar21(point) result(qPt)
|
||||||
|
|
||||||
|
real(pReal), dimension(6) :: qPt
|
||||||
real(pReal), dimension(1), intent(in) :: point
|
real(pReal), dimension(1), intent(in) :: point
|
||||||
real(pReal), dimension(2,3), intent(out) :: qPt
|
|
||||||
|
|
||||||
real(pReal), dimension(3,3) :: temp
|
real(pReal), dimension(3,3) :: temp
|
||||||
|
|
||||||
|
@ -215,18 +189,18 @@ subroutine FEM_Zoo_permutationStar21(point,qPt)
|
||||||
temp(:,2) = [point(1), 1.0_pReal - 2.0_pReal*point(1), point(1)]
|
temp(:,2) = [point(1), 1.0_pReal - 2.0_pReal*point(1), point(1)]
|
||||||
temp(:,3) = [1.0_pReal - 2.0_pReal*point(1), point(1), point(1)]
|
temp(:,3) = [1.0_pReal - 2.0_pReal*point(1), point(1), point(1)]
|
||||||
|
|
||||||
qPt = matmul(triangle, temp)
|
qPt = reshape(matmul(triangle, temp),[6])
|
||||||
|
|
||||||
end subroutine FEM_Zoo_permutationStar21
|
end function FEM_Zoo_permutationStar21
|
||||||
|
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
!> @brief star 111 permutation of input
|
!> @brief star 111 permutation of input
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine FEM_Zoo_permutationStar111(point,qPt)
|
pure function FEM_Zoo_permutationStar111(point) result(qPt)
|
||||||
|
|
||||||
|
real(pReal), dimension(12) :: qPt
|
||||||
real(pReal), dimension(2), intent(in) :: point
|
real(pReal), dimension(2), intent(in) :: point
|
||||||
real(pReal), dimension(2,6), intent(out) :: qPt
|
|
||||||
|
|
||||||
real(pReal), dimension(3,6) :: temp
|
real(pReal), dimension(3,6) :: temp
|
||||||
|
|
||||||
|
@ -236,35 +210,35 @@ subroutine FEM_Zoo_permutationStar111(point,qPt)
|
||||||
temp(:,5) = [1.0_pReal - point(1) - point(2), point(2), point(1)]
|
temp(:,5) = [1.0_pReal - point(1) - point(2), point(2), point(1)]
|
||||||
temp(:,6) = [1.0_pReal - point(1) - point(2), point(1), point(2)]
|
temp(:,6) = [1.0_pReal - point(1) - point(2), point(1), point(2)]
|
||||||
|
|
||||||
qPt = matmul(triangle, temp)
|
qPt = reshape(matmul(triangle, temp),[12])
|
||||||
|
|
||||||
end subroutine FEM_Zoo_permutationStar111
|
end function FEM_Zoo_permutationStar111
|
||||||
|
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
!> @brief star 4 permutation of input
|
!> @brief star 4 permutation of input
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine FEM_Zoo_permutationStar4(point,qPt)
|
pure function FEM_Zoo_permutationStar4(point) result(qPt)
|
||||||
|
|
||||||
|
real(pReal), dimension(3) :: qPt
|
||||||
real(pReal), dimension(1), intent(in) :: point
|
real(pReal), dimension(1), intent(in) :: point
|
||||||
real(pReal), dimension(3,1), intent(out) :: qPt
|
|
||||||
|
|
||||||
real(pReal), dimension(4,1) :: temp
|
real(pReal), dimension(4,1) :: temp
|
||||||
|
|
||||||
temp(:,1) = [point(1), point(1), point(1), point(1)]
|
temp(:,1) = [point(1), point(1), point(1), point(1)]
|
||||||
|
|
||||||
qPt = matmul(tetrahedron, temp)
|
qPt = reshape(matmul(tetrahedron, temp),[3])
|
||||||
|
|
||||||
end subroutine FEM_Zoo_permutationStar4
|
end function FEM_Zoo_permutationStar4
|
||||||
|
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
!> @brief star 31 permutation of input
|
!> @brief star 31 permutation of input
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine FEM_Zoo_permutationStar31(point,qPt)
|
pure function FEM_Zoo_permutationStar31(point) result(qPt)
|
||||||
|
|
||||||
|
real(pReal), dimension(12) :: qPt
|
||||||
real(pReal), dimension(1), intent(in) :: point
|
real(pReal), dimension(1), intent(in) :: point
|
||||||
real(pReal), dimension(3,4), intent(out) :: qPt
|
|
||||||
|
|
||||||
real(pReal), dimension(4,4) :: temp
|
real(pReal), dimension(4,4) :: temp
|
||||||
|
|
||||||
|
@ -273,18 +247,18 @@ subroutine FEM_Zoo_permutationStar31(point,qPt)
|
||||||
temp(:,3) = [point(1), 1.0_pReal - 3.0_pReal*point(1), point(1), point(1)]
|
temp(:,3) = [point(1), 1.0_pReal - 3.0_pReal*point(1), point(1), point(1)]
|
||||||
temp(:,4) = [1.0_pReal - 3.0_pReal*point(1), point(1), point(1), point(1)]
|
temp(:,4) = [1.0_pReal - 3.0_pReal*point(1), point(1), point(1), point(1)]
|
||||||
|
|
||||||
qPt = matmul(tetrahedron, temp)
|
qPt = reshape(matmul(tetrahedron, temp),[12])
|
||||||
|
|
||||||
end subroutine FEM_Zoo_permutationStar31
|
end function FEM_Zoo_permutationStar31
|
||||||
|
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
!> @brief star 22 permutation of input
|
!> @brief star 22 permutation of input
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine FEM_Zoo_permutationStar22(point,qPt)
|
pure function FEM_Zoo_permutationStar22(point) result(qPt)
|
||||||
|
|
||||||
|
real(pReal), dimension(18) :: qPt
|
||||||
real(pReal), dimension(1), intent(in) :: point
|
real(pReal), dimension(1), intent(in) :: point
|
||||||
real(pReal), dimension(3,6), intent(out) :: qPt
|
|
||||||
|
|
||||||
real(pReal), dimension(4,6) :: temp
|
real(pReal), dimension(4,6) :: temp
|
||||||
|
|
||||||
|
@ -295,18 +269,18 @@ subroutine FEM_Zoo_permutationStar22(point,qPt)
|
||||||
temp(:,5) = [0.5_pReal - point(1), 0.5_pReal - point(1), point(1), point(1)]
|
temp(:,5) = [0.5_pReal - point(1), 0.5_pReal - point(1), point(1), point(1)]
|
||||||
temp(:,6) = [point(1), 0.5_pReal - point(1), 0.5_pReal - point(1), point(1)]
|
temp(:,6) = [point(1), 0.5_pReal - point(1), 0.5_pReal - point(1), point(1)]
|
||||||
|
|
||||||
qPt = matmul(tetrahedron, temp)
|
qPt = reshape(matmul(tetrahedron, temp),[18])
|
||||||
|
|
||||||
end subroutine FEM_Zoo_permutationStar22
|
end function FEM_Zoo_permutationStar22
|
||||||
|
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
!> @brief star 211 permutation of input
|
!> @brief star 211 permutation of input
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine FEM_Zoo_permutationStar211(point,qPt)
|
pure function FEM_Zoo_permutationStar211(point) result(qPt)
|
||||||
|
|
||||||
|
real(pReal), dimension(36) :: qPt
|
||||||
real(pReal), dimension(2), intent(in) :: point
|
real(pReal), dimension(2), intent(in) :: point
|
||||||
real(pReal), dimension(3,12), intent(out) :: qPt
|
|
||||||
|
|
||||||
real(pReal), dimension(4,12) :: temp
|
real(pReal), dimension(4,12) :: temp
|
||||||
|
|
||||||
|
@ -323,18 +297,18 @@ subroutine FEM_Zoo_permutationStar211(point,qPt)
|
||||||
temp(:,11) = [1.0_pReal - 2.0_pReal*point(1) - point(2), point(1), point(2), point(1)]
|
temp(:,11) = [1.0_pReal - 2.0_pReal*point(1) - point(2), point(1), point(2), point(1)]
|
||||||
temp(:,12) = [1.0_pReal - 2.0_pReal*point(1) - point(2), point(2), point(1), point(1)]
|
temp(:,12) = [1.0_pReal - 2.0_pReal*point(1) - point(2), point(2), point(1), point(1)]
|
||||||
|
|
||||||
qPt = matmul(tetrahedron, temp)
|
qPt = reshape(matmul(tetrahedron, temp),[36])
|
||||||
|
|
||||||
end subroutine FEM_Zoo_permutationStar211
|
end function FEM_Zoo_permutationStar211
|
||||||
|
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
!> @brief star 1111 permutation of input
|
!> @brief star 1111 permutation of input
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine FEM_Zoo_permutationStar1111(point,qPt)
|
pure function FEM_Zoo_permutationStar1111(point) result(qPt)
|
||||||
|
|
||||||
|
real(pReal), dimension(72) :: qPt
|
||||||
real(pReal), dimension(3), intent(in) :: point
|
real(pReal), dimension(3), intent(in) :: point
|
||||||
real(pReal), dimension(3,24), intent(out) :: qPt
|
|
||||||
|
|
||||||
real(pReal), dimension(4,24) :: temp
|
real(pReal), dimension(4,24) :: temp
|
||||||
|
|
||||||
|
@ -363,8 +337,8 @@ subroutine FEM_Zoo_permutationStar1111(point,qPt)
|
||||||
temp(:,23) = [1.0_pReal - point(1) - point(2)- point(3), point(3), point(1), point(2)]
|
temp(:,23) = [1.0_pReal - point(1) - point(2)- point(3), point(3), point(1), point(2)]
|
||||||
temp(:,24) = [1.0_pReal - point(1) - point(2)- point(3), point(3), point(2), point(1)]
|
temp(:,24) = [1.0_pReal - point(1) - point(2)- point(3), point(3), point(2), point(1)]
|
||||||
|
|
||||||
qPt = matmul(tetrahedron, temp)
|
qPt = reshape(matmul(tetrahedron, temp),[72])
|
||||||
|
|
||||||
end subroutine FEM_Zoo_permutationStar1111
|
end function FEM_Zoo_permutationStar1111
|
||||||
|
|
||||||
end module FEM_Zoo
|
end module FEM_Zoo
|
||||||
|
|
Loading…
Reference in New Issue