advance Subroutine

public subroutine advance(iit)

Uses

  • proc~~advance~~UsesGraph proc~advance advance mod_source mod_source proc~advance->mod_source module~mod_global_parameters mod_global_parameters proc~advance->module~mod_global_parameters module~mod_particles mod_particles proc~advance->module~mod_particles 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_particle_advect mod_particle_advect module~mod_particles->module~mod_particle_advect module~mod_particle_base mod_particle_base module~mod_particles->module~mod_particle_base module~mod_particle_gca mod_particle_gca module~mod_particles->module~mod_particle_gca module~mod_particle_lorentz mod_particle_lorentz module~mod_particles->module~mod_particle_lorentz module~mod_particle_sample mod_particle_sample module~mod_particles->module~mod_particle_sample module~mod_particle_advect->module~mod_particle_base module~mod_particle_base->module~mod_global_parameters module~mod_particle_base->module~mod_constants mod_physics mod_physics module~mod_particle_base->mod_physics module~mod_comm_lib mod_comm_lib module~mod_particle_base->module~mod_comm_lib module~mod_mpi_wrapper mod_mpi_wrapper module~mod_particle_base->module~mod_mpi_wrapper module~mod_random mod_random module~mod_particle_base->module~mod_random module~mod_particle_gca->module~mod_particle_base module~mod_particle_lorentz->module~mod_particle_base module~mod_particle_sample->module~mod_particle_base module~mod_variables->module~mod_basic_types module~mod_mpi_wrapper->mpi

Advance all the grids over one time step, including all sources

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: iit

Calls

