|
|
@ -736,4 +736,24 @@ module elements
|
|
|
|
|
|
|
|
|
|
|
|
end subroutine lattice_map
|
|
|
|
end subroutine lattice_map
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
subroutine get_interp_pos(i,j,k, ie, r)
|
|
|
|
|
|
|
|
!This returns the position of an interpolated basis from an element ie.
|
|
|
|
|
|
|
|
!i, j, k should be in natural coordinates
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
integer, intent(in) :: i, j, k, r, s, t, ie, inod -=
|
|
|
|
|
|
|
|
real(kind=dp), dimension(3,max_basisnum), intent(out) :: r
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
r = (1.0_dp*(i-1)-(size_ele(ie)-1)/2)/(1.0_dp*(size_ele(ie)-1)/2)
|
|
|
|
|
|
|
|
s = (1.0_dp*(j-1)-(size_ele(ie)-1)/2)/(1.0_dp*(size_ele(ie)-1)/2)
|
|
|
|
|
|
|
|
t = (1.0_dp*(k-1)-(size_ele(ie)-1)/2)/(1.0_dp*(size_ele(ie)-1)/2)
|
|
|
|
|
|
|
|
r(:) = 0
|
|
|
|
|
|
|
|
do ibasis = 1, bnum
|
|
|
|
|
|
|
|
do inod = 1, 8
|
|
|
|
|
|
|
|
r(:,ibasis) = r(:,ibasis) + a_shape(inod) * r_node(:,ibasis,inod,ie)
|
|
|
|
|
|
|
|
end do
|
|
|
|
|
|
|
|
end do
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
end subroutine
|
|
|
|
|
|
|
|
|
|
|
|
end module elements
|
|
|
|
end module elements
|
|
|
|