Dear all,
I am having problems, that might be caused by the numerical precision of
the smatrix solvers.
I use the sign of the determinant of the reflection matrix [1] for the
topological classification of my system.
I calculate the reflection matrix with
smatrix = kwant.solvers.default.smatrix(syst, energy=0.0, params=params,
out_leads=[0], in_leads=[0])
In some cases the returned determinant is close to zero, but with the
wrong sign.
I am sure, that the sign is wrong, because it is sometimes -1, when the
system is definitely not topological.
In these cases, the sign changes to +1 when the parameters only slightly
change (+-0.005 t).
The code also works well for the most parts of the parameter space, i.e.
everywhere where the absolute value of the determinant is not small.
Is there any way to increase the precision of smatrix? It might just be
the result of some rounding / float precision.
Thanks,
Jannis
[1] https://journals.aps.org/prl/abstract/10.1103/PhysRevLett.106.057001