The evolution set-up in the attached code results in an attempt to access past the last entry in the BinarySystem::__above_lock_fractions[NO_DERIV] attribute when breaking a lock.
test_evol.cpp.txt
A gdb backtrace is as follows:
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1 0x00007ffff63e0801 in __GI_abort () at abort.c:79
#2 0x00007ffff63d039a in __assert_fail_base (fmt=0x7ffff65577d8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x555555907168 "index >= 0 && index < size()",
file=file@entry=0x555555907108 "/home/kpenev/projects/git/poet/poet_src/third_party_libs/Eigen/Eigen/src/Core/DenseCoeffsBase.h", line=line@entry=378,
function=function@entry=0x555555914a20 <Eigen::DenseCoeffsBase<Eigen::Matrix<double, -1, 1, 0, -1, 1>, 1>::operator[](long)::__PRETTY_FUNCTION__> "Eigen::DenseCoeffsBase<Derived, 1>::Scalar& Eigen::DenseCoeffsBase<Derived, 1>::operator[](Eigen::DenseCoeffsBase<Derived, 1>::Index) [with Derived = Eigen::Matrix<double, -1, 1>; Eigen::DenseCoeffsBa"...) at assert.c:92
#3 0x00007ffff63d0412 in __GI___assert_fail (assertion=0x555555907168 "index >= 0 && index < size()", file=0x555555907108 "/home/kpenev/projects/git/poet/poet_src/third_party_libs/Eigen/Eigen/src/Core/DenseCoeffsBase.h", line=378,
function=0x555555914a20 <Eigen::DenseCoeffsBase<Eigen::Matrix<double, -1, 1, 0, -1, 1>, 1>::operator[](long)::__PRETTY_FUNCTION__> "Eigen::DenseCoeffsBase<Derived, 1>::Scalar& Eigen::DenseCoeffsBase<Derived, 1>::operator[](Eigen::DenseCoeffsBase<Derived, 1>::Index) [with Derived = Eigen::Matrix<double, -1, 1>; Eigen::DenseCoeffsBa"...) at assert.c:101
#4 0x000055555586d234 in Eigen::DenseCoeffsBase<Eigen::Matrix<double, -1, 1, 0, -1, 1>, 1>::operator[] (this=0x555558f1b070, index=1) at /home/kpenev/projects/git/poet/poet_src/third_party_libs/Eigen/Eigen/src/Core/DenseCoeffsBase.h:378
#5 0x0000555555869e9a in Evolve::BinarySystem::above_lock_fraction (this=0x555555bdb618, locked_zone_index=1, entry=Evolve::Dissipation::NO_DERIV, deriv_zone_index=0, secondary_radius=false) at /home/kpenev/projects/git/poet/poet_src/Evolve/BinarySystem.cpp:2065
#6 0x000055555585dbb0 in Evolve::BreakLockCondition::operator() (this=0x5555590149b0, evol_mode=Core::BINARY, orbit=..., derivatives=..., stop_deriv=...) at /home/kpenev/projects/git/poet/poet_src/Evolve/BreakLockCondition.cpp:27
#7 0x0000555555854238 in Evolve::CombinedStoppingCondition::add_subcondition_values (this=0x555558ffba30, cond=0x5555590149b0, evol_mode=Core::BINARY, orbit=..., derivatives=..., first_index=@0x7fffffffcfe0: 0, values=..., derivs=...)
at /home/kpenev/projects/git/poet/poet_src/Evolve/CombinedStoppingCondition.cpp:27
#8 0x000055555585473a in Evolve::CombinedStoppingCondition::operator() (this=0x555558ffba30, evol_mode=Core::BINARY, orbit=..., derivatives=..., stop_deriv=...) at /home/kpenev/projects/git/poet/poet_src/Evolve/CombinedStoppingCondition.cpp:102
#9 0x0000555555854238 in Evolve::CombinedStoppingCondition::add_subcondition_values (this=0x55555900b860, cond=0x555558ffba30, evol_mode=Core::BINARY, orbit=..., derivatives=..., first_index=@0x7fffffffd110: 0, values=..., derivs=...)
at /home/kpenev/projects/git/poet/poet_src/Evolve/CombinedStoppingCondition.cpp:27
#10 0x000055555585473a in Evolve::CombinedStoppingCondition::operator() (this=0x55555900b860, evol_mode=Core::BINARY, orbit=..., derivatives=..., stop_deriv=...) at /home/kpenev/projects/git/poet/poet_src/Evolve/CombinedStoppingCondition.cpp:102
#11 0x0000555555854238 in Evolve::CombinedStoppingCondition::add_subcondition_values (this=0x555559014760, cond=0x55555900b860, evol_mode=Core::BINARY, orbit=..., derivatives=..., first_index=@0x7fffffffd240: 1, values=..., derivs=...)
at /home/kpenev/projects/git/poet/poet_src/Evolve/CombinedStoppingCondition.cpp:27
#12 0x000055555585473a in Evolve::CombinedStoppingCondition::operator() (this=0x555559014760, evol_mode=Core::BINARY, orbit=..., derivatives=..., stop_deriv=...) at /home/kpenev/projects/git/poet/poet_src/Evolve/CombinedStoppingCondition.cpp:102
#13 0x0000555555854238 in Evolve::CombinedStoppingCondition::add_subcondition_values (this=0x555558fff090, cond=0x555559014760, evol_mode=Core::BINARY, orbit=..., derivatives=..., first_index=@0x7fffffffd370: 4, values=..., derivs=...)
at /home/kpenev/projects/git/poet/poet_src/Evolve/CombinedStoppingCondition.cpp:27
#14 0x000055555585473a in Evolve::CombinedStoppingCondition::operator() (this=0x555558fff090, evol_mode=Core::BINARY, orbit=..., derivatives=..., stop_deriv=...) at /home/kpenev/projects/git/poet/poet_src/Evolve/CombinedStoppingCondition.cpp:102
#15 0x000055555584dfb3 in Evolve::OrbitSolver::update_stop_condition_history (this=0x555558f10830, age=0.025047166386331598, orbit=..., derivatives=..., expansion_errors=..., evolution_mode=Core::BINARY, stop_reason=Evolve::NO_STOP, ignore_e_order_decrease=false)
at /home/kpenev/projects/git/poet/poet_src/Evolve/OrbitSolver.cpp:741
#16 0x000055555584f636 in Evolve::OrbitSolver::evolve_until (this=0x555558f10830, system=..., max_age=@0x7fffffffd870: 5.5912146016389963, orbit=..., stop_reason=@0x7fffffffd858: Evolve::NO_STOP, max_step=0.001, evolution_mode=Core::BINARY) at /home/kpenev/projects/git/poet/poet_src/Evolve/OrbitSolver.cpp:1025
#17 0x0000555555850d27 in Evolve::OrbitSolver::operator() (this=0x555558f10830, system=..., max_step=0.001, required_ages=empty std::__cxx11::list) at /home/kpenev/projects/git/poet/poet_src/Evolve/OrbitSolver.cpp:1372
#18 0x000055555583d5f0 in evolve_system (system=0x555555bdb5e0, final_age=6.2999999999999998, max_time_step=0.001, precision=9.9999999999999995e-07, required_ages=0x0, num_required_ages=0, print_progress=true) at /home/kpenev/projects/git/poet/poet_src/Evolve/CInterface.cpp:209
#19 0x000055555583b770 in main () at test_evol.cpp:282
The evolution set-up in the attached code results in an attempt to access past the last entry in the
BinarySystem::__above_lock_fractions[NO_DERIV]
attribute when breaking a lock. test_evol.cpp.txtA gdb backtrace is as follows: