1#ifndef MPI_DOMAIN_DECOMPOSITION_H
2#define MPI_DOMAIN_DECOMPOSITION_H
26 number_of_facets = sim->m_simulation_config.getIntParameters(
"number_of_facets");
30 std::cerr << static_cast<std::string>(
"[MpiDomainDecomposition]: ")
31 <<
static_cast<std::string
>(
e.what()) <<
'\n';
32 throw BadInput(
static_cast<std::string
>(
"[MpiDomainDecomposition]: ")
33 +
static_cast<std::string
>(
e.what()));
35 sim->m_simulation_config.forceValueOverwrite(
"global_number_of_facets",
43 sim->number_of_larger_procs =
48 sim->other_color_exists = sim->number_of_larger_procs > 0 ? 1 : 0;
51 if (sim->my_rank < sim->number_of_larger_procs)
53 sim->m_simulation_config.forceValueOverwrite(
54 "number_of_facets", std::to_string(sim->min_number_facets_per_proc + 1));
55 sim->m_simulation_config.forceValueOverwrite(
56 "global_starting_facet_number",
57 std::to_string(sim->my_rank * (sim->min_number_facets_per_proc + 1)));
64 sim->m_simulation_config.forceValueOverwrite(
65 "number_of_facets", std::to_string(sim->min_number_facets_per_proc));
66 sim->m_simulation_config.forceValueOverwrite(
67 "global_starting_facet_number",
68 std::to_string(sim->number_of_larger_procs * (sim->min_number_facets_per_proc + 1)
69 + (sim->my_rank - sim->number_of_larger_procs)
70 * sim->min_number_facets_per_proc));
76 if (sim->other_color_exists == 0)
79 sim->my_sub_rank = -1;
80 sim->remote_leader = -1;
81 sim->my_inter_rank = -1;
93 if (sim->my_color == 0)
95 sim->remote_leader = sim->sub_size;
99 sim->remote_leader = 0;
103 if (sim->world_size > 1)
Concrete implementation of a matrix class representing a Compressed Sparse Rows (CSR) matrix....
Definition CsrMatrix.h:37