|
|
|
@ -291,6 +291,21 @@ module opt_disl
|
|
|
|
|
a3 = 3
|
|
|
|
|
end select
|
|
|
|
|
|
|
|
|
|
if(loop_radius < 0.0_dp) then
|
|
|
|
|
xLoop(:,:) = 0.d0
|
|
|
|
|
xLoop(1,a1) = centroid(1) - loop_radius
|
|
|
|
|
xLoop(1,a2) = centroid(2) - loop_radius
|
|
|
|
|
xLoop(1,a3) = centroid(3)
|
|
|
|
|
xLoop(2,a1) = centroid(1) + loop_radius
|
|
|
|
|
xLoop(2,a2) = centroid(2) - loop_radius
|
|
|
|
|
xLoop(2,a3) = centroid(3)
|
|
|
|
|
xLoop(3,a1) = centroid(1) + loop_radius
|
|
|
|
|
xLoop(3,a2) = centroid(2) + loop_radius
|
|
|
|
|
xLoop(3,a3) = centroid(3)
|
|
|
|
|
xLoop(4,a1) = centroid(1) - loop_radius
|
|
|
|
|
xLoop(4,a2) = centroid(2) + loop_radius
|
|
|
|
|
xLoop(4,a3) = centroid(3)
|
|
|
|
|
else
|
|
|
|
|
!Calculate loop perimeter
|
|
|
|
|
perimeter = 2.0_dp*pi*loop_radius
|
|
|
|
|
|
|
|
|
@ -320,7 +335,7 @@ module opt_disl
|
|
|
|
|
! Increment angle for next point
|
|
|
|
|
angle = angle + theta
|
|
|
|
|
end do
|
|
|
|
|
|
|
|
|
|
end if
|
|
|
|
|
!Now actually calculate the displacement created by a loop for every atom
|
|
|
|
|
do i = 1, atom_num
|
|
|
|
|
u = 0.0_dp
|
|
|
|
|