Remove tolerance when searching ray-wall intersections
This commit is contained in:
parent
cf8a37fec9
commit
7d9f43e1af
@ -33,11 +33,9 @@ subroutine inters_linewall(xv,kv,rw,zw,nw,sint,normw)
|
|||||||
real(wp_), dimension(nw), intent(in) :: rw,zw
|
real(wp_), dimension(nw), intent(in) :: rw,zw
|
||||||
real(wp_), intent(out) :: sint
|
real(wp_), intent(out) :: sint
|
||||||
real(wp_), dimension(3), intent(out) :: normw
|
real(wp_), dimension(3), intent(out) :: normw
|
||||||
integer :: i,j,ni,iint,nneg
|
integer :: i,j,ni,iint,first
|
||||||
real(wp_), dimension(2) :: si,ti
|
real(wp_), dimension(2) :: si,ti
|
||||||
real(wp_) :: drw,dzw,xint,yint,rint,l,kxy
|
real(wp_) :: drw,dzw,xint,yint,rint,l,kxy
|
||||||
real(wp_) :: tol
|
|
||||||
tol=sqrt(comp_eps)
|
|
||||||
sint=comp_huge
|
sint=comp_huge
|
||||||
iint=0
|
iint=0
|
||||||
normw=zero
|
normw=zero
|
||||||
@ -45,20 +43,14 @@ subroutine inters_linewall(xv,kv,rw,zw,nw,sint,normw)
|
|||||||
!search intersections with i-th wall segment
|
!search intersections with i-th wall segment
|
||||||
call linecone_coord(xv,kv,rw(i:i+1),zw(i:i+1),si,ti,ni)
|
call linecone_coord(xv,kv,rw(i:i+1),zw(i:i+1),si,ti,ni)
|
||||||
!discard solutions with s<=0
|
!discard solutions with s<=0
|
||||||
nneg=0
|
first=ni+1
|
||||||
do j=1,ni
|
do j=1,ni
|
||||||
if (si(j)<=tol) then
|
if (si(j)>zero) then
|
||||||
nneg=j
|
first=j
|
||||||
else
|
|
||||||
exit
|
exit
|
||||||
end if
|
end if
|
||||||
end do
|
end do
|
||||||
! do while (ni>0 .and. si(1)<=tol)
|
do j=first,ni
|
||||||
! ni = ni-1
|
|
||||||
! si(1) = si(2) ???
|
|
||||||
! ti(1) = ti(2) ???
|
|
||||||
! end do
|
|
||||||
do j=nneg+1,ni
|
|
||||||
if ((si(j)<sint .or. iint==0) .and. ti(j)>=zero .and. ti(j)<=one) then
|
if ((si(j)<sint .or. iint==0) .and. ti(j)>=zero .and. ti(j)<=one) then
|
||||||
!check intersection is in r,z range and keep the closest
|
!check intersection is in r,z range and keep the closest
|
||||||
sint = si(j)
|
sint = si(j)
|
||||||
|
Loading…
Reference in New Issue
Block a user