The grade_dims add up to nDims condition is only checked in the settings at construction. This may lead to incongruent settings, provided the grade_dims is altered after construction.
This error condition is checked twice: once in settings and once in _pypolychord.cpp.
It may be prudent to either expand the error checking to be done early, at construction of the settings object, or to move it entirely into the run_polychord method (see #47 ).