MFC
Exascale flow solver
Loading...
Searching...
No Matches
m_mpi_proxy.fpp.f90 File Reference

Contains module m_mpi_proxy. More...

Go to the source code of this file.

Modules

module  m_mpi_proxy
 MPI halo exchange, domain decomposition, and buffer packing/unpacking for the simulation solver.

Functions/Subroutines

subroutine m_mpi_proxy::s_initialize_mpi_proxy_module ()
 Initialize the MPI proxy module.
subroutine m_mpi_proxy::s_initialize_particles_mpi (lag_num_ts)
impure subroutine m_mpi_proxy::s_mpi_bcast_user_inputs ()
 Since only the processor with rank 0 reads and verifies the consistency of user inputs, these are initially not available to the other processors. Then, the purpose of this subroutine is to distribute the user inputs to the remaining processors in the communicator.
impure subroutine m_mpi_proxy::s_add_particles_to_transfer_list (nbub, pos, posprev)
 Adds particles to the transfer list for the MPI communication.
logical function f_crosses_boundary (particle_id, dir, loc, pos, posprev)
subroutine s_add_particle_to_direction (particle_id, dir_x, dir_y, dir_z)
impure subroutine m_mpi_proxy::s_mpi_sendrecv_particles (bub_r0, rmax_stats, rmin_stats, gas_mg, gas_betat, gas_betac, bub_dphidt, lag_id, gas_p, gas_mv, rad, rvel, pos, posprev, vel, scoord, drad, drvel, dgasp, dgasmv, dpos, dvel, lag_num_ts, nbubs, dest)
 Perform the MPI communication for lagrangian particles/bubbles.
integer function m_mpi_proxy::neighbor_tag (i, j, k)
 Return a unique tag for each neighbor based on its position relative to the current process.
subroutine m_mpi_proxy::s_wrap_particle_positions (pos, posprev, nbubs, dest)
impure subroutine m_mpi_proxy::s_mpi_send_random_number (phi_rn, num_freq)
 Broadcast random phase numbers from rank 0 to all MPI processes.
subroutine m_mpi_proxy::s_finalize_mpi_proxy_module ()
 Finalize the MPI proxy module.

Variables

integer, dimension(:), allocatable, private m_mpi_proxy::ib_buff_send
 IB marker send buffer for halo exchange.
integer, dimension(:), allocatable, private m_mpi_proxy::ib_buff_recv
 IB marker receive buffer for halo exchange.
integer m_mpi_proxy::i_halo_size
integer, dimension(-1:1,-1:1,-1:1) m_mpi_proxy::p_send_counts
integer, dimension(-1:1,-1:1,-1:1) m_mpi_proxy::p_recv_counts
integer, dimension(:,:,:,:), allocatable m_mpi_proxy::p_send_ids
character(len=1), dimension(:), allocatable m_mpi_proxy::p_send_buff
character(len=1), dimension(:), allocatable m_mpi_proxy::p_recv_buff
integer m_mpi_proxy::p_buff_size
integer m_mpi_proxy::p_var_size
integer, parameter m_mpi_proxy::max_neighbors = 27
integer, dimension(max_neighborsm_mpi_proxy::send_requests
integer, dimension(max_neighborsm_mpi_proxy::recv_requests
integer, dimension(max_neighborsm_mpi_proxy::recv_offsets
integer, dimension(max_neighbors, 3) m_mpi_proxy::neighbor_list
integer m_mpi_proxy::n_neighbors

Detailed Description

Contains module m_mpi_proxy.

Definition in file m_mpi_proxy.fpp.f90.

Function/Subroutine Documentation

◆ f_crosses_boundary()

logical function s_add_particles_to_transfer_list::f_crosses_boundary ( integer, intent(in) particle_id,
integer, intent(in) dir,
integer, intent(in) loc,
real(wp), dimension(:,:), intent(in) pos,
real(wp), dimension(:,:), intent(in), optional posprev )
private

Definition at line 1200 of file m_mpi_proxy.fpp.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ s_add_particle_to_direction()

subroutine s_add_particles_to_transfer_list::s_add_particle_to_direction ( integer, intent(in) particle_id,
integer, intent(in) dir_x,
integer, intent(in) dir_y,
integer, intent(in) dir_z )
private

Definition at line 1226 of file m_mpi_proxy.fpp.f90.

Here is the caller graph for this function: