Added verbosity to remesh command

master
Alex 5 years ago
parent 09c2e63155
commit 5b925122df

@ -262,7 +262,7 @@ module opt_group
!This command is used to remesh the group to a desired element size !This command is used to remesh the group to a desired element size
integer :: i, j, k, ix, iy, iz, inod, ibasis, ie, type_interp(max_basisnum*max_esize**3), add_atom_num, orig_atom_num, & integer :: i, j, k, ix, iy, iz, inod, ibasis, ie, type_interp(max_basisnum*max_esize**3), add_atom_num, orig_atom_num, &
current_esize, dof, max_lat(3), r_lat(3), ele(3,8), vlat(3), bd_in_lat(6), bd_in_array(3) current_esize, dof, max_lat(3), r_lat(3), ele(3,8), vlat(3), bd_in_lat(6), bd_in_array(3), old_ele, old_atom
real(kind=dp) :: r_interp(3, max_basisnum*max_esize**3), ori_inv(3,3), r(3), & real(kind=dp) :: r_interp(3, max_basisnum*max_esize**3), ori_inv(3,3), r(3), &
r_new_node(3,max_basisnum, max_ng_node), orient(3,3), group_in_lat(3,8) r_new_node(3,max_basisnum, max_ng_node), orient(3,3), group_in_lat(3,8)
logical, allocatable :: lat_points(:,:,:) logical, allocatable :: lat_points(:,:,:)
@ -303,6 +303,7 @@ module opt_group
allocate(lat_points(bd_in_lat(2)-bd_in_lat(1)+10, bd_in_lat(4)-bd_in_lat(3)+10, bd_in_lat(6)-bd_in_lat(5)+10)) allocate(lat_points(bd_in_lat(2)-bd_in_lat(1)+10, bd_in_lat(4)-bd_in_lat(3)+10, bd_in_lat(6)-bd_in_lat(5)+10))
lat_points(:,:,:) = .false. lat_points(:,:,:) = .false.
dof = 0
!Now place all group atoms and group interpolated atoms into lat_points !Now place all group atoms and group interpolated atoms into lat_points
do i = 1, group_atom_num do i = 1, group_atom_num
@ -317,6 +318,7 @@ module opt_group
stop "Multiple atoms share same position in lat point array, this shouldn't happen" stop "Multiple atoms share same position in lat point array, this shouldn't happen"
else else
lat_points(r_lat(1)-bd_in_lat(1)+5, r_lat(2)-bd_in_lat(3)+5, r_lat(3)-bd_in_lat(5)+5) = .true. lat_points(r_lat(1)-bd_in_lat(1)+5, r_lat(2)-bd_in_lat(3)+5, r_lat(3)-bd_in_lat(5)+5) = .true.
dof = dof + 1
end if end if
end do end do
@ -336,14 +338,20 @@ module opt_group
stop "Multiple atoms/interpolated atoms share same position in lat point array, this shouldn't happen" stop "Multiple atoms/interpolated atoms share same position in lat point array, this shouldn't happen"
else else
lat_points(r_lat(1)-bd_in_lat(1)+5, r_lat(2)-bd_in_lat(3)+5, r_lat(3)-bd_in_lat(5)+5) = .true. lat_points(r_lat(1)-bd_in_lat(1)+5, r_lat(2)-bd_in_lat(3)+5, r_lat(3)-bd_in_lat(5)+5) = .true.
dof = dof + 1
end if end if
end do end do
end do end do
print *, "Group has ", dof, " degrees of freedom to remesh"
!Delete all elements and atoms to make space for new elements and atoms !Delete all elements and atoms to make space for new elements and atoms
call delete_atoms(group_atom_num, atom_index) call delete_atoms(group_atom_num, atom_index)
call delete_elements(group_ele_num, element_index) call delete_elements(group_ele_num, element_index)
old_atom = atom_num
old_ele = ele_num
!Now run remeshing algorithm, not the most optimized or efficient but gets the job done !Now run remeshing algorithm, not the most optimized or efficient but gets the job done
ele = (remesh_size-1)*cubic_cell ele = (remesh_size-1)*cubic_cell
@ -404,6 +412,8 @@ module opt_group
end do end do
end do end do
print *, "Remeshing has created ", ele_num-old_ele, " elements and ", atom_num-old_atom, " atoms."
end subroutine remesh_group end subroutine remesh_group
subroutine delete_group subroutine delete_group

Loading…
Cancel
Save