Summary
In a simulation I was running I repeatedly ran, on some cores, into the TRIQS_RUNTIME_ERROR "ERROR in det_manip regenerate: Determinant is singular" at line 1164 of det_mainp.hpp. This was the combined effect of the expansion order being rather large (~100) and the magnitude of the elements being small (10^-3). It was simply fixed by rescaling beta and energy units in my simulation, but I wouldn't have realized that if I didn't patch the code to print the value of the determinant.
Motivation
The code correctly exits with error, but the information on the origin of the error could be more exhaustive
Implementation
I would suggest to, at least, print the value of the determinant in the error message. This would give the user a hint as to whether the error comes from numerical over/underflow or a more fundamental issue.
Summary
In a simulation I was running I repeatedly ran, on some cores, into the TRIQS_RUNTIME_ERROR "ERROR in det_manip regenerate: Determinant is singular" at line 1164 of det_mainp.hpp. This was the combined effect of the expansion order being rather large (~100) and the magnitude of the elements being small (10^-3). It was simply fixed by rescaling beta and energy units in my simulation, but I wouldn't have realized that if I didn't patch the code to print the value of the determinant.
Motivation
The code correctly exits with error, but the information on the origin of the error could be more exhaustive
Implementation
I would suggest to, at least, print the value of the determinant in the error message. This would give the user a hint as to whether the error comes from numerical over/underflow or a more fundamental issue.