subroutine initialize_abst_mesh(self, id, type, group, dimension, order, num_nodes, connectivity, &
num_gauss, weight, gauss, global_coordinate)
implicit none
class(abst_mesh), intent(inout) :: self
integer(int32), intent(in) :: id
integer(int32), intent(in) :: type
integer(int32), intent(in) :: group
integer(int32), intent(in) :: dimension
integer(int32), intent(in) :: order
integer(int32), intent(in) :: num_nodes
integer(int32), intent(in) :: connectivity(:)
integer(int32), intent(in) :: num_gauss
real(real64), intent(in) :: weight(:)
real(real64), intent(in) :: gauss(:, :)
type(type_dp_3d), pointer, intent(in) :: global_coordinate
integer(int32) :: i
self%id = id
self%type = type
self%group = group
self%dimension = dimension
self%order = order
self%num_nodes = num_nodes
self%num_gauss = num_gauss
call allocate_array(self%connectivity, self%num_nodes)
do i = 1, self%num_nodes
self%connectivity(i) = connectivity(i)
end do
call allocate_array(self%weight, self%num_gauss)
do i = 1, self%num_gauss
self%weight(i) = weight(i)
end do
allocate (self%gauss(self%num_gauss))
do i = 1, self%num_gauss
call self%gauss(i)%set(gauss(1, i), gauss(2, i), gauss(3, i))
end do
allocate (self%x(self%num_nodes))
allocate (self%y(self%num_nodes))
allocate (self%z(self%num_nodes))
do i = 1, self%num_nodes
nullify (self%x(i)%val)
nullify (self%y(i)%val)
nullify (self%z(i)%val)
self%x(i)%val => global_coordinate%x(self%connectivity(i))
self%y(i)%val => global_coordinate%y(self%connectivity(i))
self%z(i)%val => global_coordinate%z(self%connectivity(i))
end do
end subroutine initialize_abst_mesh