dragonfruit.vasp.vasp_default_errors module
Module for handling VASP errors and autmating possible fixes.
Credit to Felix for several of these.
- class dragonfruit.vasp.vasp_default_errors.Fexcp(*_args, **_kwargs)
Bases:
dragonfruit.vasp.vasp_default_errors.SimpleAdjustment- ADJUSTMENT = {'algo': 'all'}
- ERROR_STRING = 'ERROR FEXCP: supplied Exchange'
- NAME = 'fexcp'
- TYPE_ID = UUID('e8ff0772-2727-44a0-858a-efaad5990367')
- class dragonfruit.vasp.vasp_default_errors.Invgrp(*_args, **_kwargs)
Bases:
dragonfruit.vasp.vasp_default_errors.SimpleAdjustmentHandles a single error
- ADJUSTMENT = {'symprec': 1e-08}
- ERROR_STRING = 'inverse of rotation matrix was not found (increase SYMPREC)'
- NAME = 'invgrp'
- TYPE_ID = UUID('86ba6293-8f07-4207-a834-ca43315f227e')
- class dragonfruit.vasp.vasp_default_errors.MaxRestarts(*_args, **_kwargs)
Bases:
dragonfruit.vasp.vasp_errors.ErrorHandlerIf no one else deals with the error then this handler attempts a simple restart changing no settings. If this happens more than max_count times in a task then it will order a termination.
- ATTRS = ('count', 'max_count', 'raises')
- NAME = 'max-restarts'
- TYPE_ID = UUID('108aee5f-a67e-4648-91bf-a65f6f56fcca')
- raises = True
- class dragonfruit.vasp.vasp_default_errors.NotHermitian(*_args, **_kwargs)
Bases:
dragonfruit.vasp.vasp_default_errors.SimpleAdjustmentHandles a single error
- ADJUSTMENT = {'prec': 'accurate'}
- ERROR_STRING = 'WARNING: Sub-Space-Matrix is not hermitian in DAV'
- NAME = 'not-hermitian'
- TYPE_ID = UUID('e7a5acb2-08b8-41cd-b5d1-b49c2caa25c7')
- class dragonfruit.vasp.vasp_default_errors.Posmap(*_args, **_kwargs)
Bases:
dragonfruit.vasp.vasp_default_errors.SimpleAdjustment- ADJUSTMENT = {'symprec': 1e-08}
- ERROR_STRING = 'POSMAP internal error: symmetry equivalent atom not found'
- NAME = 'posmap'
- TYPE_ID = UUID('22bad6b1-6d9a-4790-bc05-7ff2cd201f35')
- class dragonfruit.vasp.vasp_default_errors.Pssyevx(*_args, **_kwargs)
Bases:
dragonfruit.vasp.vasp_default_errors.SimpleAdjustmentHandles a single error
- ADJUSTMENT = {'algo': 'normal'}
- ERROR_STRING = 'ERROR in subspace rotation PSSYEVX'
- NAME = 'pssyevx'
- TYPE_ID = UUID('cf961d8f-eac1-4215-9a0f-3ea8ff95e525')
- class dragonfruit.vasp.vasp_default_errors.PssyevxParallelization(*_args, **_kwargs)
Bases:
dragonfruit.vasp.vasp_default_errors.SimpleAdjustmentAlternate fix for PSSYEVX error, in case it’s a parallelization issue
- ADJUSTMENT = {'ncore': 1, 'npar': None}
- ERROR_STRING = 'ERROR in subspace rotation PSSYEVX'
- NAME = 'pssyevx-parallelization'
- TYPE_ID = UUID('b18d9736-a864-4e93-beb1-7bb272932ae9')
- class dragonfruit.vasp.vasp_default_errors.Pzstein(*_args, **_kwargs)
Bases:
dragonfruit.vasp.vasp_default_errors.SimpleAdjustment- ADJUSTMENT = {'algo': 'all'}
- ERROR_STRING = 'PZSTEIN parameter number'
- NAME = 'pzstein'
- TYPE_ID = UUID('1de05f4e-7ff9-41c3-b4b0-68a9e09be7cc')
- class dragonfruit.vasp.vasp_default_errors.Rhosyg(*_args, **_kwargs)
Bases:
dragonfruit.vasp.vasp_default_errors.SimpleAdjustment- ADJUSTMENT = {'isym': 0, 'symprec': 0.0001}
- ERROR_STRING = 'RHOSYG internal error: stars are not distinct'
- NAME = 'rhosyg'
- TYPE_ID = UUID('25b9f6d4-f213-43b8-abb4-d018a0ab86a8')
- class dragonfruit.vasp.vasp_default_errors.Sgrcon(*_args, **_kwargs)
Bases:
dragonfruit.vasp.vasp_default_errors.SimpleAdjustment- ADJUSTMENT = {'ediff': 1e-07, 'isym': 0, 'symprec': 1e-08}
- ERROR_STRING = 'internal error in subroutine SGRCON'
- NAME = 'sgrcon'
- TYPE_ID = UUID('c3ee2a32-6c51-4685-9f2b-6e979c4c4e8d')
- class dragonfruit.vasp.vasp_default_errors.SimpleAdjustment(*_args, **_kwargs)
Bases:
dragonfruit.vasp.vasp_errors.ErrorHandler- ADJUSTMENT = None
- ERROR_STRING = None
- NAME = None
- TEMPORARY = False
- class dragonfruit.vasp.vasp_default_errors.SlurmTimedOut(*_args, **_kwargs)
Bases:
dragonfruit.vasp.vasp_errors.ErrorHandlerHandle cases where slurm killed the job because it exceeded the allowed time
- NAME = 'slurm-timed-out'
- TYPE_ID = UUID('db59fe0c-460d-4c46-aa39-ea4ea97c565c')
- class dragonfruit.vasp.vasp_default_errors.WavecarUnusable(*_args, **_kwargs)
Bases:
dragonfruit.vasp.vasp_default_errors.SimpleAdjustmentIf the wavecar is unusable from the previous run then temporarily disable it’s use for the next run only
- ADJUSTMENT = {'istart': 0}
- ERROR_STRING = 'ERROR: while reading WAVECAR, plane wave coefficients changed'
- NAME = 'wavecar_sucks'
- TEMPORARY = True
- TYPE_ID = UUID('ba1a5e64-b140-4fe3-9920-a2b7a5f11d33')
- class dragonfruit.vasp.vasp_default_errors.Zbrent(*_args, **_kwargs)
Bases:
dragonfruit.vasp.vasp_default_errors.SimpleAdjustment- ADJUSTMENT = {'algo': 'all', 'ediff': 1e-06}
- ERROR_STRING = 'ZBRENT: fatal error'
- NAME = 'zbrent'
- TYPE_ID = UUID('ed5edfad-3924-404e-8914-7ff9a970b5d9')
- class dragonfruit.vasp.vasp_default_errors.ZbrentAlternative(*_args, **_kwargs)
Bases:
dragonfruit.vasp.vasp_errors.ErrorHandlerZbrent error can cause VASP to have the last atoms object be the same as the first. Instead, we use the second-to-last atoms object.
We use a max count, to prevent any possible deadlocks, so we cannot get stuck in this error handler.
- ATTRS = ('count', 'max_count')
- ERROR_STRING = 'ZBRENT: fatal error'
- NAME = 'zbrent_alternative'
- TYPE_ID = UUID('5c79a739-a052-4455-86f9-f69fe207c7bd')
- count = 0
- max_count = 3
- dragonfruit.vasp.vasp_default_errors.get_default_handlers() Sequence[typing.Tuple[<class 'dragonfruit.vasp.vasp_errors.ErrorHandler'>, int]]