Quick check if particle coordinate is inside igrid (ghost cells included, except the last ngh)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| double precision, | intent(in) | :: | x(ndim) | |||
| integer, | intent(in) | :: | igrid | |||
| integer, | intent(in) | :: | ngh |
logical function point_in_igrid_ghostc(x, igrid, ngh) use mod_global_parameters use mod_geometry integer, intent(in) :: igrid, ngh double precision, intent(in) :: x(ndim) double precision :: grid_rmin(ndim), grid_rmax(ndim) ! TODO: this does not work with stretched coordinates! ! TODO: but phi should not be stretched in principle... grid_rmin = [ rnode(rpxmin1_,igrid)-rnode(rpdx1_,& igrid)*(DBLE(nghostcells-ngh)-0.5d0),rnode(rpxmin2_,igrid)-rnode(rpdx2_,& igrid)*(DBLE(nghostcells-ngh)-0.5d0),rnode(rpxmin3_,igrid)-rnode(rpdx3_,& igrid)*(DBLE(nghostcells-ngh)-0.5d0) ] grid_rmax = [ rnode(rpxmax1_,igrid)+rnode(rpdx1_,& igrid)*(DBLE(nghostcells-ngh)-0.5d0),rnode(rpxmax2_,igrid)+rnode(rpdx2_,& igrid)*(DBLE(nghostcells-ngh)-0.5d0),rnode(rpxmax3_,igrid)+rnode(rpdx3_,& igrid)*(DBLE(nghostcells-ngh)-0.5d0) ] point_in_igrid_ghostc = all(x >= grid_rmin) .and. all(x < grid_rmax) end function point_in_igrid_ghostc