Fix to opt_group which got the code working
This commit is contained in:
parent
2c42520102
commit
29df0f9eb2
@ -606,7 +606,7 @@ module opt_group
|
|||||||
!This command is used to refine the group to full atomistics
|
!This command is used to refine the group to full atomistics
|
||||||
|
|
||||||
integer :: i, j, ie, type_interp(max_basisnum*max_esize**3), add_atom_num, orig_atom_num, m, n, o, esize, &
|
integer :: i, j, ie, type_interp(max_basisnum*max_esize**3), add_atom_num, orig_atom_num, m, n, o, esize, &
|
||||||
ele(3,8), new_ele_num, ibasis, inod, vlat(3), nump_ele
|
ele(3,8), new_ele_num, ibasis, inod, vlat(3), nump_ele, added_points
|
||||||
real(kind=dp) :: r_interp(3, max_basisnum*max_esize**3), rfill(3,max_basisnum,max_ng_node), ravg(3), ratom(3,max_basisnum)
|
real(kind=dp) :: r_interp(3, max_basisnum*max_esize**3), rfill(3,max_basisnum,max_ng_node), ravg(3), ratom(3,max_basisnum)
|
||||||
logical :: lat_points(max_esize, max_esize, max_esize)
|
logical :: lat_points(max_esize, max_esize, max_esize)
|
||||||
|
|
||||||
@ -623,7 +623,6 @@ module opt_group
|
|||||||
lat_points(1:size_ele(ie),1:size_ele(ie),1:size_ele(ie)) = .true.
|
lat_points(1:size_ele(ie),1:size_ele(ie),1:size_ele(ie)) = .true.
|
||||||
|
|
||||||
!Now calculate the number of elemets which are available for remeshing
|
!Now calculate the number of elemets which are available for remeshing
|
||||||
call interpolate_atoms(type_ele(ie), size_ele(ie), lat_ele(ie), r_node(:,:,:,ie), type_interp, r_interp)
|
|
||||||
nump_ele = size_ele(ie)**3
|
nump_ele = size_ele(ie)**3
|
||||||
do o =1, size_ele(ie)
|
do o =1, size_ele(ie)
|
||||||
do n = 1, size_ele(ie)
|
do n = 1, size_ele(ie)
|
||||||
@ -644,6 +643,7 @@ module opt_group
|
|||||||
|
|
||||||
!Now start the remeshing loop for the element
|
!Now start the remeshing loop for the element
|
||||||
esize = size_ele(ie) - 2
|
esize = size_ele(ie) - 2
|
||||||
|
added_points=0
|
||||||
do while(esize > min_efillsize)
|
do while(esize > min_efillsize)
|
||||||
if(nump_ele < min_efillsize**3) then
|
if(nump_ele < min_efillsize**3) then
|
||||||
exit
|
exit
|
||||||
@ -667,6 +667,7 @@ module opt_group
|
|||||||
lat_points(m:m+esize-1, n:n+esize-1, o:o+esize-1) = .false.
|
lat_points(m:m+esize-1, n:n+esize-1, o:o+esize-1) = .false.
|
||||||
call add_element(0,type_ele(ie), esize, lat_ele(ie), sbox_ele(ie), rfill)
|
call add_element(0,type_ele(ie), esize, lat_ele(ie), sbox_ele(ie), rfill)
|
||||||
new_ele_num = new_ele_num + 1
|
new_ele_num = new_ele_num + 1
|
||||||
|
added_points = added_points + esize**3
|
||||||
end if
|
end if
|
||||||
|
|
||||||
end do latloop
|
end do latloop
|
||||||
@ -676,20 +677,25 @@ module opt_group
|
|||||||
end if
|
end if
|
||||||
end do
|
end do
|
||||||
!Now add the leftover lattice points as atoms
|
!Now add the leftover lattice points as atoms
|
||||||
do o = 1, size_ele(i)
|
do o = 1, size_ele(ie)
|
||||||
do n = 1, size_ele(i)
|
do n = 1, size_ele(ie)
|
||||||
do m = 1, size_ele(i)
|
do m = 1, size_ele(ie)
|
||||||
if(lat_points(m,n,o)) then
|
if(lat_points(m,n,o)) then
|
||||||
call get_interp_pos(m,n,o, ie, ratom(:,:))
|
call get_interp_pos(m,n,o, ie, ratom(:,:))
|
||||||
do ibasis = 1, basisnum(lat_ele(ie))
|
do ibasis = 1, basisnum(lat_ele(ie))
|
||||||
call apply_periodic(r_atom(:,ibasis))
|
call apply_periodic(ratom(:,ibasis))
|
||||||
call add_atom(0, basis_type(ibasis,lat_ele(ie)), sbox_ele(ie), ratom(:,ibasis))
|
call add_atom(0, basis_type(ibasis,lat_ele(ie)), sbox_ele(ie), ratom(:,ibasis))
|
||||||
|
added_points=added_points + 1
|
||||||
end do
|
end do
|
||||||
end if
|
end if
|
||||||
end do
|
end do
|
||||||
end do
|
end do
|
||||||
end do
|
end do
|
||||||
|
|
||||||
|
if (added_points /= (size_ele(ie)**3)) then
|
||||||
|
|
||||||
|
print *, "Element ", ie, " is refined incorrectly in refinefill"
|
||||||
|
end if
|
||||||
end do
|
end do
|
||||||
!Once all atoms are added we delete all of the elements
|
!Once all atoms are added we delete all of the elements
|
||||||
call delete_elements(group_ele_num, element_index)
|
call delete_elements(group_ele_num, element_index)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user