diff --git a/arc/scheduler.py b/arc/scheduler.py index 092fae4dcc..aec5576f73 100644 --- a/arc/scheduler.py +++ b/arc/scheduler.py @@ -953,9 +953,9 @@ def check_scan_job(self, label, job): # initial and final points differ by more than `inconsistency_az` kJ/mol. # seems like this rotor broke the conformer. Invalidate error_message = 'Rotor scan of {label} between pivots {pivots} is inconsistent by more' \ - ' than {inconsistency} kJ/mol between initial and final positions.' \ + ' than {incons_az} kJ/mol between initial and final positions.' \ ' Invalidating rotor.\nv_list[0] = {v0}, v_list[-1] = {vneg1}'.format( - label=label, pivots=job.pivots, inconsistency=inconsistency_az, + label=label, pivots=job.pivots, incons_az=inconsistency_az, v0=v_list[0], vneg1=v_list[-1]) logging.error(error_message) message += error_message + '; ' @@ -965,13 +965,13 @@ def check_scan_job(self, label, job): if not invalidate: v_last = v_list[-1] for v in v_list: - if abs(v - v_last) > inconsistency_ab: + if abs(v - v_last) > inconsistency_ab * max(v_list): # Two consecutive points on the scan differ by more than `inconsistency_ab` kJ/mol. # This is a serious inconsistency. Invalidate error_message = 'Rotor scan of {label} between pivots {pivots} is inconsistent by' \ - 'more than {inconsistency} kJ/mol between two consecutive points.' \ + 'more than {incons_ab} kJ/mol between two consecutive points.' \ ' Invalidating rotor.'.format(label=label, pivots=job.pivots, - inconsistency=inconsistency_ab) + incons_ab=inconsistency_ab * max(v_list)) logging.error(error_message) message += error_message + '; ' invalidate = True diff --git a/arc/settings.py b/arc/settings.py index c78249b254..97b7b94c11 100644 --- a/arc/settings.py +++ b/arc/settings.py @@ -92,7 +92,8 @@ rotor_scan_resolution = 8.0 # degrees. Default: 8.0 # rotor validation parameters -inconsistency_az = 5 # maximum allowed inconsistency (kJ/mol) between initial and final rotor scan points. Default: 5 -inconsistency_ab = 10 # maximum allowed inconsistency (kJ/mol) between consecutive points in the scan. Default: 10 -maximum_barrier = 40 # a rotor threshold (kJ/mol) above which the rotor is not considered. Default: 40 (~10 kcal/mol) -minimum_barrier = 0.5 # a rotor threshold (kJ/mol) below which it is considered a FreeRotor. Default: 0.5 kJ/mol +inconsistency_az = 5 # maximum allowed inconsistency (kJ/mol) between initial and final rotor scan points. Default: 5 +inconsistency_ab = 0.5 # maximum allowed inconsistency between consecutive points in the scan given as a fraction +# of the maximum scan energy. Default: 50% +maximum_barrier = 40 # a rotor threshold (kJ/mol) above which the rotor is not considered. Default: 40 (~10 kcal/mol) +minimum_barrier = 0.5 # a rotor threshold (kJ/mol) below which it is considered a FreeRotor. Default: 0.5 kJ/mol