source_index_boxes Subroutine

public subroutine source_index_boxes(mesh, points, r_cut, lo, hi)

Global zero-based VERT index box [lo, hi] of the grid points within r_cut of each point, on a uniform grid. In a periodic direction the box is left unclipped, so it may run past either end of the domain; the projection wraps those indices onto the grid, which keeps the whole kernel. In a non-periodic direction it is clipped to the domain, so a kernel crossing an inflow, outflow or wall loses that part, as in Incompact3d. Stops the run if a box is wider than a periodic direction, as the wrapped kernel would then cover points twice.

Arguments

Type IntentOptional Attributes Name
type(mesh_t), intent(in) :: mesh
real(kind=dp), intent(in) :: points(:,:)
real(kind=dp), intent(in) :: r_cut
integer, intent(out) :: lo(:,:)
integer, intent(out) :: hi(:,:)

Calls

proc~~source_index_boxes~~CallsGraph proc~source_index_boxes m_base_backend::source_index_boxes proc~abort_run m_logger::abort_run proc~source_index_boxes->proc~abort_run proc~get_global_dims m_mesh::mesh_t%get_global_dims proc~source_index_boxes->proc~get_global_dims interface~str m_logger::str proc~abort_run->interface~str mpi_abort mpi_abort proc~abort_run->mpi_abort mpi_barrier mpi_barrier proc~abort_run->mpi_barrier mpi_comm_rank mpi_comm_rank proc~abort_run->mpi_comm_rank mpi_comm_size mpi_comm_size proc~abort_run->mpi_comm_size mpi_finalized mpi_finalized proc~abort_run->mpi_finalized mpi_initialized mpi_initialized proc~abort_run->mpi_initialized proc~get_dims_dataloc m_mesh::get_dims_dataloc proc~get_global_dims->proc~get_dims_dataloc

Called by

proc~~source_index_boxes~~CalledByGraph proc~source_index_boxes m_base_backend::source_index_boxes proc~field_add_gaussian_sources_cuda m_cuda_backend::cuda_backend_t%field_add_gaussian_sources_cuda proc~field_add_gaussian_sources_cuda->proc~source_index_boxes proc~field_add_gaussian_sources_omp m_omp_backend::omp_backend_t%field_add_gaussian_sources_omp proc~field_add_gaussian_sources_omp->proc~source_index_boxes