proc~~advance~~CallsGraph proc~advance advance add_split_source add_split_source proc~advance->add_split_source proc~advect advect proc~advance->proc~advect proc~handle_particles handle_particles proc~advance->proc~handle_particles proc~advect1 advect1 proc~advect->proc~advect1 proc~init_comm_fix_conserve init_comm_fix_conserve proc~advect->proc~init_comm_fix_conserve proc~mpistop mpistop proc~advect->proc~mpistop mpi_allreduce mpi_allreduce proc~handle_particles->mpi_allreduce mpi_wtime mpi_wtime proc~handle_particles->mpi_wtime proc~advance_particles advance_particles proc~handle_particles->proc~advance_particles proc~comm_particles_global comm_particles_global proc~handle_particles->proc~comm_particles_global proc~handle_particles->proc~mpistop proc~set_neighbor_ipe set_neighbor_ipe proc~handle_particles->proc~set_neighbor_ipe proc~update_gridvars update_gridvars proc~handle_particles->proc~update_gridvars proc~write_particle_output write_particle_output proc~handle_particles->proc~write_particle_output proc~advance_particles->mpi_allreduce proc~advance_particles->mpi_wtime proc~comm_particles comm_particles proc~advance_particles->proc~comm_particles proc~select_active_particles select_active_particles proc~advance_particles->proc~select_active_particles finite_volume_local finite_volume_local proc~advect1->finite_volume_local proc~fix_conserve fix_conserve proc~advect1->proc~fix_conserve proc~getbc getbc proc~advect1->proc~getbc proc~recvflux recvflux proc~advect1->proc~recvflux proc~sendflux sendflux proc~advect1->proc~sendflux proc~comm_particles_global->proc~mpistop mpi_waitall mpi_waitall proc~comm_particles_global->mpi_waitall proc~find_particle_ipe find_particle_ipe proc~comm_particles_global->proc~find_particle_ipe proc~mpi_irecv_wrapper mpi_irecv_wrapper proc~comm_particles_global->proc~mpi_irecv_wrapper proc~mpi_isend_wrapper mpi_isend_wrapper proc~comm_particles_global->proc~mpi_isend_wrapper proc~mpi_recv_wrapper mpi_recv_wrapper proc~comm_particles_global->proc~mpi_recv_wrapper proc~mpi_send_wrapper mpi_send_wrapper proc~comm_particles_global->proc~mpi_send_wrapper proc~pull_particle_from_particles_on_mype pull_particle_from_particles_on_mype proc~comm_particles_global->proc~pull_particle_from_particles_on_mype proc~push_particle_into_particles_on_mype push_particle_into_particles_on_mype proc~comm_particles_global->proc~push_particle_into_particles_on_mype proc~init_comm_fix_conserve->proc~mpistop proc~build_message_layout build_message_layout proc~init_comm_fix_conserve->proc~build_message_layout mpi_abort mpi_abort proc~mpistop->mpi_abort proc~ipe_cf ipe_cf proc~set_neighbor_ipe->proc~ipe_cf proc~ipe_fc ipe_fc proc~set_neighbor_ipe->proc~ipe_fc proc~ipe_srl ipe_srl proc~set_neighbor_ipe->proc~ipe_srl proc~update_gridvars->mpi_wtime proc~output_ensemble output_ensemble proc~write_particle_output->proc~output_ensemble proc~output_individual output_individual proc~write_particle_output->proc~output_individual proc~build_message_layout->proc~mpistop proc~layout_runs layout_runs proc~build_message_layout->proc~layout_runs proc~comm_particles->proc~mpistop proc~comm_particles->mpi_waitall proc~comm_particles->proc~find_particle_ipe proc~comm_particles->proc~mpi_irecv_wrapper proc~comm_particles->proc~mpi_isend_wrapper proc~comm_particles->proc~pull_particle_from_particles_on_mype proc~comm_particles->proc~push_particle_into_particles_on_mype proc~apply_periodb apply_periodB proc~comm_particles->proc~apply_periodb proc~destroy_particles destroy_particles proc~comm_particles->proc~destroy_particles proc~particle_in_igrid particle_in_igrid proc~comm_particles->proc~particle_in_igrid proc~get_igslice get_igslice proc~find_particle_ipe->proc~get_igslice proc~particle_in_domain particle_in_domain proc~find_particle_ipe->proc~particle_in_domain proc~fix_conserve->proc~mpistop proc~fix_conserve->mpi_waitall mpi_get_count mpi_get_count proc~fix_conserve->mpi_get_count proc~getbc->mpi_wtime proc~getbc->mpi_waitall proc~getbc->proc~mpi_irecv_wrapper proc~getbc->proc~mpi_isend_wrapper phys_boundary_adjust phys_boundary_adjust proc~getbc->phys_boundary_adjust proc~fill_boundary_after_gc fill_boundary_after_gc proc~getbc->proc~fill_boundary_after_gc proc~fill_boundary_before_gc fill_boundary_before_gc proc~getbc->proc~fill_boundary_before_gc proc~fill_coarse_boundary fill_coarse_boundary proc~getbc->proc~fill_coarse_boundary proc~getintbc getintbc proc~getbc->proc~getintbc proc~idecode~2 idecode proc~getbc->proc~idecode~2 proc~nvtxendrange~2 nvtxEndRange proc~getbc->proc~nvtxendrange~2 proc~nvtxstartrange~2 nvtxStartRange proc~getbc->proc~nvtxstartrange~2 proc~skip_direction skip_direction proc~getbc->proc~skip_direction mpi_irecv mpi_irecv proc~mpi_irecv_wrapper->mpi_irecv mpi_isend mpi_isend proc~mpi_isend_wrapper->mpi_isend mpi_recv mpi_recv proc~mpi_recv_wrapper->mpi_recv mpi_send mpi_send proc~mpi_send_wrapper->mpi_send proc~output_ensemble->proc~mpi_recv_wrapper proc~output_ensemble->proc~mpi_send_wrapper mpi_allgather mpi_allgather proc~output_ensemble->mpi_allgather proc~output_particle output_particle proc~output_ensemble->proc~output_particle proc~output_individual->proc~output_particle proc~recvflux->proc~mpi_irecv_wrapper proc~select_active_particles->mpi_allreduce proc~sendflux->proc~mpi_isend_wrapper proc~apply_periodb->proc~find_particle_ipe proc~destroy_particles->mpi_allreduce proc~destroy_particles->proc~output_ensemble proc~destroy_particles->proc~pull_particle_from_particles_on_mype proc~bc_phys bc_phys proc~fill_boundary_after_gc->proc~bc_phys proc~fill_boundary_before_gc->proc~bc_phys proc~fill_coarse_boundary->proc~bc_phys proc~get_igslice->proc~mpistop proc~sync_positions_host sync_positions_host proc~getintbc->proc~sync_positions_host proc~rank_keys rank_keys proc~layout_runs->proc~rank_keys proc~partcoord_to_cartesian partcoord_to_cartesian proc~output_particle->proc~partcoord_to_cartesian specialbound_usr specialbound_usr proc~bc_phys->specialbound_usr

Called by

proc~~advance~~CalledByGraph proc~advance advance proc~timeintegration timeintegration proc~timeintegration->proc~advance proc~main main proc~main->proc~timeintegration program~agile agile program~agile->proc~main

Source Code

  subroutine advance(iit)
    use mod_global_parameters
    use mod_particles, only: handle_particles
    use mod_source, only: add_split_source

    integer, intent(in) :: iit

    integer :: iigrid, igrid, idimsplit
    
    ! split source addition
    call add_split_source(prior=.true.)

    if (dimsplit) then
       if ((iit/2)*2==iit .or. typedimsplit=='xy') then
          ! do the sweeps in order of increasing idim,
          do idimsplit=1,ndim
             call advect(idimsplit,idimsplit)
          end do
       else
          ! If the parity of "iit" is odd and typedimsplit=xyyx,
          ! do sweeps backwards
          do idimsplit=ndim,1,-1
             call advect(idimsplit,idimsplit)
          end do
       end if
    else
       ! Add fluxes from all directions at once
       call advect(1,ndim)
    end if

    ! split source addition
    call add_split_source(prior=.false.)

    if(use_particles) call handle_particles

    ! do iigrid=1,igridstail; igrid=igrids(iigrid);
    !    
    ! end do
    
  end subroutine advance