ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
|
#include "config/config.hpp"
#include "communication.hpp"
#include "cuda/init.hpp"
#include "errorhandling.hpp"
#include <walberla_bridge/walberla_init.hpp>
#include <utils/Vector.hpp>
#include <utils/mpi/cart_comm.hpp>
#include <boost/mpi.hpp>
#include <boost/mpi/communicator.hpp>
#include <boost/mpi/environment.hpp>
#include <mpi.h>
#include <cassert>
#include <memory>
#include <tuple>
#include <utility>
Go to the source code of this file.
Namespaces | |
namespace | Communication |
Functions | |
MpiCallbacks & | Communication::mpiCallbacks () |
Returns a reference to the global callback class instance. | |
std::shared_ptr< MpiCallbacks > | Communication::mpiCallbacksHandle () |
void | Communication::init (std::shared_ptr< boost::mpi::environment > mpi_env) |
Init globals for communication. | |
void | Communication::deinit () |
std::shared_ptr< boost::mpi::environment > | mpi_init (int argc, char **argv) |
Initialize MPI. | |
void | mpi_loop () |
Process requests from head node. | |
Variables | |
boost::mpi::communicator | comm_cart |
The communicator. | |
Communicator | communicator {} |
static std::shared_ptr< MpiCallbacks > | Communication::m_callbacks |
int | this_node = -1 |
The number of this node. | |
std::shared_ptr< boost::mpi::environment > mpi_init | ( | int | argc, |
char ** | argv | ||
) |
Initialize MPI.
Definition at line 120 of file communication.cpp.
Referenced by MpiContainerUnitTest::MpiContainerUnitTest().
void mpi_loop | ( | ) |
Process requests from head node.
Worker nodes main loop.
Definition at line 124 of file communication.cpp.
References Communication::MpiCallbacks::loop(), and this_node.
boost::mpi::communicator comm_cart |
The communicator.
Definition at line 47 of file communication.cpp.
Referenced by ComFixed::apply(), benchmark_integration_step(), calc_mu_max(), calc_re(), calc_rg(), calc_rh(), calc_slab_dipole(), Galilei::calc_system_cms_position(), Galilei::calc_system_cms_velocity(), calc_total_charge(), System::System::calculate_forces(), center_of_mass(), Coulomb::check_charge_neutrality(), ScriptInterface::Analysis::check_topology(), correct_position_shake(), correct_velocity_shake(), DipolarP3M::count_magnetic_particles(), count_magnetic_particles(), dipolar_energy_correction(), dipolar_force_corrections(), distribute(), gather_global_collision_queue(), BondBreakage::gather_global_queue(), gather_particle_data(), gather_traits_for_types(), get_ibm_particle_position(), get_particle_data(), get_particle_ids_parallel(), get_random_p_id(), gyration_tensor(), handle_collisions(), GpuParticleData::has_compatible_device(), CoulombP3M::init(), DipolarP3M::init(), Communication::init(), init_type_map(), System::System::integrate(), System::System::integrate_with_signal_handler(), is_valid_position(), ICCStar::iteration(), GatherParticleTraits< T >::join(), CoulombP3M::long_range_kernel(), DipolarP3M::long_range_kernel(), CoulombP3M::long_range_pressure(), make_coulomb_scafacos(), make_dipolar_scafacos(), make_new_particle(), mindist(), modify_p3m_sums(), moment_of_inertia_matrix(), mpi_get_particles(), mpi_get_particles_local(), Observable_stat::mpi_reduce(), mpi_send_particle_data_local(), mpi_synchronize_max_seen_pid_local(), mpi_who_has_head(), mpi_who_has_local(), nbhood(), System::System::on_integration_start(), p3mgpu_k_space_error(), prefetch_particle_data(), propagate_vel_pos_sd(), rebuild_needed(), remove_particle(), ScriptInterface::System::rotate_system(), CellStructure::set_atom_decomposition(), CellStructure::set_hybrid_decomposition(), set_particle_pos(), CellStructure::set_regular_decomposition(), steepest_descent_step(), structure_factor(), synchronize_npt_state(), Constraints::ShapeBasedConstraint::total_force(), Constraints::ShapeBasedConstraint::total_normal_force(), CellStructure::update_ghosts_and_resort_particle(), System::System::update_used_propagations(), velocity_verlet_npt_finalize_p_inst(), velocity_verlet_npt_propagate_pos(), and System::System::veto_boxl_change().
Communicator communicator {} |
Definition at line 48 of file communication.cpp.
Referenced by ScriptInterface::CellSystem::CellSystem::CellSystem(), cuda_gather_gpus(), cuda_on_program_start(), ScriptInterface::walberla::LatticeWalberla::do_construct(), CoulombP3M::init(), DipolarP3M::init(), Communication::init(), System::System::maximal_cutoff(), and System::System::update_local_geo().
int this_node = -1 |
The number of this node.
Definition at line 69 of file communication.cpp.
Referenced by DipolarBarnesHutGpu::add_long_range_forces(), DipolarDirectSumGpu::add_long_range_forces(), CoulombP3MGPU::add_long_range_forces(), benchmark_integration_step(), build_particle_node_parallel(), System::System::calculate_forces(), Coulomb::check_charge_neutrality(), GpuParticleData::copy_forces_to_host(), CoulombMMM1DGpu::CoulombMMM1DGpu(), cuda_gather_gpus(), cuda_on_program_start(), dipolar_energy_correction(), DipolarLayerCorrection::energy_correction(), get_particle_data(), get_particle_node_parallel(), ghost_communicator(), GpuParticleData::has_compatible_device(), is_poststorable(), is_prefetchable(), is_recv_op(), is_send_op(), DipolarBarnesHutGpu::long_range_energy(), DipolarDirectSumGpu::long_range_energy(), CoulombP3M::long_range_kernel(), DipolarP3M::long_range_kernel(), make_new_particle(), mpi_get_particles(), mpi_loop(), mpi_who_has_head(), DipolarBarnesHutGpu::on_activation(), p3mgpu_k_space_error(), remove_particle(), set_particle_pos(), CoulombTuningAlgorithm::setup_logger(), DipolarTuningAlgorithm::setup_logger(), CoulombMMM1DGpu::tune(), velocity_verlet_npt_finalize_p_inst(), velocity_verlet_npt_propagate_pos(), and walberla_agrid_sanity_checks().