diff --git a/cpp/memilio/mobility/metapopulation_mobility_instant.h b/cpp/memilio/mobility/metapopulation_mobility_instant.h index 4a01e1392e..ccbb7a3fce 100644 --- a/cpp/memilio/mobility/metapopulation_mobility_instant.h +++ b/cpp/memilio/mobility/metapopulation_mobility_instant.h @@ -601,7 +601,8 @@ void mio::MobilityEdge::apply_mobility(FP t, FP dt, SimulationNode& for (Eigen::Index i = m_return_times.get_num_time_points() - 1; i >= 0; --i) { if (m_return_times.get_time(i) <= t) { auto v0 = find_value_reverse(node_to.get_result(), m_mobile_population.get_time(i), 1e-10, 1e-10); - assert(v0 != node_to.get_result().rend() && "unexpected error."); + if (v0 == node_to.get_result().rend()) + continue; calculate_mobility_returns(m_mobile_population[i], node_to.get_simulation(), *v0, m_mobile_population.get_time(i), dt); @@ -634,8 +635,7 @@ void mio::MobilityEdge::apply_mobility(FP t, FP dt, SimulationNode& } } - if (!m_return_mobile_population && - (m_parameters.get_coefficients().get_matrix_at(SimulationTime(t)).array() > 0.0).any()) { + if (!m_return_mobile_population) { //normal daily mobility m_mobile_population.add_time_point( t, (node_from.get_last_state().array() *