particle_in_igrid Function

public function particle_in_igrid(ipart, igrid)

Uses

  • proc~~particle_in_igrid~~UsesGraph proc~particle_in_igrid particle_in_igrid module~mod_global_parameters mod_global_parameters proc~particle_in_igrid->module~mod_global_parameters module~mod_basic_types mod_basic_types module~mod_global_parameters->module~mod_basic_types module~mod_connectivity mod_connectivity module~mod_global_parameters->module~mod_connectivity module~mod_constants mod_constants module~mod_global_parameters->module~mod_constants module~mod_physicaldata mod_physicaldata module~mod_global_parameters->module~mod_physicaldata module~mod_variables mod_variables module~mod_global_parameters->module~mod_variables mpi mpi module~mod_global_parameters->mpi module~mod_variables->module~mod_basic_types

Quick check if particle is still in igrid

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: ipart
integer, intent(in) :: igrid

Return Value logical


Called by

proc~~particle_in_igrid~~CalledByGraph proc~particle_in_igrid particle_in_igrid proc~comm_particles comm_particles proc~comm_particles->proc~particle_in_igrid proc~gca_get_particle_dt gca_get_particle_dt proc~gca_get_particle_dt->proc~particle_in_igrid proc~gca_integrate_particles gca_integrate_particles proc~gca_integrate_particles->proc~particle_in_igrid proc~gca_integrate_particles->proc~gca_get_particle_dt proc~advance_particles advance_particles proc~advance_particles->proc~comm_particles proc~handle_particles handle_particles proc~handle_particles->proc~advance_particles proc~advance advance proc~advance->proc~handle_particles proc~main main proc~main->proc~handle_particles proc~timeintegration timeintegration proc~main->proc~timeintegration proc~timeintegration->proc~advance program~agile agile program~agile->proc~main

Source Code

  logical function particle_in_igrid(ipart, igrid)
    use mod_global_parameters
    integer, intent(in) :: igrid, ipart
    double precision    :: x(ndim), grid_rmin(ndim), grid_rmax(ndim)

    ! First check if the igrid is still there
    if (.not. associated(ps(igrid)%w)) then
      particle_in_igrid = .false.
    else
      grid_rmin         = [ rnode(rpxmin1_,igrid),rnode(rpxmin2_,igrid),&
         rnode(rpxmin3_,igrid) ]
      grid_rmax         = [ rnode(rpxmax1_,igrid),rnode(rpxmax2_,igrid),&
         rnode(rpxmax3_,igrid) ]
      x                 = particle(ipart)%self%x(1:ndim)
      particle_in_igrid = all(x >= grid_rmin) .and. all(x < grid_rmax)
    end if
  end function particle_in_igrid