From edb79af9d92631be24c6731b4811263fbad05e9e Mon Sep 17 00:00:00 2001 From: Shyue Ping Ong Date: Mon, 9 Oct 2023 07:40:38 -0700 Subject: [PATCH] Update dev docs --- custodian/__init__.py | 2 +- docs/custodian.ansible.actions.md | 206 ++-- docs/custodian.ansible.interpreter.md | 52 +- docs/custodian.ansible.md | 101 +- docs/custodian.cli.converge_geometry.md | 4 +- docs/custodian.cli.converge_kpoints.md | 6 +- docs/custodian.cli.cstdn.md | 6 +- docs/custodian.cli.md | 66 +- docs/custodian.cli.run_nwchem.md | 4 +- docs/custodian.cli.run_vasp.md | 8 +- docs/custodian.cp2k.interpreter.md | 22 +- docs/custodian.cp2k.jobs.md | 58 +- docs/custodian.cp2k.md | 133 +-- docs/custodian.cp2k.utils.md | 74 +- docs/custodian.cp2k.validators.md | 24 +- docs/custodian.custodian.md | 417 +++----- docs/custodian.feff.handlers.md | 16 +- docs/custodian.feff.interpreter.md | 29 +- docs/custodian.feff.jobs.md | 34 +- docs/custodian.feff.md | 61 +- docs/custodian.lobster.handlers.md | 30 +- docs/custodian.lobster.jobs.md | 34 +- docs/custodian.lobster.md | 59 +- docs/custodian.md | 1163 ++++++----------------- docs/custodian.nwchem.handlers.md | 17 +- docs/custodian.nwchem.jobs.md | 34 +- docs/custodian.nwchem.md | 45 +- docs/custodian.qchem.md | 31 +- docs/custodian.qchem.utils.md | 16 +- docs/custodian.utils.md | 17 +- docs/custodian.vasp.handlers.md | 326 +++---- docs/custodian.vasp.interpreter.md | 18 +- docs/custodian.vasp.jobs.md | 274 ++---- docs/custodian.vasp.md | 443 +++------ docs/custodian.vasp.validators.md | 32 +- setup.py | 2 +- 36 files changed, 1138 insertions(+), 2726 deletions(-) diff --git a/custodian/__init__.py b/custodian/__init__.py index 3d5d2987..c2082099 100644 --- a/custodian/__init__.py +++ b/custodian/__init__.py @@ -4,6 +4,6 @@ """ __author__ = "Shyue Ping Ong, William Davidson Richards, Stephen Dacek, Xiaohui Qu, Matthew Horton, Samuel M. Blau" -__version__ = "2023.7.22" +__version__ = "2023.10.9" from .custodian import Custodian diff --git a/docs/custodian.ansible.actions.md b/docs/custodian.ansible.actions.md index c3d0a1aa..32439756 100644 --- a/docs/custodian.ansible.actions.md +++ b/docs/custodian.ansible.actions.md @@ -10,249 +10,159 @@ This module defines various classes of supported actions. All actions are implemented as static methods, but are defined using classes (as opposed to modules) so that a set of well-defined actions can be namespaced easily. +## *class* custodian.ansible.actions.DictActions() -### _class_ custodian.ansible.actions.DictActions() Bases: `object` Class to implement the supported mongo-like modifications on a dict. Supported keywords include the following Mongo-based keywords, with the usual meanings (refer to Mongo documentation for information): -> _inc -> _set -> _unset -> _push -> _push_all -> _add_to_set (but _each is not supported) -> _pop -> _pull -> _pull_all -> _rename +> \_inc +> \_set +> \_unset +> \_push +> \_push_all +> \_add_to_set (but \_each is not supported) +> \_pop +> \_pull +> \_pull_all +> \_rename However, note that “_set” does not support modification of nested dicts using the mongo {“a.b”:1} notation. This is because mongo does not allow keys with “.” to be inserted. Instead, nested dict modification is supported using a special “->” keyword, e.g. {“a->b”: 1} +### *static* add_to_set(input_dict, settings) -#### _static_ add_to_set(input_dict, settings) Add to set using MongoDB syntax. - * **Parameters** + * **input_dict** (*dict*) – The input dictionary to be modified. + * **settings** (*dict*) – The specification of the modification to be made. +### *static* inc(input_dict, settings) - * **input_dict** (*dict*) – The input dictionary to be modified. - - - * **settings** (*dict*) – The specification of the modification to be made. - - - -#### _static_ inc(input_dict, settings) Increment a value using MongdoDB syntax. - * **Parameters** + * **input_dict** (*dict*) – The input dictionary to be modified. + * **settings** (*dict*) – The specification of the modification to be made. +### *static* pop(input_dict, settings) - * **input_dict** (*dict*) – The input dictionary to be modified. - - - * **settings** (*dict*) – The specification of the modification to be made. - - - -#### _static_ pop(input_dict, settings) Pop item from a list using MongoDB syntax. - * **Parameters** + * **input_dict** (*dict*) – The input dictionary to be modified. + * **settings** (*dict*) – The specification of the modification to be made. +### *static* pull(input_dict, settings) - * **input_dict** (*dict*) – The input dictionary to be modified. - - - * **settings** (*dict*) – The specification of the modification to be made. - - - -#### _static_ pull(input_dict, settings) Pull an item using MongoDB syntax. - * **Parameters** + * **input_dict** (*dict*) – The input dictionary to be modified. + * **settings** (*dict*) – The specification of the modification to be made. +### *static* pull_all(input_dict, settings) - * **input_dict** (*dict*) – The input dictionary to be modified. - - - * **settings** (*dict*) – The specification of the modification to be made. - - - -#### _static_ pull_all(input_dict, settings) Pull multiple items to a list using MongoDB syntax. - * **Parameters** + * **input_dict** (*dict*) – The input dictionary to be modified. + * **settings** (*dict*) – The specification of the modification to be made. +### *static* push(input_dict, settings) - * **input_dict** (*dict*) – The input dictionary to be modified. - - - * **settings** (*dict*) – The specification of the modification to be made. - - - -#### _static_ push(input_dict, settings) Push to a list using MongoDB syntax. - * **Parameters** + * **input_dict** (*dict*) – The input dictionary to be modified. + * **settings** (*dict*) – The specification of the modification to be made. +### *static* push_all(input_dict, settings) - * **input_dict** (*dict*) – The input dictionary to be modified. - - - * **settings** (*dict*) – The specification of the modification to be made. - - - -#### _static_ push_all(input_dict, settings) Push multiple items to a list using MongoDB syntax. - * **Parameters** + * **input_dict** (*dict*) – The input dictionary to be modified. + * **settings** (*dict*) – The specification of the modification to be made. +### *static* rename(input_dict, settings) - * **input_dict** (*dict*) – The input dictionary to be modified. - - - * **settings** (*dict*) – The specification of the modification to be made. - - - -#### _static_ rename(input_dict, settings) Rename a key using MongoDB syntax. - * **Parameters** + * **input_dict** (*dict*) – The input dictionary to be modified. + * **settings** (*dict*) – The specification of the modification to be made. +### *static* set(input_dict, settings) - * **input_dict** (*dict*) – The input dictionary to be modified. - - - * **settings** (*dict*) – The specification of the modification to be made. - - - -#### _static_ set(input_dict, settings) Sets a value using MongoDB syntax. - * **Parameters** + * **input_dict** (*dict*) – The input dictionary to be modified. + * **settings** (*dict*) – The specification of the modification to be made. +### *static* unset(input_dict, settings) - * **input_dict** (*dict*) – The input dictionary to be modified. - - - * **settings** (*dict*) – The specification of the modification to be made. - - - -#### _static_ unset(input_dict, settings) Unsets a value using MongoDB syntax. - * **Parameters** + * **input_dict** (*dict*) – The input dictionary to be modified. + * **settings** (*dict*) – The specification of the modification to be made. +## *class* custodian.ansible.actions.FileActions() - * **input_dict** (*dict*) – The input dictionary to be modified. - - - * **settings** (*dict*) – The specification of the modification to be made. - - - -### _class_ custodian.ansible.actions.FileActions() Bases: `object` Class of supported file actions. For FileActions, the modder class takes in a filename as a string. The filename should preferably be a full path to avoid ambiguity. +### *static* file_copy(filename, settings) -#### _static_ file_copy(filename, settings) Copies a file. {‘_file_copy’: {‘dest’: ‘new_file_name’}} - * **Parameters** + * **filename** (*str*) – Filename. + * **settings** (*dict*) – Must be {“dest”: path of new file} +### *static* file_create(filename, settings) - * **filename** (*str*) – Filename. - - - * **settings** (*dict*) – Must be {“dest”: path of new file} - - - -#### _static_ file_create(filename, settings) Creates a file. - * **Parameters** + * **filename** (*str*) – Filename. + * **settings** (*dict*) – Must be {“content”: actual_content} +### *static* file_delete(filename, settings) - * **filename** (*str*) – Filename. - - - * **settings** (*dict*) – Must be {“content”: actual_content} - - - -#### _static_ file_delete(filename, settings) Deletes a file. {‘_file_delete’: {‘mode’: “actual”}} - * **Parameters** - - - * **filename** (*str*) – Filename. - - - * **settings** (*dict*) – Must be {“mode”: actual/simulated}. Simulated + * **filename** (*str*) – Filename. + * **settings** (*dict*) – Must be {“mode”: actual/simulated}. Simulated mode only prints the action without performing it. +### *static* file_modify(filename, settings) - -#### _static_ file_modify(filename, settings) Modifies file access - * **Parameters** + * **filename** (*str*) – Filename. + * **settings** (*dict*) – Can be “mode” or “owners” +### *static* file_move(filename, settings) - * **filename** (*str*) – Filename. - - - * **settings** (*dict*) – Can be “mode” or “owners” - - - -#### _static_ file_move(filename, settings) Moves a file. {‘_file_move’: {‘dest’: ‘new_file_name’}} - * **Parameters** + * **filename** (*str*) – Filename. + * **settings** (*dict*) – Must be {“dest”: path of new file} +## custodian.ansible.actions.get_nested_dict(input_dict, key) - * **filename** (*str*) – Filename. - - - * **settings** (*dict*) – Must be {“dest”: path of new file} - - - -### custodian.ansible.actions.get_nested_dict(input_dict, key) Helper function to interpret a nested dict input. \ No newline at end of file diff --git a/docs/custodian.ansible.interpreter.md b/docs/custodian.ansible.interpreter.md index 1a50e3d5..3a6bf286 100644 --- a/docs/custodian.ansible.interpreter.md +++ b/docs/custodian.ansible.interpreter.md @@ -9,8 +9,8 @@ nav_exclude: true This module implements a Modder class that performs modifications on objects using support actions. +## *class* custodian.ansible.interpreter.Modder(actions=None, strict=True) -### _class_ custodian.ansible.interpreter.Modder(actions=None, strict=True) Bases: `object` Class to modify a dict/file/any object using a mongo-like language. @@ -23,61 +23,45 @@ to the action classes on what the actions do. Action classes are in pymatpro.ansible.actions. Examples: ->>> modder = Modder() ->>> d = {“Hello”: “World”} ->>> mod = {‘_set’: {‘Hello’:’Universe’, ‘Bye’: ‘World’}} ->>> modder.modify(mod, d) ->>> d[‘Bye’] -‘World’ ->>> d[‘Hello’] -‘Universe’ -Initializes a Modder from a list of supported actions. +> > > modder = Modder() +> > > d = {“Hello”: “World”} +> > > mod = {‘_set’: {‘Hello’:’Universe’, ‘Bye’: ‘World’}} +> > > modder.modify(mod, d) +> > > d[‘Bye’] +> > > ‘World’ +> > > d[‘Hello’] +> > > ‘Universe’ +Initializes a Modder from a list of supported actions. * **Parameters** - - - * **actions** (*[**Action**]*) – A sequence of supported actions. See + * **actions** (*[**Action**]*) – A sequence of supported actions. See [`custodian.ansible.actions`](custodian.ansible.actions.md#module-custodian.ansible.actions). Default is None, which means only DictActions are supported. - - - * **strict** (*bool*) – Indicating whether to use strict mode. In non-strict + * **strict** (*bool*) – Indicating whether to use strict mode. In non-strict mode, unsupported actions are simply ignored without any errors raised. In strict mode, if an unsupported action is supplied, a ValueError is raised. Defaults to True. +### modify(modification, obj) - -#### modify(modification, obj) Note that modify makes actual in-place modifications. It does not return a copy. - * **Parameters** - - - * **modification** (*dict*) – Modification must be {action_keyword : + * **modification** (*dict*) – Modification must be {action_keyword : settings}. E.g., {‘_set’: {‘Hello’:’Universe’, ‘Bye’: ‘World’}} - - - * **obj** (*dict/str/object*) – Object to modify depending on actions. For + * **obj** (*dict/str/object*) – Object to modify depending on actions. For example, for DictActions, obj will be a dict to be modified. For FileActions, obj will be a string with a full pathname to a file. +### modify_object(modification, obj) - -#### modify_object(modification, obj) Modify an object that supports pymatgen’s as_dict() and from_dict API. - * **Parameters** - - - * **modification** (*dict*) – Modification must be {action_keyword : + * **modification** (*dict*) – Modification must be {action_keyword : settings}. E.g., {‘_set’: {‘Hello’:’Universe’, ‘Bye’: ‘World’}} - - - * **obj** (*object*) – Object to modify \ No newline at end of file + * **obj** (*object*) – Object to modify \ No newline at end of file diff --git a/docs/custodian.ansible.md b/docs/custodian.ansible.md index 51e429f2..b5f33a25 100644 --- a/docs/custodian.ansible.md +++ b/docs/custodian.ansible.md @@ -17,81 +17,30 @@ stored at each step). ## Subpackages - -* [custodian.ansible.tests package](custodian.ansible.tests.md) - - - - - * [custodian.ansible.tests.test_interpreter module](custodian.ansible.tests.test_interpreter.md) - - - - +* [custodian.ansible.tests package]() + ```none + * [custodian.ansible.tests.test_interpreter module](custodian.ansible.tests.test_interpreter.md) + ``` * [custodian.ansible.actions module](custodian.ansible.actions.md) - - - * [`DictActions`](custodian.ansible.actions.md#custodian.ansible.actions.DictActions) - - - * [`DictActions.add_to_set()`](custodian.ansible.actions.md#custodian.ansible.actions.DictActions.add_to_set) - - - * [`DictActions.inc()`](custodian.ansible.actions.md#custodian.ansible.actions.DictActions.inc) - - - * [`DictActions.pop()`](custodian.ansible.actions.md#custodian.ansible.actions.DictActions.pop) - - - * [`DictActions.pull()`](custodian.ansible.actions.md#custodian.ansible.actions.DictActions.pull) - - - * [`DictActions.pull_all()`](custodian.ansible.actions.md#custodian.ansible.actions.DictActions.pull_all) - - - * [`DictActions.push()`](custodian.ansible.actions.md#custodian.ansible.actions.DictActions.push) - - - * [`DictActions.push_all()`](custodian.ansible.actions.md#custodian.ansible.actions.DictActions.push_all) - - - * [`DictActions.rename()`](custodian.ansible.actions.md#custodian.ansible.actions.DictActions.rename) - - - * [`DictActions.set()`](custodian.ansible.actions.md#custodian.ansible.actions.DictActions.set) - - - * [`DictActions.unset()`](custodian.ansible.actions.md#custodian.ansible.actions.DictActions.unset) - - - * [`FileActions`](custodian.ansible.actions.md#custodian.ansible.actions.FileActions) - - - * [`FileActions.file_copy()`](custodian.ansible.actions.md#custodian.ansible.actions.FileActions.file_copy) - - - * [`FileActions.file_create()`](custodian.ansible.actions.md#custodian.ansible.actions.FileActions.file_create) - - - * [`FileActions.file_delete()`](custodian.ansible.actions.md#custodian.ansible.actions.FileActions.file_delete) - - - * [`FileActions.file_modify()`](custodian.ansible.actions.md#custodian.ansible.actions.FileActions.file_modify) - - - * [`FileActions.file_move()`](custodian.ansible.actions.md#custodian.ansible.actions.FileActions.file_move) - - - * [`get_nested_dict()`](custodian.ansible.actions.md#custodian.ansible.actions.get_nested_dict) - - + * [`DictActions`](custodian.ansible.actions.md#custodian.ansible.actions.DictActions) + * [`DictActions.add_to_set()`](custodian.ansible.actions.md#custodian.ansible.actions.DictActions.add_to_set) + * [`DictActions.inc()`](custodian.ansible.actions.md#custodian.ansible.actions.DictActions.inc) + * [`DictActions.pop()`](custodian.ansible.actions.md#custodian.ansible.actions.DictActions.pop) + * [`DictActions.pull()`](custodian.ansible.actions.md#custodian.ansible.actions.DictActions.pull) + * [`DictActions.pull_all()`](custodian.ansible.actions.md#custodian.ansible.actions.DictActions.pull_all) + * [`DictActions.push()`](custodian.ansible.actions.md#custodian.ansible.actions.DictActions.push) + * [`DictActions.push_all()`](custodian.ansible.actions.md#custodian.ansible.actions.DictActions.push_all) + * [`DictActions.rename()`](custodian.ansible.actions.md#custodian.ansible.actions.DictActions.rename) + * [`DictActions.set()`](custodian.ansible.actions.md#custodian.ansible.actions.DictActions.set) + * [`DictActions.unset()`](custodian.ansible.actions.md#custodian.ansible.actions.DictActions.unset) + * [`FileActions`](custodian.ansible.actions.md#custodian.ansible.actions.FileActions) + * [`FileActions.file_copy()`](custodian.ansible.actions.md#custodian.ansible.actions.FileActions.file_copy) + * [`FileActions.file_create()`](custodian.ansible.actions.md#custodian.ansible.actions.FileActions.file_create) + * [`FileActions.file_delete()`](custodian.ansible.actions.md#custodian.ansible.actions.FileActions.file_delete) + * [`FileActions.file_modify()`](custodian.ansible.actions.md#custodian.ansible.actions.FileActions.file_modify) + * [`FileActions.file_move()`](custodian.ansible.actions.md#custodian.ansible.actions.FileActions.file_move) + * [`get_nested_dict()`](custodian.ansible.actions.md#custodian.ansible.actions.get_nested_dict) * [custodian.ansible.interpreter module](custodian.ansible.interpreter.md) - - - * [`Modder`](custodian.ansible.interpreter.md#custodian.ansible.interpreter.Modder) - - - * [`Modder.modify()`](custodian.ansible.interpreter.md#custodian.ansible.interpreter.Modder.modify) - - - * [`Modder.modify_object()`](custodian.ansible.interpreter.md#custodian.ansible.interpreter.Modder.modify_object) \ No newline at end of file + * [`Modder`](custodian.ansible.interpreter.md#custodian.ansible.interpreter.Modder) + * [`Modder.modify()`](custodian.ansible.interpreter.md#custodian.ansible.interpreter.Modder.modify) + * [`Modder.modify_object()`](custodian.ansible.interpreter.md#custodian.ansible.interpreter.Modder.modify_object) \ No newline at end of file diff --git a/docs/custodian.cli.converge_geometry.md b/docs/custodian.cli.converge_geometry.md index 42e64fc5..d8244cce 100644 --- a/docs/custodian.cli.converge_geometry.md +++ b/docs/custodian.cli.converge_geometry.md @@ -8,10 +8,10 @@ nav_exclude: true This is a script to converge the geometry of a system +## custodian.cli.converge_geometry.do_run(args) -### custodian.cli.converge_geometry.do_run(args) Perform the run. +## custodian.cli.converge_geometry.get_runs(args) -### custodian.cli.converge_geometry.get_runs(args) Get the runs. \ No newline at end of file diff --git a/docs/custodian.cli.converge_kpoints.md b/docs/custodian.cli.converge_kpoints.md index 02030e9b..e8a96b3d 100644 --- a/docs/custodian.cli.converge_kpoints.md +++ b/docs/custodian.cli.converge_kpoints.md @@ -8,14 +8,14 @@ nav_exclude: true This is a master vasp running script to converging kpoints for a calculation +## custodian.cli.converge_kpoints.do_run(args) -### custodian.cli.converge_kpoints.do_run(args) Perform the run. +## custodian.cli.converge_kpoints.get_runs(vasp_command, target=0.001, max_steps=10, mode=’linear’) -### custodian.cli.converge_kpoints.get_runs(vasp_command, target=0.001, max_steps=10, mode='linear') Generate the runs using a generator until convergence is achieved. +## custodian.cli.converge_kpoints.main() -### custodian.cli.converge_kpoints.main() Main method \ No newline at end of file diff --git a/docs/custodian.cli.cstdn.md b/docs/custodian.cli.cstdn.md index 8c5e06c7..59482918 100644 --- a/docs/custodian.cli.cstdn.md +++ b/docs/custodian.cli.cstdn.md @@ -8,14 +8,14 @@ nav_exclude: true A yaml based Custodian job runner. Allows for multi-step jobs with modifications along the way. +## custodian.cli.cstdn.main() -### custodian.cli.cstdn.main() Main method +## custodian.cli.cstdn.print_example(args) -### custodian.cli.cstdn.print_example(args) Print the example_yaml. +## custodian.cli.cstdn.run(args) -### custodian.cli.cstdn.run(args) Perform a single run. \ No newline at end of file diff --git a/docs/custodian.cli.md b/docs/custodian.cli.md index cbed8acf..a124a1fd 100644 --- a/docs/custodian.cli.md +++ b/docs/custodian.cli.md @@ -8,60 +8,22 @@ nav_exclude: true Implement various command line utilities. - - * [custodian.cli.converge_geometry module](custodian.cli.converge_geometry.md) - - - * [`do_run()`](custodian.cli.converge_geometry.md#custodian.cli.converge_geometry.do_run) - - - * [`get_runs()`](custodian.cli.converge_geometry.md#custodian.cli.converge_geometry.get_runs) - - + * [`do_run()`](custodian.cli.converge_geometry.md#custodian.cli.converge_geometry.do_run) + * [`get_runs()`](custodian.cli.converge_geometry.md#custodian.cli.converge_geometry.get_runs) * [custodian.cli.converge_kpoints module](custodian.cli.converge_kpoints.md) - - - * [`do_run()`](custodian.cli.converge_kpoints.md#custodian.cli.converge_kpoints.do_run) - - - * [`get_runs()`](custodian.cli.converge_kpoints.md#custodian.cli.converge_kpoints.get_runs) - - - * [`main()`](custodian.cli.converge_kpoints.md#custodian.cli.converge_kpoints.main) - - + * [`do_run()`](custodian.cli.converge_kpoints.md#custodian.cli.converge_kpoints.do_run) + * [`get_runs()`](custodian.cli.converge_kpoints.md#custodian.cli.converge_kpoints.get_runs) + * [`main()`](custodian.cli.converge_kpoints.md#custodian.cli.converge_kpoints.main) * [custodian.cli.cstdn module](custodian.cli.cstdn.md) - - - * [`main()`](custodian.cli.cstdn.md#custodian.cli.cstdn.main) - - - * [`print_example()`](custodian.cli.cstdn.md#custodian.cli.cstdn.print_example) - - - * [`run()`](custodian.cli.cstdn.md#custodian.cli.cstdn.run) - - + * [`main()`](custodian.cli.cstdn.md#custodian.cli.cstdn.main) + * [`print_example()`](custodian.cli.cstdn.md#custodian.cli.cstdn.print_example) + * [`run()`](custodian.cli.cstdn.md#custodian.cli.cstdn.run) * [custodian.cli.run_nwchem module](custodian.cli.run_nwchem.md) - - - * [`do_run()`](custodian.cli.run_nwchem.md#custodian.cli.run_nwchem.do_run) - - - * [`main()`](custodian.cli.run_nwchem.md#custodian.cli.run_nwchem.main) - - + * [`do_run()`](custodian.cli.run_nwchem.md#custodian.cli.run_nwchem.do_run) + * [`main()`](custodian.cli.run_nwchem.md#custodian.cli.run_nwchem.main) * [custodian.cli.run_vasp module](custodian.cli.run_vasp.md) - - - * [`do_run()`](custodian.cli.run_vasp.md#custodian.cli.run_vasp.do_run) - - - * [`get_jobs()`](custodian.cli.run_vasp.md#custodian.cli.run_vasp.get_jobs) - - - * [`load_class()`](custodian.cli.run_vasp.md#custodian.cli.run_vasp.load_class) - - - * [`main()`](custodian.cli.run_vasp.md#custodian.cli.run_vasp.main) \ No newline at end of file + * [`do_run()`](custodian.cli.run_vasp.md#custodian.cli.run_vasp.do_run) + * [`get_jobs()`](custodian.cli.run_vasp.md#custodian.cli.run_vasp.get_jobs) + * [`load_class()`](custodian.cli.run_vasp.md#custodian.cli.run_vasp.load_class) + * [`main()`](custodian.cli.run_vasp.md#custodian.cli.run_vasp.main) \ No newline at end of file diff --git a/docs/custodian.cli.run_nwchem.md b/docs/custodian.cli.run_nwchem.md index cb55a4e5..6b1b47c0 100644 --- a/docs/custodian.cli.run_nwchem.md +++ b/docs/custodian.cli.run_nwchem.md @@ -8,10 +8,10 @@ nav_exclude: true Basic script to run nwchem job. +## custodian.cli.run_nwchem.do_run(args) -### custodian.cli.run_nwchem.do_run(args) Do the run. +## custodian.cli.run_nwchem.main() -### custodian.cli.run_nwchem.main() Main method \ No newline at end of file diff --git a/docs/custodian.cli.run_vasp.md b/docs/custodian.cli.run_vasp.md index 9d6545ab..98ced81e 100644 --- a/docs/custodian.cli.run_vasp.md +++ b/docs/custodian.cli.run_vasp.md @@ -9,18 +9,18 @@ nav_exclude: true This is a master vasp running script to perform various combinations of VASP runs. +## custodian.cli.run_vasp.do_run(args) -### custodian.cli.run_vasp.do_run(args) Do the run. +## custodian.cli.run_vasp.get_jobs(args) -### custodian.cli.run_vasp.get_jobs(args) Returns a generator of jobs. Allows of “infinite” jobs. +## custodian.cli.run_vasp.load_class(mod, name) -### custodian.cli.run_vasp.load_class(mod, name) Load the class from mod and name specification. +## custodian.cli.run_vasp.main() -### custodian.cli.run_vasp.main() Main method \ No newline at end of file diff --git a/docs/custodian.cp2k.interpreter.md b/docs/custodian.cp2k.interpreter.md index 6fac1548..a6fb0779 100644 --- a/docs/custodian.cp2k.interpreter.md +++ b/docs/custodian.cp2k.interpreter.md @@ -8,8 +8,8 @@ nav_exclude: true CP2K adapted interpreter and modder for custodian. +## *class* custodian.cp2k.interpreter.Cp2kModder(filename=’cp2k.inp’, actions=None, strict=True, ci=None) -### _class_ custodian.cp2k.interpreter.Cp2kModder(filename='cp2k.inp', actions=None, strict=True, ci=None) Bases: [`Modder`](custodian.ansible.interpreter.md#custodian.ansible.interpreter.Modder) Cp2kModder is a lightweight class for applying modifications to cp2k input files. It @@ -17,32 +17,22 @@ also supports modifications that are file operations (e.g. copying). Initializes a Modder for Cp2kInput sets - * **Parameters** - - - * **filename** (*str*) – name of cp2k input file to modify. This file will be overwritten + * **filename** (*str*) – name of cp2k input file to modify. This file will be overwritten if actions are applied. - - - * **actions** (*[**Action**]*) – A sequence of supported actions. See + * **actions** (*[**Action**]*) – A sequence of supported actions. See [`custodian.ansible.actions`](custodian.ansible.actions.md#module-custodian.ansible.actions). Default is None, which means DictActions and FileActions are supported. - - - * **strict** (*bool*) – Indicating whether to use strict mode. In non-strict + * **strict** (*bool*) – Indicating whether to use strict mode. In non-strict mode, unsupported actions are simply ignored without any errors raised. In strict mode, if an unsupported action is supplied, a ValueError is raised. Defaults to True. - - - * **ci** (*Cp2kInput*) – A Cp2kInput object from the current directory. + * **ci** (*Cp2kInput*) – A Cp2kInput object from the current directory. Initialized automatically if not passed (but passing it will avoid having to reparse the directory). +### apply_actions(actions) - -#### apply_actions(actions) Applies a list of actions to the CP2K Input Set and rewrites modified files. :param actions [dict]: A list of actions of the form {‘file’: filename, diff --git a/docs/custodian.cp2k.jobs.md b/docs/custodian.cp2k.jobs.md index 8353bbcc..da93c912 100644 --- a/docs/custodian.cp2k.jobs.md +++ b/docs/custodian.cp2k.jobs.md @@ -8,8 +8,8 @@ nav_exclude: true This module implements basic kinds of jobs for Cp2k runs. +## *class* custodian.cp2k.jobs.Cp2kJob(cp2k_cmd, input_file=’cp2k.inp’, output_file=’cp2k.out’, stderr_file=’std_err.txt’, suffix=’’, final=True, backup=True, settings_override=None, restart=False) -### _class_ custodian.cp2k.jobs.Cp2kJob(cp2k_cmd, input_file='cp2k.inp', output_file='cp2k.out', stderr_file='std_err.txt', suffix='', final=True, backup=True, settings_override=None, restart=False) Bases: [`Job`](custodian.custodian.md#custodian.custodian.Job) A basic cp2k job. Just runs whatever is in the directory. But conceivably @@ -19,88 +19,66 @@ This constructor is necessarily complex due to the need for flexibility. For standard kinds of runs, it’s often better to use one of the static constructors. The defaults are usually fine too. - * **Parameters** - - - * **cp2k_cmd** (*list*) – Command to run cp2k as a list of args. For example, + * **cp2k_cmd** (*list*) – Command to run cp2k as a list of args. For example, if you are using mpirun, it can be something like [“mpirun”, “cp2k.popt”] - - - * **input_file** (*str*) – Name of the file to use as input to CP2K + * **input_file** (*str*) – Name of the file to use as input to CP2K executable. Defaults to “cp2k.inp” - - - * **output_file** (*str*) – Name of file to direct standard out to. + * **output_file** (*str*) – Name of file to direct standard out to. Defaults to “cp2k.out”. - - - * **stderr_file** (*str*) – Name of file to direct standard error to. + * **stderr_file** (*str*) – Name of file to direct standard error to. Defaults to “std_err.txt”. - - - * **suffix** (*str*) – A suffix to be appended to the final output. E.g., + * **suffix** (*str*) – A suffix to be appended to the final output. E.g., to rename all CP2K output from say cp2k.out to cp2k.out.relax1, provide “.relax1” as the suffix. - - - * **final** (*bool*) – Indicating whether this is the final cp2k job in a + * **final** (*bool*) – Indicating whether this is the final cp2k job in a series. Defaults to True. - - - * **backup** (*bool*) – Whether to backup the initial input files. If True, + * **backup** (*bool*) – Whether to backup the initial input files. If True, the input file will be copied with a “.orig” appended. Defaults to True. - - - * **settings_override** (*[**actions**]*) – A list of actions. See the Cp2kModder + * **settings_override** (*[**actions**]*) – A list of actions. See the Cp2kModder in interpreter.py - - - * **restart** (*bool*) – Whether to run in restart mode, i.e. this a continuation of + * **restart** (*bool*) – Whether to run in restart mode, i.e. this a continuation of a previous calculation. Default is False. +### *classmethod* double_job(cp2k_cmd, input_file=’cp2k.inp’, output_file=’cp2k.out’, stderr_file=’std_err.txt’, backup=True) - -#### _classmethod_ double_job(cp2k_cmd, input_file='cp2k.inp', output_file='cp2k.out', stderr_file='std_err.txt', backup=True) This creates a sequence of two jobs. The first of which is an “initialization” of the wfn. Using this, the “restart” function can be exploited to determine if a diagonalization job can/would benefit from switching to OT scheme. If not, then the second job remains a diagonalization job, and there is minimal overhead from restarting. +### *classmethod* gga_static_to_hybrid(cp2k_cmd, input_file=’cp2k.inp’, output_file=’cp2k.out’, stderr_file=’std_err.txt’, backup=True, settings_override_gga=None, settings_override_hybrid=None) -#### _classmethod_ gga_static_to_hybrid(cp2k_cmd, input_file='cp2k.inp', output_file='cp2k.out', stderr_file='std_err.txt', backup=True, settings_override_gga=None, settings_override_hybrid=None) A bare gga to hybrid calculation. Removes all unecessary features from the gga run, and making it only a ENERGY/ENERGY_FORCE depending on the hybrid run. +### postprocess() -#### postprocess() Postprocessing includes renaming and gzipping where necessary. +### *classmethod* pre_screen_hybrid(cp2k_cmd, input_file=’cp2k.inp’, output_file=’cp2k.out’, stderr_file=’std_err.txt’, backup=True) -#### _classmethod_ pre_screen_hybrid(cp2k_cmd, input_file='cp2k.inp', output_file='cp2k.out', stderr_file='std_err.txt', backup=True) Build a job where the first job is an unscreened hybrid static calculation, then the second one uses the wfn from the first job as a restart to do a screened calculation. +### run() -#### run() Perform the actual CP2K run. - * **Returns** - (subprocess.Popen) Used for monitoring. - + (subprocess.Popen) Used for monitoring. +### setup() -#### setup() Performs initial setup for Cp2k in three stages. First, if custodian is running in restart mode, then the restart function will copy the restart file to self.input_file, and remove any previous WFN initialization if present. Second, any additional user specified settings will be applied. Lastly, a backup of the input file will be made for reference. +### terminate() -#### terminate() Terminate cp2k \ No newline at end of file diff --git a/docs/custodian.cp2k.md b/docs/custodian.cp2k.md index 1a9ffdd3..fed141dd 100644 --- a/docs/custodian.cp2k.md +++ b/docs/custodian.cp2k.md @@ -10,111 +10,42 @@ This package implements various CP2K Jobs and Error Handlers. ## Subpackages - -* [custodian.cp2k.tests package](custodian.cp2k.tests.md) - - - - - * [custodian.cp2k.tests.test_handlers module](custodian.cp2k.tests.test_handlers.md) - - - * [custodian.cp2k.tests.test_jobs module](custodian.cp2k.tests.test_jobs.md) - - +* [custodian.cp2k.tests package]() + ```none + * [custodian.cp2k.tests.test_handlers module](custodian.cp2k.tests.test_handlers.md) + * [custodian.cp2k.tests.test_jobs module](custodian.cp2k.tests.test_jobs.md) + ``` * [custodian.cp2k.handlers module](custodian.cp2k.handlers.md) - - * [custodian.cp2k.interpreter module](custodian.cp2k.interpreter.md) - - - * [`Cp2kModder`](custodian.cp2k.interpreter.md#custodian.cp2k.interpreter.Cp2kModder) - - - * [`Cp2kModder.apply_actions()`](custodian.cp2k.interpreter.md#custodian.cp2k.interpreter.Cp2kModder.apply_actions) - - + * [`Cp2kModder`](custodian.cp2k.interpreter.md#custodian.cp2k.interpreter.Cp2kModder) + * [`Cp2kModder.apply_actions()`](custodian.cp2k.interpreter.md#custodian.cp2k.interpreter.Cp2kModder.apply_actions) * [custodian.cp2k.jobs module](custodian.cp2k.jobs.md) - - - * [`Cp2kJob`](custodian.cp2k.jobs.md#custodian.cp2k.jobs.Cp2kJob) - - - * [`Cp2kJob.double_job()`](custodian.cp2k.jobs.md#custodian.cp2k.jobs.Cp2kJob.double_job) - - - * [`Cp2kJob.gga_static_to_hybrid()`](custodian.cp2k.jobs.md#custodian.cp2k.jobs.Cp2kJob.gga_static_to_hybrid) - - - * [`Cp2kJob.postprocess()`](custodian.cp2k.jobs.md#custodian.cp2k.jobs.Cp2kJob.postprocess) - - - * [`Cp2kJob.pre_screen_hybrid()`](custodian.cp2k.jobs.md#custodian.cp2k.jobs.Cp2kJob.pre_screen_hybrid) - - - * [`Cp2kJob.run()`](custodian.cp2k.jobs.md#custodian.cp2k.jobs.Cp2kJob.run) - - - * [`Cp2kJob.setup()`](custodian.cp2k.jobs.md#custodian.cp2k.jobs.Cp2kJob.setup) - - - * [`Cp2kJob.terminate()`](custodian.cp2k.jobs.md#custodian.cp2k.jobs.Cp2kJob.terminate) - - + * [`Cp2kJob`](custodian.cp2k.jobs.md#custodian.cp2k.jobs.Cp2kJob) + * [`Cp2kJob.double_job()`](custodian.cp2k.jobs.md#custodian.cp2k.jobs.Cp2kJob.double_job) + * [`Cp2kJob.gga_static_to_hybrid()`](custodian.cp2k.jobs.md#custodian.cp2k.jobs.Cp2kJob.gga_static_to_hybrid) + * [`Cp2kJob.postprocess()`](custodian.cp2k.jobs.md#custodian.cp2k.jobs.Cp2kJob.postprocess) + * [`Cp2kJob.pre_screen_hybrid()`](custodian.cp2k.jobs.md#custodian.cp2k.jobs.Cp2kJob.pre_screen_hybrid) + * [`Cp2kJob.run()`](custodian.cp2k.jobs.md#custodian.cp2k.jobs.Cp2kJob.run) + * [`Cp2kJob.setup()`](custodian.cp2k.jobs.md#custodian.cp2k.jobs.Cp2kJob.setup) + * [`Cp2kJob.terminate()`](custodian.cp2k.jobs.md#custodian.cp2k.jobs.Cp2kJob.terminate) * [custodian.cp2k.utils module](custodian.cp2k.utils.md) - - - * [`activate_diag()`](custodian.cp2k.utils.md#custodian.cp2k.utils.activate_diag) - - - * [`activate_ot()`](custodian.cp2k.utils.md#custodian.cp2k.utils.activate_ot) - - - * [`can_use_ot()`](custodian.cp2k.utils.md#custodian.cp2k.utils.can_use_ot) - - - * [`cleanup_input()`](custodian.cp2k.utils.md#custodian.cp2k.utils.cleanup_input) - - - * [`get_conv()`](custodian.cp2k.utils.md#custodian.cp2k.utils.get_conv) - - - * [`restart()`](custodian.cp2k.utils.md#custodian.cp2k.utils.restart) - - - * [`tail()`](custodian.cp2k.utils.md#custodian.cp2k.utils.tail) - - + * [`activate_diag()`](custodian.cp2k.utils.md#custodian.cp2k.utils.activate_diag) + * [`activate_ot()`](custodian.cp2k.utils.md#custodian.cp2k.utils.activate_ot) + * [`can_use_ot()`](custodian.cp2k.utils.md#custodian.cp2k.utils.can_use_ot) + * [`cleanup_input()`](custodian.cp2k.utils.md#custodian.cp2k.utils.cleanup_input) + * [`get_conv()`](custodian.cp2k.utils.md#custodian.cp2k.utils.get_conv) + * [`restart()`](custodian.cp2k.utils.md#custodian.cp2k.utils.restart) + * [`tail()`](custodian.cp2k.utils.md#custodian.cp2k.utils.tail) * [custodian.cp2k.validators module](custodian.cp2k.validators.md) - - - * [`Cp2kOutputValidator`](custodian.cp2k.validators.md#custodian.cp2k.validators.Cp2kOutputValidator) - - - * [`Cp2kOutputValidator.check()`](custodian.cp2k.validators.md#custodian.cp2k.validators.Cp2kOutputValidator.check) - - - * [`Cp2kOutputValidator.exit`](custodian.cp2k.validators.md#custodian.cp2k.validators.Cp2kOutputValidator.exit) - - - * [`Cp2kOutputValidator.kill`](custodian.cp2k.validators.md#custodian.cp2k.validators.Cp2kOutputValidator.kill) - - - * [`Cp2kOutputValidator.no_children`](custodian.cp2k.validators.md#custodian.cp2k.validators.Cp2kOutputValidator.no_children) - - - * [`Cp2kValidator`](custodian.cp2k.validators.md#custodian.cp2k.validators.Cp2kValidator) - - - * [`Cp2kValidator.check()`](custodian.cp2k.validators.md#custodian.cp2k.validators.Cp2kValidator.check) - - - * [`Cp2kValidator.exit`](custodian.cp2k.validators.md#custodian.cp2k.validators.Cp2kValidator.exit) - - - * [`Cp2kValidator.kill`](custodian.cp2k.validators.md#custodian.cp2k.validators.Cp2kValidator.kill) - - - * [`Cp2kValidator.no_children`](custodian.cp2k.validators.md#custodian.cp2k.validators.Cp2kValidator.no_children) \ No newline at end of file + * [`Cp2kOutputValidator`](custodian.cp2k.validators.md#custodian.cp2k.validators.Cp2kOutputValidator) + * [`Cp2kOutputValidator.check()`](custodian.cp2k.validators.md#custodian.cp2k.validators.Cp2kOutputValidator.check) + * [`Cp2kOutputValidator.exit`](custodian.cp2k.validators.md#custodian.cp2k.validators.Cp2kOutputValidator.exit) + * [`Cp2kOutputValidator.kill`](custodian.cp2k.validators.md#custodian.cp2k.validators.Cp2kOutputValidator.kill) + * [`Cp2kOutputValidator.no_children`](custodian.cp2k.validators.md#custodian.cp2k.validators.Cp2kOutputValidator.no_children) + * [`Cp2kValidator`](custodian.cp2k.validators.md#custodian.cp2k.validators.Cp2kValidator) + * [`Cp2kValidator.check()`](custodian.cp2k.validators.md#custodian.cp2k.validators.Cp2kValidator.check) + * [`Cp2kValidator.exit`](custodian.cp2k.validators.md#custodian.cp2k.validators.Cp2kValidator.exit) + * [`Cp2kValidator.kill`](custodian.cp2k.validators.md#custodian.cp2k.validators.Cp2kValidator.kill) + * [`Cp2kValidator.no_children`](custodian.cp2k.validators.md#custodian.cp2k.validators.Cp2kValidator.no_children) \ No newline at end of file diff --git a/docs/custodian.cp2k.utils.md b/docs/custodian.cp2k.utils.md index a8f3df46..7fba3115 100644 --- a/docs/custodian.cp2k.utils.md +++ b/docs/custodian.cp2k.utils.md @@ -8,92 +8,78 @@ nav_exclude: true This module holds different utility functions. Mainly used by handlers. +## custodian.cp2k.utils.activate_diag(actions) -### custodian.cp2k.utils.activate_diag(actions) Activate diagonalization actions (list): - list of actions that are being applied. Will be modified in-place +```none +list of actions that are being applied. Will be modified in-place +``` +## custodian.cp2k.utils.activate_ot(actions, ci) -### custodian.cp2k.utils.activate_ot(actions, ci) Activate OT scheme. actions (list): - list of actions that are being applied. Will be modified in-place +```none +list of actions that are being applied. Will be modified in-place +``` ci (Cp2kInput): - Cp2kInput object, used to coordinate settings +```none +Cp2kInput object, used to coordinate settings +``` +## custodian.cp2k.utils.can_use_ot(output, ci, minimum_band_gap=0.1) -### custodian.cp2k.utils.can_use_ot(output, ci, minimum_band_gap=0.1) Check whether OT can be used: - OT should not already be activated - The output should show that the system has a band gap that is greater than minimum_band_gap - +```none +OT should not already be activated +The output should show that the system has a band gap that is greater than minimum_band_gap +``` * **Parameters** + * **output** (*Cp2kOutput*) – cp2k output object for determining band gap + * **ci** (*Cp2kInput*) – cp2k input object for determining if OT is already active + * **minimum_band_gap** (*float*) – the minimum band gap for OT +## custodian.cp2k.utils.cleanup_input(ci) - * **output** (*Cp2kOutput*) – cp2k output object for determining band gap - - - * **ci** (*Cp2kInput*) – cp2k input object for determining if OT is already active - - - * **minimum_band_gap** (*float*) – the minimum band gap for OT - - - -### custodian.cp2k.utils.cleanup_input(ci) Intention is to use this to remove problematic parts of the input file. -> > 1. The “POTENTIAL” section within KIND cannot be empty, but the number -> sequences used inside do not play nice with the input parser +> sequences used inside do not play nice with the input parser +## custodian.cp2k.utils.get_conv(outfile) -### custodian.cp2k.utils.get_conv(outfile) Helper function to get the convergence info from SCF loops - * **Parameters** - **outfile** (*str*) – output file to parse - - - + **outfile** (*str*) – output file to parse * **Returns** - returns convergence info (change in energy between SCF steps) as a - single list (flattened across outer scf loops). - + returns convergence info (change in energy between SCF steps) as a + single list (flattened across outer scf loops). +## custodian.cp2k.utils.restart(actions, output_file, input_file, no_actions_needed=False) -### custodian.cp2k.utils.restart(actions, output_file, input_file, no_actions_needed=False) Helper function. To discard old restart if convergence is already good, and copy the restart file to the input file. Restart also supports switching back and forth between OT and diagonalization as needed based on convergence behavior. If OT is not being used and a band gap exists, then OT will be activated. - * **Parameters** - - - * **actions** (*list*) – list of actions that the handler is going to return to custodian. If + * **actions** (*list*) – list of actions that the handler is going to return to custodian. If no actions are present, then non are added by this function + * **output_file** (*str*) – the cp2k output file name. + * **input_file** (*str*) – the cp2k input file name. +## custodian.cp2k.utils.tail(filename, n=10) - * **output_file** (*str*) – the cp2k output file name. - - - * **input_file** (*str*) – the cp2k input file name. - - - -### custodian.cp2k.utils.tail(filename, n=10) Returns the last n lines of a file as a list (including empty lines) \ No newline at end of file diff --git a/docs/custodian.cp2k.validators.md b/docs/custodian.cp2k.validators.md index 2a41c676..957eba9c 100644 --- a/docs/custodian.cp2k.validators.md +++ b/docs/custodian.cp2k.validators.md @@ -8,55 +8,53 @@ nav_exclude: true Validators for CP2K calculations. +## *class* custodian.cp2k.validators.Cp2kOutputValidator(output_file=’cp2k.out’) -### _class_ custodian.cp2k.validators.Cp2kOutputValidator(output_file='cp2k.out') Bases: `Cp2kValidator` Checks that a valid cp2k output file was generated - * **Parameters** - **output_file** (*str*) – cp2k output file to analyze - + **output_file** (*str*) – cp2k output file to analyze +### check() -#### check() Check for valid output. Checks that the end of the program was reached, and that convergence was achieved. +### *property* exit() -#### _property_ exit() Don’t raise error, but exit the job +### *property* kill() -#### _property_ kill() Kill the job with raise error. +### *property* no_children() -#### _property_ no_children() Job should not have children +## *class* custodian.cp2k.validators.Cp2kValidator() -### _class_ custodian.cp2k.validators.Cp2kValidator() Bases: [`Validator`](custodian.custodian.md#custodian.custodian.Validator) Base validator. +### *abstract* check() -#### _abstract_ check() Check whether validation failed. Here, True means validation failed. +### *abstract property* exit() -#### _abstract property_ exit() Don’t raise error, but exit the job +### *abstract property* kill() -#### _abstract property_ kill() Kill the job with raise error. +### *abstract property* no_children() -#### _abstract property_ no_children() Job should not have children \ No newline at end of file diff --git a/docs/custodian.custodian.md b/docs/custodian.custodian.md index eef3866f..38d2428a 100644 --- a/docs/custodian.custodian.md +++ b/docs/custodian.custodian.md @@ -10,27 +10,22 @@ This module implements the main Custodian class, which manages a list of jobs given a set of error handlers, the abstract base classes for the ErrorHandlers and Jobs. +## *class* custodian.custodian.Custodian(handlers, jobs, validators=None, max_errors_per_job=None, max_errors=1, polling_time_step=10, monitor_freq=30, skip_over_errors=False, scratch_dir=None, gzipped_output=False, checkpoint=False, terminate_func=None, terminate_on_nonzero_returncode=True) -### _class_ custodian.custodian.Custodian(handlers, jobs, validators=None, max_errors_per_job=None, max_errors=1, polling_time_step=10, monitor_freq=30, skip_over_errors=False, scratch_dir=None, gzipped_output=False, checkpoint=False, terminate_func=None, terminate_on_nonzero_returncode=True) Bases: `object` The Custodian class is the manager for a list of jobs given a list of error handlers. The way it works is as follows: - 1. Let’s say you have defined a list of jobs as [job1, job2, job3, …] and -you have defined a list of possible error handlers as [err1, err2, …] - - + you have defined a list of possible error handlers as [err1, err2, …] 2. Custodian will run the jobs in the order of job1, job2, … During each -job, custodian will monitor for errors using the handlers that have -is_monitor == True. If an error is detected, corrective measures are -taken and the particular job is rerun. - - + job, custodian will monitor for errors using the handlers that have + is_monitor == True. If an error is detected, corrective measures are + taken and the particular job is rerun. 3. At the end of each individual job, Custodian will run through the list of -error handlers that have is_monitor == False. If an error is detected, -corrective measures are taken and the particular job is rerun. + error handlers that have is_monitor == False. If an error is detected, + corrective measures are taken and the particular job is rerun. -Initializes a Custodian from a list of jobs and error handlers. +Initializes a Custodian from a list of jobs and error handlers. * **Parameters** - - - * **handlers** (*[**ErrorHandler**]*) – Error handlers. In order of priority of + * **handlers** (*[**ErrorHandler**]*) – Error handlers. In order of priority of fixing. - - - * **jobs** (*[**Job**]*) – Sequence of Jobs to be run. Note that this can be + * **jobs** (*[**Job**]*) – Sequence of Jobs to be run. Note that this can be any sequence or even a generator yielding jobs. - - - * **validators** (*[**Validator**]*) – Validators to ensure job success - - - * **max_errors_per_job** (*int*) – Maximum number of errors per job allowed + * **validators** (*[**Validator**]*) – Validators to ensure job success + * **max_errors_per_job** (*int*) – Maximum number of errors per job allowed before exiting. Defaults to None, which means it is set to be equal to max_errors.. - - - * **max_errors** (*int*) – Maximum number of total errors allowed before + * **max_errors** (*int*) – Maximum number of total errors allowed before exiting. Defaults to 1. - - - * **polling_time_step** (*int*) – The length of time in seconds between + * **polling_time_step** (*int*) – The length of time in seconds between steps in which a job is checked for completion. Defaults to 10 secs. - - - * **monitor_freq** (*int*) – The number of polling steps before monitoring + * **monitor_freq** (*int*) – The number of polling steps before monitoring occurs. For example, if you have a polling_time_step of 10 seconds and a monitor_freq of 30, this means that Custodian uses the monitors to check for errors every 30 x 10 = 300 seconds, i.e., 5 minutes. - - - * **skip_over_errors** (*bool*) – If set to True, custodian will skip over + * **skip_over_errors** (*bool*) – If set to True, custodian will skip over error handlers that failed (raised an Exception of some sort). Otherwise, custodian will simply exit on unrecoverable errors. The former will lead to potentially more robust performance, but may make it difficult to improve handlers. The latter will allow one to catch potentially bad error handler implementations. Defaults to False. - - - * **scratch_dir** (*str*) – If this is set, any files in the current + * **scratch_dir** (*str*) – If this is set, any files in the current directory are copied to a temporary directory in a scratch space first before any jobs are performed, and moved back to the current directory upon completion of all jobs. This is @@ -113,222 +90,154 @@ Initializes a Custodian from a list of jobs and error handlers. users may want to sometimes check the output during the course of a run. If this is None (the default), the run is performed in the current working directory. - - - * **gzipped_output** (*bool*) – Whether to gzip the final output to save + * **gzipped_output** (*bool*) – Whether to gzip the final output to save space. Defaults to False. - - - * **checkpoint** (*bool*) – Whether to checkpoint after each successful Job. + * **checkpoint** (*bool*) – Whether to checkpoint after each successful Job. Checkpoints are stored as custodian.chk.#.tar.gz files. Defaults to False. - - - * **terminate_func** (*callable*) – A function to be called to terminate a + * **terminate_func** (*callable*) – A function to be called to terminate a running job. If None, the default is to call Popen.terminate. - - - * **terminate_on_nonzero_returncode** (*bool*) – If True, a non-zero return + * **terminate_on_nonzero_returncode** (*bool*) – If True, a non-zero return code on any Job will result in a termination. Defaults to True. +### LOG_FILE(_ = ‘custodian.json_ ) +### *classmethod* from_spec(spec) -#### LOG_FILE(_ = 'custodian.json_ ) - -#### _classmethod_ from_spec(spec) Load a Custodian instance where the jobs are specified from a structure and a spec dict. This allows simple custom job sequences to be constructed quickly via a YAML file. - * **Parameters** - **spec** (*dict*) – A dict specifying job. A sample of the dict in - YAML format for the usual MP workflow is given as follows - - - - ``` - `` - ``` - - \` - jobs: - - jb: custodian.vasp.jobs.VaspJob - - > params: - - > final: False - > suffix: .relax1 - - - * jb: custodian.vasp.jobs.VaspJob + **spec** (*dict*) – A dict specifying job. A sample of the dict in + YAML format for the usual MP workflow is given as follows + ```default + `` + ``` + + \` + jobs: + - jb: custodian.vasp.jobs.VaspJob + + > params: + > ```none + > final: False + > suffix: .relax1 + > ``` + * jb: custodian.vasp.jobs.VaspJob params: - > final: True - > suffix: .relax2 - > settings_override: {“file”: “CONTCAR”, “action”: {“_file_copy”: {“dest”: “POSCAR”}} - - jobs_common_params: + > final: True + > suffix: .relax2 + > settings_override: {“file”: “CONTCAR”, “action”: {“_file_copy”: {“dest”: “POSCAR”}} - vasp_cmd: /opt/vasp + jobs_common_params: + ```none + vasp_cmd: /opt/vasp + ``` - handlers: - - hdlr: custodian.vasp.handlers.VaspErrorHandler - - hdlr: custodian.vasp.handlers.AliasingErrorHandler - - hdlr: custodian.vasp.handlers.MeshSymmetryHandler + handlers: + - hdlr: custodian.vasp.handlers.VaspErrorHandler + - hdlr: custodian.vasp.handlers.AliasingErrorHandler + - hdlr: custodian.vasp.handlers.MeshSymmetryHandler validators: - - vldr: custodian.vasp.validators.VasprunXMLValidator + - vldr: custodian.vasp.validators.VasprunXMLValidator custodian_params: - > scratch_dir: /tmp - - - - ``` - `` - ``` - - - - ``` - ` - ``` - - - The jobs key is a list of jobs. Each job is - specified via “job”: , and all parameters are - specified via params which is a dict. - - common_params specify a common set of parameters that are - passed to all jobs, e.g., vasp_cmd. - + > scratch_dir: /tmp + ```default + `` + ``` + ```default + ` + ``` + The jobs key is a list of jobs. Each job is + specified via “job”: , and all parameters are + specified via params which is a dict. + common_params specify a common set of parameters that are + passed to all jobs, e.g., vasp_cmd. * **Returns** - Custodian instance. + Custodian instance. +### run() - -#### run() Runs all jobs. - * **Returns** - All errors encountered as a list of list. - [[error_dicts for job 1], [error_dicts for job 2], ….] - - - + All errors encountered as a list of list. + [[error_dicts for job 1], [error_dicts for job 2], ….] * **Raises** + * **ValidationError** – if a job fails validation + * **ReturnCodeError** – if the process has a return code different from 0 + * **NonRecoverableError** – if an unrecoverable occurs + * **MaxCorrectionsPerJobError** – if max_errors_per_job is reached + * **MaxCorrectionsError** – if max_errors is reached + * **MaxCorrectionsPerHandlerError** – if max_errors_per_handler is reached +### run_interrupted() - * **ValidationError** – if a job fails validation - - - * **ReturnCodeError** – if the process has a return code different from 0 - - - * **NonRecoverableError** – if an unrecoverable occurs - - - * **MaxCorrectionsPerJobError** – if max_errors_per_job is reached - - - * **MaxCorrectionsError** – if max_errors is reached - - - * **MaxCorrectionsPerHandlerError** – if max_errors_per_handler is reached - - - -#### run_interrupted() Runs custodian in a interuppted mode, which sets up and validates jobs but doesn’t run the executable - * **Returns** - number of remaining jobs - - - + number of remaining jobs * **Raises** + * **ValidationError** – if a job fails validation + * **ReturnCodeError** – if the process has a return code different from 0 + * **NonRecoverableError** – if an unrecoverable occurs + * **MaxCorrectionsPerJobError** – if max_errors_per_job is reached + * **MaxCorrectionsError** – if max_errors is reached + * **MaxCorrectionsPerHandlerError** – if max_errors_per_handler is reached +## *exception* custodian.custodian.CustodianError(message, raises=False) - * **ValidationError** – if a job fails validation - - - * **ReturnCodeError** – if the process has a return code different from 0 - - - * **NonRecoverableError** – if an unrecoverable occurs - - - * **MaxCorrectionsPerJobError** – if max_errors_per_job is reached - - - * **MaxCorrectionsError** – if max_errors is reached - - - * **MaxCorrectionsPerHandlerError** – if max_errors_per_handler is reached - - - -### _exception_ custodian.custodian.CustodianError(message, raises=False) Bases: `RuntimeError` Exception class for Custodian errors. Initializes the error with a message. - * **Parameters** + * **message** (*str*) – Message passed to Exception + * **raises** (*bool*) – Whether this should be raised outside custodian +## *class* custodian.custodian.ErrorHandler() - * **message** (*str*) – Message passed to Exception - - - * **raises** (*bool*) – Whether this should be raised outside custodian - - - -### _class_ custodian.custodian.ErrorHandler() Bases: `MSONable` Abstract base class defining the interface for an ErrorHandler. +### *abstract* check() -#### _abstract_ check() This method is called during the job (for monitors) or at the end of the job to check for errors. - * **Returns** - (bool) Indicating if errors are detected. + (bool) Indicating if errors are detected. +### *abstract* correct() - -#### _abstract_ correct() This method is called at the end of a job when an error is detected. It should perform any corrective measures relating to the detected error. - * **Returns** - (dict) JSON serializable dict that describes the errors and - actions taken. E.g. - {“errors”: list_of_errors, “actions”: list_of_actions_taken}. - If this is an unfixable error, actions should be set to None. + (dict) JSON serializable dict that describes the errors and + actions taken. E.g. + {“errors”: list_of_errors, “actions”: list_of_actions_taken}. + If this is an unfixable error, actions should be set to None. +### is_monitor(_ = Fals_ ) - -#### is_monitor(_ = Fals_ ) This class property indicates whether the error handler is a monitor, i.e., a handler that monitors a job as it is running. If a monitor-type handler notices an error, the job will be sent a @@ -336,8 +245,8 @@ termination signal, the error is then corrected, and then the job is restarted. This is useful for catching errors that occur early in the run but do not cause immediate failure. +### is_terminating(_ = Tru_ ) -#### is_terminating(_ = Tru_ ) Whether this handler terminates a job upon error detection. By default, this is True, which means that the current Job will be terminated upon error detection, corrections applied, @@ -348,27 +257,22 @@ a job to terminate gracefully once it finishes its current task. The handler to set the flag should be classified as is_terminating = False to not terminate the job. +### max_num_corrections(_ = Non_ ) -#### max_num_corrections(_ = Non_ ) +### *property* n_applied_corrections() -#### _property_ n_applied_corrections() The number of times the handler has given a correction and this has been applied. - * **Returns** - the number of corrections applied. - - - + the number of corrections applied. * **Return type** - (int) + (int) +### raise_on_max(_ = Fals_ ) - -#### raise_on_max(_ = Fals_ ) Whether corrections from this specific handler should be applied only a fixed maximum number of times on a single job (i.e. the counter is reset at the beginning of each job). If the maximum number is reached the code @@ -376,165 +280,115 @@ will either raise a MaxCorrectionsPerHandlerError (raise_on_max==True) or stops considering the correction (raise_on_max==False). If max_num_corrections is None this option is not considered. These options can be overridden as class attributes of the subclass or as customizable options setting -an instance attribute from __init__. +an instance attribute from **init**. +### raises_runtime_error(_ = Tru_ ) -#### raises_runtime_error(_ = Tru_ ) Whether this handler causes custodian to raise a runtime error if it cannot handle the error (i.e. if correct returns a dict with “actions”:None, or “actions”:[]) +## *class* custodian.custodian.Job() -### _class_ custodian.custodian.Job() Bases: `MSONable` Abstract base class defining the interface for a Job. +### *property* name() -#### _property_ name() A nice string name for the job. +### *abstract* postprocess() -#### _abstract_ postprocess() This method is called at the end of a job, *after* error detection. This allows post-processing, such as cleanup, analysis of results, etc. +### *abstract* run() -#### _abstract_ run() This method perform the actual work for the job. If parallel error checking (monitoring) is desired, this must return a Popen process. +### *abstract* setup() -#### _abstract_ setup() This method is run before the start of a job. Allows for some pre-processing. +### terminate() -#### terminate() Implement termination function. +## *exception* custodian.custodian.MaxCorrectionsError(message, raises, max_errors) -### _exception_ custodian.custodian.MaxCorrectionsError(message, raises, max_errors) Bases: `CustodianError` Error raised when the maximum allowed number of errors is reached - * **Parameters** + * **message** (*str*) – Message passed to Exception + * **raises** (*bool*) – Whether this should be raised outside custodian + * **max_errors** (*int*) – the number of errors reached +## *exception* custodian.custodian.MaxCorrectionsPerHandlerError(message, raises, max_errors_per_handler, handler) - * **message** (*str*) – Message passed to Exception - - - * **raises** (*bool*) – Whether this should be raised outside custodian - - - * **max_errors** (*int*) – the number of errors reached - - - -### _exception_ custodian.custodian.MaxCorrectionsPerHandlerError(message, raises, max_errors_per_handler, handler) Bases: `CustodianError` Error raised when the maximum allowed number of errors per handler is reached - * **Parameters** + * **message** (*str*) – Message passed to Exception + * **raises** (*bool*) – Whether this should be raised outside custodian + * **max_errors_per_handler** (*int*) – the number of errors per job reached + * **handler** (*Handler*) – the handler that caused the exception +## *exception* custodian.custodian.MaxCorrectionsPerJobError(message, raises, max_errors_per_job, job) - * **message** (*str*) – Message passed to Exception - - - * **raises** (*bool*) – Whether this should be raised outside custodian - - - * **max_errors_per_handler** (*int*) – the number of errors per job reached - - - * **handler** (*Handler*) – the handler that caused the exception - - - -### _exception_ custodian.custodian.MaxCorrectionsPerJobError(message, raises, max_errors_per_job, job) Bases: `CustodianError` Error raised when the maximum allowed number of errors per job is reached - * **Parameters** + * **message** (*str*) – Message passed to Exception + * **raises** (*bool*) – Whether this should be raised outside custodian + * **max_errors_per_job** (*int*) – the number of errors per job reached + * **job** (*Job*) – the job that was stopped +## *exception* custodian.custodian.NonRecoverableError(message, raises, handler) - * **message** (*str*) – Message passed to Exception - - - * **raises** (*bool*) – Whether this should be raised outside custodian - - - * **max_errors_per_job** (*int*) – the number of errors per job reached - - - * **job** (*Job*) – the job that was stopped - - - -### _exception_ custodian.custodian.NonRecoverableError(message, raises, handler) Bases: `CustodianError` Error raised when a handler found an error but could not fix it - * **Parameters** + * **message** (*str*) – Message passed to Exception + * **raises** (*bool*) – Whether this should be raised outside custodian + * **handler** (*Handler*) – Handler that caused the exception. +## *exception* custodian.custodian.ReturnCodeError(message, raises=False) - * **message** (*str*) – Message passed to Exception - - - * **raises** (*bool*) – Whether this should be raised outside custodian - - - * **handler** (*Handler*) – Handler that caused the exception. - - - -### _exception_ custodian.custodian.ReturnCodeError(message, raises=False) Bases: `CustodianError` Error raised when the process gave non zero return code Initializes the error with a message. - * **Parameters** + * **message** (*str*) – Message passed to Exception + * **raises** (*bool*) – Whether this should be raised outside custodian +## *exception* custodian.custodian.ValidationError(message, raises, validator) - * **message** (*str*) – Message passed to Exception - - - * **raises** (*bool*) – Whether this should be raised outside custodian - - - -### _exception_ custodian.custodian.ValidationError(message, raises, validator) Bases: `CustodianError` Error raised when a validator does not pass the check - * **Parameters** + * **message** (*str*) – Message passed to Exception + * **raises** (*bool*) – Whether this should be raised outside custodian + * **validator** (*Validator*) – Validator that caused the exception. +## *class* custodian.custodian.Validator() - * **message** (*str*) – Message passed to Exception - - - * **raises** (*bool*) – Whether this should be raised outside custodian - - - * **validator** (*Validator*) – Validator that caused the exception. - - - -### _class_ custodian.custodian.Validator() Bases: `MSONable` Abstract base class defining the interface for a Validator. A Validator @@ -542,11 +396,10 @@ differs from an ErrorHandler in that it does not correct a run and is run only at the end of a Job. If errors are detected by a Validator, a run is immediately terminated. +### *abstract* check() -#### _abstract_ check() This method is called at the end of a job. - * **Returns** - (bool) Indicating if errors are detected. \ No newline at end of file + (bool) Indicating if errors are detected. \ No newline at end of file diff --git a/docs/custodian.feff.handlers.md b/docs/custodian.feff.handlers.md index 7e9fce3d..c0b83e30 100644 --- a/docs/custodian.feff.handlers.md +++ b/docs/custodian.feff.handlers.md @@ -8,33 +8,31 @@ nav_exclude: true This module implements specific error handler for FEFF runs. +## *class* custodian.feff.handlers.UnconvergedErrorHandler(output_filename=’log1.dat’) -### _class_ custodian.feff.handlers.UnconvergedErrorHandler(output_filename='log1.dat') Bases: [`ErrorHandler`](custodian.custodian.md#custodian.custodian.ErrorHandler) Correct the unconverged error of FEFF’s SCF calculation. Initializes the handler with the output file to check - * **Parameters** - **output_filename** (*str*) – Filename for the log1.dat file. log1.dat file - contains the SCF calculation convergence information. Change this only - if it is different from the default (unlikely). - + **output_filename** (*str*) – Filename for the log1.dat file. log1.dat file + contains the SCF calculation convergence information. Change this only + if it is different from the default (unlikely). +### check() -#### check() If the FEFF run does not converge, the check will return “TRUE” +### correct() -#### correct() Perform the corrections. +### is_monitor(_ = Fals_ ) -#### is_monitor(_ = Fals_ ) This class property indicates whether the error handler is a monitor, i.e., a handler that monitors a job as it is running. If a monitor-type handler notices an error, the job will be sent a diff --git a/docs/custodian.feff.interpreter.md b/docs/custodian.feff.interpreter.md index 32bf01a2..bc90b8c3 100644 --- a/docs/custodian.feff.interpreter.md +++ b/docs/custodian.feff.interpreter.md @@ -8,43 +8,32 @@ nav_exclude: true Implements various interpreters and modders for FEFF calculations. +## *class* custodian.feff.interpreter.FeffModder(actions=None, strict=True, feffinp=None) -### _class_ custodian.feff.interpreter.FeffModder(actions=None, strict=True, feffinp=None) Bases: [`Modder`](custodian.ansible.interpreter.md#custodian.ansible.interpreter.Modder) A Modder for FeffInput sets - * **Parameters** - - - * **actions** (*[**Action**]*) – A sequence of supported actions. See - - - * **actions** – A sequence of supported actions. See + * **actions** (*[**Action**]*) – A sequence of supported actions. See + * **actions** – A sequence of supported actions. See [`custodian.ansible.actions`](custodian.ansible.actions.md#module-custodian.ansible.actions). Default is None, which means DictActions and FileActions are supported. - - - * **strict** (*bool*) – Indicating whether to use strict mode. In non-strict + * **strict** (*bool*) – Indicating whether to use strict mode. In non-strict mode, unsupported actions are simply ignored without any errors raised. In strict mode, if an unsupported action is supplied, a ValueError is raised. Defaults to True. - - - * **feffinp** (*FEFFInput*) – A FeffInput object from the current directory. + * **feffinp** (*FEFFInput*) – A FeffInput object from the current directory. Initialized automatically if not passed (but passing it will avoid having to reparse the directory). +### apply_actions(actions) - -#### apply_actions(actions) Applies a list of actions to the FEFF Input Set and rewrites modified files. - * **Parameters** - **[****dict****]** (*actions*) – A list of actions of the form {‘file’: filename, - ‘action’: moddermodification} or {‘dict’: feffinput_key, - ‘action’: moddermodification} \ No newline at end of file + **[****dict****]** (*actions*) – A list of actions of the form {‘file’: filename, + ‘action’: moddermodification} or {‘dict’: feffinput_key, + ‘action’: moddermodification} \ No newline at end of file diff --git a/docs/custodian.feff.jobs.md b/docs/custodian.feff.jobs.md index af9d6207..dbf4f268 100644 --- a/docs/custodian.feff.jobs.md +++ b/docs/custodian.feff.jobs.md @@ -8,52 +8,38 @@ nav_exclude: true This module implements basic kinds of jobs for FEFF runs. +## *class* custodian.feff.jobs.FeffJob(feff_cmd, output_file=’feff.out’, stderr_file=’std_feff_err.txt’, backup=True, gzipped=False, gzipped_prefix=’feff_out’) -### _class_ custodian.feff.jobs.FeffJob(feff_cmd, output_file='feff.out', stderr_file='std_feff_err.txt', backup=True, gzipped=False, gzipped_prefix='feff_out') Bases: [`Job`](custodian.custodian.md#custodian.custodian.Job) A basic FEFF job, run whatever is in the directory. This constructor is used for a standard FEFF initialization - * **Parameters** - - - * **feff_cmd** (*str*) – the name of the full executable for running FEFF - - - * **output_file** (*str*) – Name of file to direct standard out to. + * **feff_cmd** (*str*) – the name of the full executable for running FEFF + * **output_file** (*str*) – Name of file to direct standard out to. Defaults to “feff.out”. - - - * **stderr_file** (*str*) – Name of file direct standard error to. + * **stderr_file** (*str*) – Name of file direct standard error to. Defaults to “std_feff_err.txt”. - - - * **backup** (*bool*) – Indicating whether to backup the initial input files. + * **backup** (*bool*) – Indicating whether to backup the initial input files. If True, the feff.inp will be copied with a “.orig” appended. Defaults to True. - - - * **gzipped** (*bool*) – Whether to gzip the final output. Defaults to False. - - - * **gzipped_prefix** (*str*) – prefix to the feff output files archive. Defaults + * **gzipped** (*bool*) – Whether to gzip the final output. Defaults to False. + * **gzipped_prefix** (*str*) – prefix to the feff output files archive. Defaults to feff_out, which means a series of feff_out.1.tar.gz, feff_out.2.tar.gz, … will be generated. +### postprocess() - -#### postprocess() Renaming or gzipping all the output as needed +### run() -#### run() Performs the actual FEFF run :returns: (subprocess.Popen) Used for monitoring. +### setup() -#### setup() Performs initial setup for FeffJob, do backing up. Returns: \ No newline at end of file diff --git a/docs/custodian.feff.md b/docs/custodian.feff.md index 49992fe3..0f62a7fc 100644 --- a/docs/custodian.feff.md +++ b/docs/custodian.feff.md @@ -10,54 +10,23 @@ Jobs and Handlers for FEFF calculations. ## Subpackages - -* [custodian.feff.tests package](custodian.feff.tests.md) - - - - - * [custodian.feff.tests.test_handler module](custodian.feff.tests.test_handler.md) - - - * [custodian.feff.tests.test_jobs module](custodian.feff.tests.test_jobs.md) - - +* [custodian.feff.tests package]() + ```none + * [custodian.feff.tests.test_handler module](custodian.feff.tests.test_handler.md) + * [custodian.feff.tests.test_jobs module](custodian.feff.tests.test_jobs.md) + ``` * [custodian.feff.handlers module](custodian.feff.handlers.md) - - - * [`UnconvergedErrorHandler`](custodian.feff.handlers.md#custodian.feff.handlers.UnconvergedErrorHandler) - - - * [`UnconvergedErrorHandler.check()`](custodian.feff.handlers.md#custodian.feff.handlers.UnconvergedErrorHandler.check) - - - * [`UnconvergedErrorHandler.correct()`](custodian.feff.handlers.md#custodian.feff.handlers.UnconvergedErrorHandler.correct) - - - * [`UnconvergedErrorHandler.is_monitor`](custodian.feff.handlers.md#custodian.feff.handlers.UnconvergedErrorHandler.is_monitor) - - + * [`UnconvergedErrorHandler`](custodian.feff.handlers.md#custodian.feff.handlers.UnconvergedErrorHandler) + * [`UnconvergedErrorHandler.check()`](custodian.feff.handlers.md#custodian.feff.handlers.UnconvergedErrorHandler.check) + * [`UnconvergedErrorHandler.correct()`](custodian.feff.handlers.md#custodian.feff.handlers.UnconvergedErrorHandler.correct) + * [`UnconvergedErrorHandler.is_monitor`](custodian.feff.handlers.md#custodian.feff.handlers.UnconvergedErrorHandler.is_monitor) * [custodian.feff.interpreter module](custodian.feff.interpreter.md) - - - * [`FeffModder`](custodian.feff.interpreter.md#custodian.feff.interpreter.FeffModder) - - - * [`FeffModder.apply_actions()`](custodian.feff.interpreter.md#custodian.feff.interpreter.FeffModder.apply_actions) - - + * [`FeffModder`](custodian.feff.interpreter.md#custodian.feff.interpreter.FeffModder) + * [`FeffModder.apply_actions()`](custodian.feff.interpreter.md#custodian.feff.interpreter.FeffModder.apply_actions) * [custodian.feff.jobs module](custodian.feff.jobs.md) - - - * [`FeffJob`](custodian.feff.jobs.md#custodian.feff.jobs.FeffJob) - - - * [`FeffJob.postprocess()`](custodian.feff.jobs.md#custodian.feff.jobs.FeffJob.postprocess) - - - * [`FeffJob.run()`](custodian.feff.jobs.md#custodian.feff.jobs.FeffJob.run) - - - * [`FeffJob.setup()`](custodian.feff.jobs.md#custodian.feff.jobs.FeffJob.setup) \ No newline at end of file + * [`FeffJob`](custodian.feff.jobs.md#custodian.feff.jobs.FeffJob) + * [`FeffJob.postprocess()`](custodian.feff.jobs.md#custodian.feff.jobs.FeffJob.postprocess) + * [`FeffJob.run()`](custodian.feff.jobs.md#custodian.feff.jobs.FeffJob.run) + * [`FeffJob.setup()`](custodian.feff.jobs.md#custodian.feff.jobs.FeffJob.setup) \ No newline at end of file diff --git a/docs/custodian.lobster.handlers.md b/docs/custodian.lobster.handlers.md index af9457c7..dd72b300 100644 --- a/docs/custodian.lobster.handlers.md +++ b/docs/custodian.lobster.handlers.md @@ -8,55 +8,49 @@ nav_exclude: true This module implements specific error handler for Lobster runs. +## *class* custodian.lobster.handlers.ChargeSpillingValidator(output_filename: str = ‘lobsterout’, charge_spilling_limit: float = 0.05) -### _class_ custodian.lobster.handlers.ChargeSpillingValidator(output_filename: str = 'lobsterout', charge_spilling_limit: float = 0.05) Bases: [`Validator`](custodian.custodian.md#custodian.custodian.Validator) Check if spilling is below certain threshold! - * **Parameters** + * **output_filename** – filename of the output file of lobter, usually lobsterout + * **charge_spilling_limit** – limit of the charge spilling that will be considered okay +### check() - * **output_filename** – filename of the output file of lobter, usually lobsterout - - - * **charge_spilling_limit** – limit of the charge spilling that will be considered okay - - - -#### check() open lobsterout and find charge spilling +## *class* custodian.lobster.handlers.EnoughBandsValidator(output_filename: str = ‘lobsterout’) -### _class_ custodian.lobster.handlers.EnoughBandsValidator(output_filename: str = 'lobsterout') Bases: [`Validator`](custodian.custodian.md#custodian.custodian.Validator) validates if enough bands for COHP calculation are available - * **Parameters** - **output_filename** – filename of output file, usually lobsterout - + **output_filename** – filename of output file, usually lobsterout +### check() -#### check() checks if the VASP calculation had enough bands :returns: (bool) if True, too few bands have been applied +## *class* custodian.lobster.handlers.LobsterFilesValidator() -### _class_ custodian.lobster.handlers.LobsterFilesValidator() Bases: [`Validator`](custodian.custodian.md#custodian.custodian.Validator) Check for existence of some of the files that lobster - normally create upon running. +```none +normally create upon running. +``` Check if lobster terminated normally by looking for finished Dummy init +### check() -#### check() Check for errors. \ No newline at end of file diff --git a/docs/custodian.lobster.jobs.md b/docs/custodian.lobster.jobs.md index ea463e45..2ffe87a9 100644 --- a/docs/custodian.lobster.jobs.md +++ b/docs/custodian.lobster.jobs.md @@ -8,42 +8,28 @@ nav_exclude: true This module implements jobs for Lobster runs. +## *class* custodian.lobster.jobs.LobsterJob(lobster_cmd: str, output_file: str = ‘lobsterout’, stderr_file: str = ‘std_err_lobster.txt’, gzipped: bool = True, add_files_to_gzip=[], backup: bool = True) -### _class_ custodian.lobster.jobs.LobsterJob(lobster_cmd: str, output_file: str = 'lobsterout', stderr_file: str = 'std_err_lobster.txt', gzipped: bool = True, add_files_to_gzip=[], backup: bool = True) Bases: [`Job`](custodian.custodian.md#custodian.custodian.Job) Runs the Lobster Job - * **Parameters** + * **lobster_cmd** – command to run lobster + * **output_file** – usually lobsterout + * **stderr_file** – standard output + * **gzipped** – if True, Lobster files and add_files_to_gzip will be gzipped + * **add_files_to_gzip** – list of files that should be gzipped + * **backup** – if True, lobsterin will be copied to lobsterin.orig +### postprocess() - * **lobster_cmd** – command to run lobster - - - * **output_file** – usually lobsterout - - - * **stderr_file** – standard output - - - * **gzipped** – if True, Lobster files and add_files_to_gzip will be gzipped - - - * **add_files_to_gzip** – list of files that should be gzipped - - - * **backup** – if True, lobsterin will be copied to lobsterin.orig - - - -#### postprocess() will gzip relevant files (won’t gzip custodian.json and other output files from the cluster) +### run() -#### run() runs the job +### setup() -#### setup() will backup lobster input files \ No newline at end of file diff --git a/docs/custodian.lobster.md b/docs/custodian.lobster.md index 87929134..52a93286 100644 --- a/docs/custodian.lobster.md +++ b/docs/custodian.lobster.md @@ -10,51 +10,22 @@ This package implements Lobster Jobs and Error Handlers. ## Subpackages - -* [custodian.lobster.tests package](custodian.lobster.tests.md) - - - - - * [custodian.lobster.tests.test_handlers module](custodian.lobster.tests.test_handlers.md) - - - * [custodian.lobster.tests.test_jobs module](custodian.lobster.tests.test_jobs.md) - - +* [custodian.lobster.tests package]() + ```none + * [custodian.lobster.tests.test_handlers module](custodian.lobster.tests.test_handlers.md) + * [custodian.lobster.tests.test_jobs module](custodian.lobster.tests.test_jobs.md) + ``` * [custodian.lobster.handlers module](custodian.lobster.handlers.md) - - - * [`ChargeSpillingValidator`](custodian.lobster.handlers.md#custodian.lobster.handlers.ChargeSpillingValidator) - - - * [`ChargeSpillingValidator.check()`](custodian.lobster.handlers.md#custodian.lobster.handlers.ChargeSpillingValidator.check) - - - * [`EnoughBandsValidator`](custodian.lobster.handlers.md#custodian.lobster.handlers.EnoughBandsValidator) - - - * [`EnoughBandsValidator.check()`](custodian.lobster.handlers.md#custodian.lobster.handlers.EnoughBandsValidator.check) - - - * [`LobsterFilesValidator`](custodian.lobster.handlers.md#custodian.lobster.handlers.LobsterFilesValidator) - - - * [`LobsterFilesValidator.check()`](custodian.lobster.handlers.md#custodian.lobster.handlers.LobsterFilesValidator.check) - - + * [`ChargeSpillingValidator`](custodian.lobster.handlers.md#custodian.lobster.handlers.ChargeSpillingValidator) + * [`ChargeSpillingValidator.check()`](custodian.lobster.handlers.md#custodian.lobster.handlers.ChargeSpillingValidator.check) + * [`EnoughBandsValidator`](custodian.lobster.handlers.md#custodian.lobster.handlers.EnoughBandsValidator) + * [`EnoughBandsValidator.check()`](custodian.lobster.handlers.md#custodian.lobster.handlers.EnoughBandsValidator.check) + * [`LobsterFilesValidator`](custodian.lobster.handlers.md#custodian.lobster.handlers.LobsterFilesValidator) + * [`LobsterFilesValidator.check()`](custodian.lobster.handlers.md#custodian.lobster.handlers.LobsterFilesValidator.check) * [custodian.lobster.jobs module](custodian.lobster.jobs.md) - - - * [`LobsterJob`](custodian.lobster.jobs.md#custodian.lobster.jobs.LobsterJob) - - - * [`LobsterJob.postprocess()`](custodian.lobster.jobs.md#custodian.lobster.jobs.LobsterJob.postprocess) - - - * [`LobsterJob.run()`](custodian.lobster.jobs.md#custodian.lobster.jobs.LobsterJob.run) - - - * [`LobsterJob.setup()`](custodian.lobster.jobs.md#custodian.lobster.jobs.LobsterJob.setup) \ No newline at end of file + * [`LobsterJob`](custodian.lobster.jobs.md#custodian.lobster.jobs.LobsterJob) + * [`LobsterJob.postprocess()`](custodian.lobster.jobs.md#custodian.lobster.jobs.LobsterJob.postprocess) + * [`LobsterJob.run()`](custodian.lobster.jobs.md#custodian.lobster.jobs.LobsterJob.run) + * [`LobsterJob.setup()`](custodian.lobster.jobs.md#custodian.lobster.jobs.LobsterJob.setup) \ No newline at end of file diff --git a/docs/custodian.md b/docs/custodian.md index 10b3165f..791f20d0 100644 --- a/docs/custodian.md +++ b/docs/custodian.md @@ -11,907 +11,362 @@ framework written in Python. ## Subpackages - * [custodian.ansible package](custodian.ansible.md) - - - * [Subpackages](custodian.ansible.md#subpackages) - - - * [custodian.ansible.tests package](custodian.ansible.tests.md) - - - - - * [custodian.ansible.tests.test_interpreter module](custodian.ansible.tests.test_interpreter.md) - - - - - * [custodian.ansible.actions module](custodian.ansible.actions.md) - - - * [`DictActions`](custodian.ansible.actions.md#custodian.ansible.actions.DictActions) - - - * [`DictActions.add_to_set()`](custodian.ansible.actions.md#custodian.ansible.actions.DictActions.add_to_set) - - - * [`DictActions.inc()`](custodian.ansible.actions.md#custodian.ansible.actions.DictActions.inc) - - - * [`DictActions.pop()`](custodian.ansible.actions.md#custodian.ansible.actions.DictActions.pop) - - - * [`DictActions.pull()`](custodian.ansible.actions.md#custodian.ansible.actions.DictActions.pull) - - - * [`DictActions.pull_all()`](custodian.ansible.actions.md#custodian.ansible.actions.DictActions.pull_all) - - - * [`DictActions.push()`](custodian.ansible.actions.md#custodian.ansible.actions.DictActions.push) - - - * [`DictActions.push_all()`](custodian.ansible.actions.md#custodian.ansible.actions.DictActions.push_all) - - - * [`DictActions.rename()`](custodian.ansible.actions.md#custodian.ansible.actions.DictActions.rename) - - - * [`DictActions.set()`](custodian.ansible.actions.md#custodian.ansible.actions.DictActions.set) - - - * [`DictActions.unset()`](custodian.ansible.actions.md#custodian.ansible.actions.DictActions.unset) - - - * [`FileActions`](custodian.ansible.actions.md#custodian.ansible.actions.FileActions) - - - * [`FileActions.file_copy()`](custodian.ansible.actions.md#custodian.ansible.actions.FileActions.file_copy) - - - * [`FileActions.file_create()`](custodian.ansible.actions.md#custodian.ansible.actions.FileActions.file_create) - - - * [`FileActions.file_delete()`](custodian.ansible.actions.md#custodian.ansible.actions.FileActions.file_delete) - - - * [`FileActions.file_modify()`](custodian.ansible.actions.md#custodian.ansible.actions.FileActions.file_modify) - - - * [`FileActions.file_move()`](custodian.ansible.actions.md#custodian.ansible.actions.FileActions.file_move) - - - * [`get_nested_dict()`](custodian.ansible.actions.md#custodian.ansible.actions.get_nested_dict) - - - * [custodian.ansible.interpreter module](custodian.ansible.interpreter.md) - - - * [`Modder`](custodian.ansible.interpreter.md#custodian.ansible.interpreter.Modder) - - - * [`Modder.modify()`](custodian.ansible.interpreter.md#custodian.ansible.interpreter.Modder.modify) - - - * [`Modder.modify_object()`](custodian.ansible.interpreter.md#custodian.ansible.interpreter.Modder.modify_object) - - + * [Subpackages](custodian.ansible.md#subpackages) + * [custodian.ansible.tests package]() + ```none + * [custodian.ansible.tests.test_interpreter module](custodian.ansible.tests.test_interpreter.md) + ``` + * [custodian.ansible.actions module](custodian.ansible.actions.md) + * [`DictActions`](custodian.ansible.actions.md#custodian.ansible.actions.DictActions) + * [`DictActions.add_to_set()`](custodian.ansible.actions.md#custodian.ansible.actions.DictActions.add_to_set) + * [`DictActions.inc()`](custodian.ansible.actions.md#custodian.ansible.actions.DictActions.inc) + * [`DictActions.pop()`](custodian.ansible.actions.md#custodian.ansible.actions.DictActions.pop) + * [`DictActions.pull()`](custodian.ansible.actions.md#custodian.ansible.actions.DictActions.pull) + * [`DictActions.pull_all()`](custodian.ansible.actions.md#custodian.ansible.actions.DictActions.pull_all) + * [`DictActions.push()`](custodian.ansible.actions.md#custodian.ansible.actions.DictActions.push) + * [`DictActions.push_all()`](custodian.ansible.actions.md#custodian.ansible.actions.DictActions.push_all) + * [`DictActions.rename()`](custodian.ansible.actions.md#custodian.ansible.actions.DictActions.rename) + * [`DictActions.set()`](custodian.ansible.actions.md#custodian.ansible.actions.DictActions.set) + * [`DictActions.unset()`](custodian.ansible.actions.md#custodian.ansible.actions.DictActions.unset) + * [`FileActions`](custodian.ansible.actions.md#custodian.ansible.actions.FileActions) + * [`FileActions.file_copy()`](custodian.ansible.actions.md#custodian.ansible.actions.FileActions.file_copy) + * [`FileActions.file_create()`](custodian.ansible.actions.md#custodian.ansible.actions.FileActions.file_create) + * [`FileActions.file_delete()`](custodian.ansible.actions.md#custodian.ansible.actions.FileActions.file_delete) + * [`FileActions.file_modify()`](custodian.ansible.actions.md#custodian.ansible.actions.FileActions.file_modify) + * [`FileActions.file_move()`](custodian.ansible.actions.md#custodian.ansible.actions.FileActions.file_move) + * [`get_nested_dict()`](custodian.ansible.actions.md#custodian.ansible.actions.get_nested_dict) + * [custodian.ansible.interpreter module](custodian.ansible.interpreter.md) + * [`Modder`](custodian.ansible.interpreter.md#custodian.ansible.interpreter.Modder) + * [`Modder.modify()`](custodian.ansible.interpreter.md#custodian.ansible.interpreter.Modder.modify) + * [`Modder.modify_object()`](custodian.ansible.interpreter.md#custodian.ansible.interpreter.Modder.modify_object) * [custodian.cli package](custodian.cli.md) + ```none + * [custodian.cli.converge_geometry module](custodian.cli.converge_geometry.md) + * [`do_run()`](custodian.cli.converge_geometry.md#custodian.cli.converge_geometry.do_run) - * [custodian.cli.converge_geometry module](custodian.cli.converge_geometry.md) - - - * [`do_run()`](custodian.cli.converge_geometry.md#custodian.cli.converge_geometry.do_run) - - - * [`get_runs()`](custodian.cli.converge_geometry.md#custodian.cli.converge_geometry.get_runs) - + * [`get_runs()`](custodian.cli.converge_geometry.md#custodian.cli.converge_geometry.get_runs) - * [custodian.cli.converge_kpoints module](custodian.cli.converge_kpoints.md) + * [custodian.cli.converge_kpoints module](custodian.cli.converge_kpoints.md) - * [`do_run()`](custodian.cli.converge_kpoints.md#custodian.cli.converge_kpoints.do_run) + * [`do_run()`](custodian.cli.converge_kpoints.md#custodian.cli.converge_kpoints.do_run) - * [`get_runs()`](custodian.cli.converge_kpoints.md#custodian.cli.converge_kpoints.get_runs) + * [`get_runs()`](custodian.cli.converge_kpoints.md#custodian.cli.converge_kpoints.get_runs) - * [`main()`](custodian.cli.converge_kpoints.md#custodian.cli.converge_kpoints.main) + * [`main()`](custodian.cli.converge_kpoints.md#custodian.cli.converge_kpoints.main) - * [custodian.cli.cstdn module](custodian.cli.cstdn.md) + * [custodian.cli.cstdn module](custodian.cli.cstdn.md) - * [`main()`](custodian.cli.cstdn.md#custodian.cli.cstdn.main) + * [`main()`](custodian.cli.cstdn.md#custodian.cli.cstdn.main) - * [`print_example()`](custodian.cli.cstdn.md#custodian.cli.cstdn.print_example) + * [`print_example()`](custodian.cli.cstdn.md#custodian.cli.cstdn.print_example) - * [`run()`](custodian.cli.cstdn.md#custodian.cli.cstdn.run) + * [`run()`](custodian.cli.cstdn.md#custodian.cli.cstdn.run) - * [custodian.cli.run_nwchem module](custodian.cli.run_nwchem.md) + * [custodian.cli.run_nwchem module](custodian.cli.run_nwchem.md) - * [`do_run()`](custodian.cli.run_nwchem.md#custodian.cli.run_nwchem.do_run) + * [`do_run()`](custodian.cli.run_nwchem.md#custodian.cli.run_nwchem.do_run) - * [`main()`](custodian.cli.run_nwchem.md#custodian.cli.run_nwchem.main) + * [`main()`](custodian.cli.run_nwchem.md#custodian.cli.run_nwchem.main) - * [custodian.cli.run_vasp module](custodian.cli.run_vasp.md) + * [custodian.cli.run_vasp module](custodian.cli.run_vasp.md) - * [`do_run()`](custodian.cli.run_vasp.md#custodian.cli.run_vasp.do_run) + * [`do_run()`](custodian.cli.run_vasp.md#custodian.cli.run_vasp.do_run) - * [`get_jobs()`](custodian.cli.run_vasp.md#custodian.cli.run_vasp.get_jobs) + * [`get_jobs()`](custodian.cli.run_vasp.md#custodian.cli.run_vasp.get_jobs) - * [`load_class()`](custodian.cli.run_vasp.md#custodian.cli.run_vasp.load_class) - - * [`main()`](custodian.cli.run_vasp.md#custodian.cli.run_vasp.main) + * [`load_class()`](custodian.cli.run_vasp.md#custodian.cli.run_vasp.load_class) + * [`main()`](custodian.cli.run_vasp.md#custodian.cli.run_vasp.main) + ``` * [custodian.cp2k package](custodian.cp2k.md) - - - * [Subpackages](custodian.cp2k.md#subpackages) - - - * [custodian.cp2k.tests package](custodian.cp2k.tests.md) - - - - - * [custodian.cp2k.tests.test_handlers module](custodian.cp2k.tests.test_handlers.md) - - - * [custodian.cp2k.tests.test_jobs module](custodian.cp2k.tests.test_jobs.md) - - - - - * [custodian.cp2k.handlers module](custodian.cp2k.handlers.md) - - - * [custodian.cp2k.interpreter module](custodian.cp2k.interpreter.md) - - - * [`Cp2kModder`](custodian.cp2k.interpreter.md#custodian.cp2k.interpreter.Cp2kModder) - - - * [`Cp2kModder.apply_actions()`](custodian.cp2k.interpreter.md#custodian.cp2k.interpreter.Cp2kModder.apply_actions) - - - * [custodian.cp2k.jobs module](custodian.cp2k.jobs.md) - - - * [`Cp2kJob`](custodian.cp2k.jobs.md#custodian.cp2k.jobs.Cp2kJob) - - - * [`Cp2kJob.double_job()`](custodian.cp2k.jobs.md#custodian.cp2k.jobs.Cp2kJob.double_job) - - - * [`Cp2kJob.gga_static_to_hybrid()`](custodian.cp2k.jobs.md#custodian.cp2k.jobs.Cp2kJob.gga_static_to_hybrid) - - - * [`Cp2kJob.postprocess()`](custodian.cp2k.jobs.md#custodian.cp2k.jobs.Cp2kJob.postprocess) - - - * [`Cp2kJob.pre_screen_hybrid()`](custodian.cp2k.jobs.md#custodian.cp2k.jobs.Cp2kJob.pre_screen_hybrid) - - - * [`Cp2kJob.run()`](custodian.cp2k.jobs.md#custodian.cp2k.jobs.Cp2kJob.run) - - - * [`Cp2kJob.setup()`](custodian.cp2k.jobs.md#custodian.cp2k.jobs.Cp2kJob.setup) - - - * [`Cp2kJob.terminate()`](custodian.cp2k.jobs.md#custodian.cp2k.jobs.Cp2kJob.terminate) - - - * [custodian.cp2k.utils module](custodian.cp2k.utils.md) - - - * [`activate_diag()`](custodian.cp2k.utils.md#custodian.cp2k.utils.activate_diag) - - - * [`activate_ot()`](custodian.cp2k.utils.md#custodian.cp2k.utils.activate_ot) - - - * [`can_use_ot()`](custodian.cp2k.utils.md#custodian.cp2k.utils.can_use_ot) - - - * [`cleanup_input()`](custodian.cp2k.utils.md#custodian.cp2k.utils.cleanup_input) - - - * [`get_conv()`](custodian.cp2k.utils.md#custodian.cp2k.utils.get_conv) - - - * [`restart()`](custodian.cp2k.utils.md#custodian.cp2k.utils.restart) - - - * [`tail()`](custodian.cp2k.utils.md#custodian.cp2k.utils.tail) - - - * [custodian.cp2k.validators module](custodian.cp2k.validators.md) - - - * [`Cp2kOutputValidator`](custodian.cp2k.validators.md#custodian.cp2k.validators.Cp2kOutputValidator) - - - * [`Cp2kOutputValidator.check()`](custodian.cp2k.validators.md#custodian.cp2k.validators.Cp2kOutputValidator.check) - - - * [`Cp2kOutputValidator.exit`](custodian.cp2k.validators.md#custodian.cp2k.validators.Cp2kOutputValidator.exit) - - - * [`Cp2kOutputValidator.kill`](custodian.cp2k.validators.md#custodian.cp2k.validators.Cp2kOutputValidator.kill) - - - * [`Cp2kOutputValidator.no_children`](custodian.cp2k.validators.md#custodian.cp2k.validators.Cp2kOutputValidator.no_children) - - - * [`Cp2kValidator`](custodian.cp2k.validators.md#custodian.cp2k.validators.Cp2kValidator) - - - * [`Cp2kValidator.check()`](custodian.cp2k.validators.md#custodian.cp2k.validators.Cp2kValidator.check) - - - * [`Cp2kValidator.exit`](custodian.cp2k.validators.md#custodian.cp2k.validators.Cp2kValidator.exit) - - - * [`Cp2kValidator.kill`](custodian.cp2k.validators.md#custodian.cp2k.validators.Cp2kValidator.kill) - - - * [`Cp2kValidator.no_children`](custodian.cp2k.validators.md#custodian.cp2k.validators.Cp2kValidator.no_children) - - + * [Subpackages](custodian.cp2k.md#subpackages) + * [custodian.cp2k.tests package]() + ```none + * [custodian.cp2k.tests.test_handlers module](custodian.cp2k.tests.test_handlers.md) + + + * [custodian.cp2k.tests.test_jobs module](custodian.cp2k.tests.test_jobs.md) + ``` + * [custodian.cp2k.handlers module](custodian.cp2k.handlers.md) + * [custodian.cp2k.interpreter module](custodian.cp2k.interpreter.md) + * [`Cp2kModder`](custodian.cp2k.interpreter.md#custodian.cp2k.interpreter.Cp2kModder) + * [`Cp2kModder.apply_actions()`](custodian.cp2k.interpreter.md#custodian.cp2k.interpreter.Cp2kModder.apply_actions) + * [custodian.cp2k.jobs module](custodian.cp2k.jobs.md) + * [`Cp2kJob`](custodian.cp2k.jobs.md#custodian.cp2k.jobs.Cp2kJob) + * [`Cp2kJob.double_job()`](custodian.cp2k.jobs.md#custodian.cp2k.jobs.Cp2kJob.double_job) + * [`Cp2kJob.gga_static_to_hybrid()`](custodian.cp2k.jobs.md#custodian.cp2k.jobs.Cp2kJob.gga_static_to_hybrid) + * [`Cp2kJob.postprocess()`](custodian.cp2k.jobs.md#custodian.cp2k.jobs.Cp2kJob.postprocess) + * [`Cp2kJob.pre_screen_hybrid()`](custodian.cp2k.jobs.md#custodian.cp2k.jobs.Cp2kJob.pre_screen_hybrid) + * [`Cp2kJob.run()`](custodian.cp2k.jobs.md#custodian.cp2k.jobs.Cp2kJob.run) + * [`Cp2kJob.setup()`](custodian.cp2k.jobs.md#custodian.cp2k.jobs.Cp2kJob.setup) + * [`Cp2kJob.terminate()`](custodian.cp2k.jobs.md#custodian.cp2k.jobs.Cp2kJob.terminate) + * [custodian.cp2k.utils module](custodian.cp2k.utils.md) + * [`activate_diag()`](custodian.cp2k.utils.md#custodian.cp2k.utils.activate_diag) + * [`activate_ot()`](custodian.cp2k.utils.md#custodian.cp2k.utils.activate_ot) + * [`can_use_ot()`](custodian.cp2k.utils.md#custodian.cp2k.utils.can_use_ot) + * [`cleanup_input()`](custodian.cp2k.utils.md#custodian.cp2k.utils.cleanup_input) + * [`get_conv()`](custodian.cp2k.utils.md#custodian.cp2k.utils.get_conv) + * [`restart()`](custodian.cp2k.utils.md#custodian.cp2k.utils.restart) + * [`tail()`](custodian.cp2k.utils.md#custodian.cp2k.utils.tail) + * [custodian.cp2k.validators module](custodian.cp2k.validators.md) + * [`Cp2kOutputValidator`](custodian.cp2k.validators.md#custodian.cp2k.validators.Cp2kOutputValidator) + * [`Cp2kOutputValidator.check()`](custodian.cp2k.validators.md#custodian.cp2k.validators.Cp2kOutputValidator.check) + * [`Cp2kOutputValidator.exit`](custodian.cp2k.validators.md#custodian.cp2k.validators.Cp2kOutputValidator.exit) + * [`Cp2kOutputValidator.kill`](custodian.cp2k.validators.md#custodian.cp2k.validators.Cp2kOutputValidator.kill) + * [`Cp2kOutputValidator.no_children`](custodian.cp2k.validators.md#custodian.cp2k.validators.Cp2kOutputValidator.no_children) + * [`Cp2kValidator`](custodian.cp2k.validators.md#custodian.cp2k.validators.Cp2kValidator) + * [`Cp2kValidator.check()`](custodian.cp2k.validators.md#custodian.cp2k.validators.Cp2kValidator.check) + * [`Cp2kValidator.exit`](custodian.cp2k.validators.md#custodian.cp2k.validators.Cp2kValidator.exit) + * [`Cp2kValidator.kill`](custodian.cp2k.validators.md#custodian.cp2k.validators.Cp2kValidator.kill) + * [`Cp2kValidator.no_children`](custodian.cp2k.validators.md#custodian.cp2k.validators.Cp2kValidator.no_children) * [custodian.feff package](custodian.feff.md) - - - * [Subpackages](custodian.feff.md#subpackages) - - - * [custodian.feff.tests package](custodian.feff.tests.md) - - - - - * [custodian.feff.tests.test_handler module](custodian.feff.tests.test_handler.md) - - - * [custodian.feff.tests.test_jobs module](custodian.feff.tests.test_jobs.md) - - - - - * [custodian.feff.handlers module](custodian.feff.handlers.md) - - - * [`UnconvergedErrorHandler`](custodian.feff.handlers.md#custodian.feff.handlers.UnconvergedErrorHandler) - - - * [`UnconvergedErrorHandler.check()`](custodian.feff.handlers.md#custodian.feff.handlers.UnconvergedErrorHandler.check) - - - * [`UnconvergedErrorHandler.correct()`](custodian.feff.handlers.md#custodian.feff.handlers.UnconvergedErrorHandler.correct) - - - * [`UnconvergedErrorHandler.is_monitor`](custodian.feff.handlers.md#custodian.feff.handlers.UnconvergedErrorHandler.is_monitor) - - - * [custodian.feff.interpreter module](custodian.feff.interpreter.md) - - - * [`FeffModder`](custodian.feff.interpreter.md#custodian.feff.interpreter.FeffModder) - - - * [`FeffModder.apply_actions()`](custodian.feff.interpreter.md#custodian.feff.interpreter.FeffModder.apply_actions) - - - * [custodian.feff.jobs module](custodian.feff.jobs.md) - - - * [`FeffJob`](custodian.feff.jobs.md#custodian.feff.jobs.FeffJob) - - - * [`FeffJob.postprocess()`](custodian.feff.jobs.md#custodian.feff.jobs.FeffJob.postprocess) - - - * [`FeffJob.run()`](custodian.feff.jobs.md#custodian.feff.jobs.FeffJob.run) - - - * [`FeffJob.setup()`](custodian.feff.jobs.md#custodian.feff.jobs.FeffJob.setup) - - + * [Subpackages](custodian.feff.md#subpackages) + * [custodian.feff.tests package]() + ```none + * [custodian.feff.tests.test_handler module](custodian.feff.tests.test_handler.md) + + + * [custodian.feff.tests.test_jobs module](custodian.feff.tests.test_jobs.md) + ``` + * [custodian.feff.handlers module](custodian.feff.handlers.md) + * [`UnconvergedErrorHandler`](custodian.feff.handlers.md#custodian.feff.handlers.UnconvergedErrorHandler) + * [`UnconvergedErrorHandler.check()`](custodian.feff.handlers.md#custodian.feff.handlers.UnconvergedErrorHandler.check) + * [`UnconvergedErrorHandler.correct()`](custodian.feff.handlers.md#custodian.feff.handlers.UnconvergedErrorHandler.correct) + * [`UnconvergedErrorHandler.is_monitor`](custodian.feff.handlers.md#custodian.feff.handlers.UnconvergedErrorHandler.is_monitor) + * [custodian.feff.interpreter module](custodian.feff.interpreter.md) + * [`FeffModder`](custodian.feff.interpreter.md#custodian.feff.interpreter.FeffModder) + * [`FeffModder.apply_actions()`](custodian.feff.interpreter.md#custodian.feff.interpreter.FeffModder.apply_actions) + * [custodian.feff.jobs module](custodian.feff.jobs.md) + * [`FeffJob`](custodian.feff.jobs.md#custodian.feff.jobs.FeffJob) + * [`FeffJob.postprocess()`](custodian.feff.jobs.md#custodian.feff.jobs.FeffJob.postprocess) + * [`FeffJob.run()`](custodian.feff.jobs.md#custodian.feff.jobs.FeffJob.run) + * [`FeffJob.setup()`](custodian.feff.jobs.md#custodian.feff.jobs.FeffJob.setup) * [custodian.lobster package](custodian.lobster.md) - - - * [Subpackages](custodian.lobster.md#subpackages) - - - * [custodian.lobster.tests package](custodian.lobster.tests.md) - - - - - * [custodian.lobster.tests.test_handlers module](custodian.lobster.tests.test_handlers.md) - - - * [custodian.lobster.tests.test_jobs module](custodian.lobster.tests.test_jobs.md) - - - - - * [custodian.lobster.handlers module](custodian.lobster.handlers.md) - - - * [`ChargeSpillingValidator`](custodian.lobster.handlers.md#custodian.lobster.handlers.ChargeSpillingValidator) - - - * [`ChargeSpillingValidator.check()`](custodian.lobster.handlers.md#custodian.lobster.handlers.ChargeSpillingValidator.check) - - - * [`EnoughBandsValidator`](custodian.lobster.handlers.md#custodian.lobster.handlers.EnoughBandsValidator) - - - * [`EnoughBandsValidator.check()`](custodian.lobster.handlers.md#custodian.lobster.handlers.EnoughBandsValidator.check) - - - * [`LobsterFilesValidator`](custodian.lobster.handlers.md#custodian.lobster.handlers.LobsterFilesValidator) - - - * [`LobsterFilesValidator.check()`](custodian.lobster.handlers.md#custodian.lobster.handlers.LobsterFilesValidator.check) - - - * [custodian.lobster.jobs module](custodian.lobster.jobs.md) - - - * [`LobsterJob`](custodian.lobster.jobs.md#custodian.lobster.jobs.LobsterJob) - - - * [`LobsterJob.postprocess()`](custodian.lobster.jobs.md#custodian.lobster.jobs.LobsterJob.postprocess) - - - * [`LobsterJob.run()`](custodian.lobster.jobs.md#custodian.lobster.jobs.LobsterJob.run) - - - * [`LobsterJob.setup()`](custodian.lobster.jobs.md#custodian.lobster.jobs.LobsterJob.setup) - - + * [Subpackages](custodian.lobster.md#subpackages) + * [custodian.lobster.tests package]() + ```none + * [custodian.lobster.tests.test_handlers module](custodian.lobster.tests.test_handlers.md) + + + * [custodian.lobster.tests.test_jobs module](custodian.lobster.tests.test_jobs.md) + ``` + * [custodian.lobster.handlers module](custodian.lobster.handlers.md) + * [`ChargeSpillingValidator`](custodian.lobster.handlers.md#custodian.lobster.handlers.ChargeSpillingValidator) + * [`ChargeSpillingValidator.check()`](custodian.lobster.handlers.md#custodian.lobster.handlers.ChargeSpillingValidator.check) + * [`EnoughBandsValidator`](custodian.lobster.handlers.md#custodian.lobster.handlers.EnoughBandsValidator) + * [`EnoughBandsValidator.check()`](custodian.lobster.handlers.md#custodian.lobster.handlers.EnoughBandsValidator.check) + * [`LobsterFilesValidator`](custodian.lobster.handlers.md#custodian.lobster.handlers.LobsterFilesValidator) + * [`LobsterFilesValidator.check()`](custodian.lobster.handlers.md#custodian.lobster.handlers.LobsterFilesValidator.check) + * [custodian.lobster.jobs module](custodian.lobster.jobs.md) + * [`LobsterJob`](custodian.lobster.jobs.md#custodian.lobster.jobs.LobsterJob) + * [`LobsterJob.postprocess()`](custodian.lobster.jobs.md#custodian.lobster.jobs.LobsterJob.postprocess) + * [`LobsterJob.run()`](custodian.lobster.jobs.md#custodian.lobster.jobs.LobsterJob.run) + * [`LobsterJob.setup()`](custodian.lobster.jobs.md#custodian.lobster.jobs.LobsterJob.setup) * [custodian.nwchem package](custodian.nwchem.md) - - - * [Subpackages](custodian.nwchem.md#subpackages) - - - * [custodian.nwchem.tests package](custodian.nwchem.tests.md) - - - - - * [custodian.nwchem.tests.test_handlers module](custodian.nwchem.tests.test_handlers.md) - - - - - * [custodian.nwchem.handlers module](custodian.nwchem.handlers.md) - - - * [`NwchemErrorHandler`](custodian.nwchem.handlers.md#custodian.nwchem.handlers.NwchemErrorHandler) - - - * [`NwchemErrorHandler.check()`](custodian.nwchem.handlers.md#custodian.nwchem.handlers.NwchemErrorHandler.check) - - - * [`NwchemErrorHandler.correct()`](custodian.nwchem.handlers.md#custodian.nwchem.handlers.NwchemErrorHandler.correct) - - - * [custodian.nwchem.jobs module](custodian.nwchem.jobs.md) - - - * [`NwchemJob`](custodian.nwchem.jobs.md#custodian.nwchem.jobs.NwchemJob) - - - * [`NwchemJob.postprocess()`](custodian.nwchem.jobs.md#custodian.nwchem.jobs.NwchemJob.postprocess) - - - * [`NwchemJob.run()`](custodian.nwchem.jobs.md#custodian.nwchem.jobs.NwchemJob.run) - - - * [`NwchemJob.setup()`](custodian.nwchem.jobs.md#custodian.nwchem.jobs.NwchemJob.setup) - - + * [Subpackages](custodian.nwchem.md#subpackages) + * [custodian.nwchem.tests package]() + ```none + * [custodian.nwchem.tests.test_handlers module](custodian.nwchem.tests.test_handlers.md) + ``` + * [custodian.nwchem.handlers module](custodian.nwchem.handlers.md) + * [`NwchemErrorHandler`](custodian.nwchem.handlers.md#custodian.nwchem.handlers.NwchemErrorHandler) + * [`NwchemErrorHandler.check()`](custodian.nwchem.handlers.md#custodian.nwchem.handlers.NwchemErrorHandler.check) + * [`NwchemErrorHandler.correct()`](custodian.nwchem.handlers.md#custodian.nwchem.handlers.NwchemErrorHandler.correct) + * [custodian.nwchem.jobs module](custodian.nwchem.jobs.md) + * [`NwchemJob`](custodian.nwchem.jobs.md#custodian.nwchem.jobs.NwchemJob) + * [`NwchemJob.postprocess()`](custodian.nwchem.jobs.md#custodian.nwchem.jobs.NwchemJob.postprocess) + * [`NwchemJob.run()`](custodian.nwchem.jobs.md#custodian.nwchem.jobs.NwchemJob.run) + * [`NwchemJob.setup()`](custodian.nwchem.jobs.md#custodian.nwchem.jobs.NwchemJob.setup) * [custodian.qchem package](custodian.qchem.md) + * [Subpackages](custodian.qchem.md#subpackages) + * [custodian.qchem.tests package]() + ```none + * [custodian.qchem.tests.test_handlers module](custodian.qchem.tests.test_handlers.md) - * [Subpackages](custodian.qchem.md#subpackages) - - - * [custodian.qchem.tests package](custodian.qchem.tests.md) - - - - - * [custodian.qchem.tests.test_handlers module](custodian.qchem.tests.test_handlers.md) - - - * [custodian.qchem.tests.test_job_handler_interaction module](custodian.qchem.tests.test_job_handler_interaction.md) - - - * [custodian.qchem.tests.test_jobs module](custodian.qchem.tests.test_jobs.md) - - - - - * [custodian.qchem.handlers module](custodian.qchem.handlers.md) - - - * [custodian.qchem.jobs module](custodian.qchem.jobs.md) - - - * [custodian.qchem.utils module](custodian.qchem.utils.md) - - - * [`perturb_coordinates()`](custodian.qchem.utils.md#custodian.qchem.utils.perturb_coordinates) - - - * [`vector_list_diff()`](custodian.qchem.utils.md#custodian.qchem.utils.vector_list_diff) + * [custodian.qchem.tests.test_job_handler_interaction module](custodian.qchem.tests.test_job_handler_interaction.md) + * [custodian.qchem.tests.test_jobs module](custodian.qchem.tests.test_jobs.md) + ``` + * [custodian.qchem.handlers module](custodian.qchem.handlers.md) + * [custodian.qchem.jobs module](custodian.qchem.jobs.md) + * [custodian.qchem.utils module](custodian.qchem.utils.md) + * [`perturb_coordinates()`](custodian.qchem.utils.md#custodian.qchem.utils.perturb_coordinates) + * [`vector_list_diff()`](custodian.qchem.utils.md#custodian.qchem.utils.vector_list_diff) * [custodian.vasp package](custodian.vasp.md) - - - * [Subpackages](custodian.vasp.md#subpackages) - - - * [custodian.vasp.tests package](custodian.vasp.tests.md) - - - - - * [custodian.vasp.tests.conftest module](custodian.vasp.tests.conftest.md) - - - * [custodian.vasp.tests.test_handlers module](custodian.vasp.tests.test_handlers.md) - - - * [custodian.vasp.tests.test_jobs module](custodian.vasp.tests.test_jobs.md) - - - * [custodian.vasp.tests.test_validators module](custodian.vasp.tests.test_validators.md) - - - - - * [custodian.vasp.handlers module](custodian.vasp.handlers.md) - - - * [`AliasingErrorHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.AliasingErrorHandler) - - - * [`AliasingErrorHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.AliasingErrorHandler.check) - - - * [`AliasingErrorHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.AliasingErrorHandler.correct) - - - * [`AliasingErrorHandler.error_msgs`](custodian.vasp.handlers.md#custodian.vasp.handlers.AliasingErrorHandler.error_msgs) - - - * [`AliasingErrorHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.AliasingErrorHandler.is_monitor) - - - * [`CheckpointHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.CheckpointHandler) - - - * [`CheckpointHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.CheckpointHandler.check) - - - * [`CheckpointHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.CheckpointHandler.correct) - - - * [`CheckpointHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.CheckpointHandler.is_monitor) - - - * [`CheckpointHandler.is_terminating`](custodian.vasp.handlers.md#custodian.vasp.handlers.CheckpointHandler.is_terminating) - - - * [`DriftErrorHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.DriftErrorHandler) - - - * [`DriftErrorHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.DriftErrorHandler.check) - - - * [`DriftErrorHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.DriftErrorHandler.correct) - - - * [`FrozenJobErrorHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.FrozenJobErrorHandler) - - - * [`FrozenJobErrorHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.FrozenJobErrorHandler.check) - - - * [`FrozenJobErrorHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.FrozenJobErrorHandler.correct) - - - * [`FrozenJobErrorHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.FrozenJobErrorHandler.is_monitor) - - - * [`IncorrectSmearingHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.IncorrectSmearingHandler) - - - * [`IncorrectSmearingHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.IncorrectSmearingHandler.check) - - - * [`IncorrectSmearingHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.IncorrectSmearingHandler.correct) - - - * [`IncorrectSmearingHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.IncorrectSmearingHandler.is_monitor) - - - * [`LargeSigmaHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.LargeSigmaHandler) - - - * [`LargeSigmaHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.LargeSigmaHandler.check) - - - * [`LargeSigmaHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.LargeSigmaHandler.correct) - - - * [`LargeSigmaHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.LargeSigmaHandler.is_monitor) - - - * [`LrfCommutatorHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.LrfCommutatorHandler) - - - * [`LrfCommutatorHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.LrfCommutatorHandler.check) - - - * [`LrfCommutatorHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.LrfCommutatorHandler.correct) - - - * [`LrfCommutatorHandler.error_msgs`](custodian.vasp.handlers.md#custodian.vasp.handlers.LrfCommutatorHandler.error_msgs) - - - * [`LrfCommutatorHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.LrfCommutatorHandler.is_monitor) - - - * [`MeshSymmetryErrorHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.MeshSymmetryErrorHandler) - - - * [`MeshSymmetryErrorHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.MeshSymmetryErrorHandler.check) - - - * [`MeshSymmetryErrorHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.MeshSymmetryErrorHandler.correct) - - - * [`MeshSymmetryErrorHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.MeshSymmetryErrorHandler.is_monitor) - - - * [`NonConvergingErrorHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.NonConvergingErrorHandler) - - - * [`NonConvergingErrorHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.NonConvergingErrorHandler.check) - - - * [`NonConvergingErrorHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.NonConvergingErrorHandler.correct) - - - * [`NonConvergingErrorHandler.from_dict()`](custodian.vasp.handlers.md#custodian.vasp.handlers.NonConvergingErrorHandler.from_dict) - - - * [`NonConvergingErrorHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.NonConvergingErrorHandler.is_monitor) - - - * [`PositiveEnergyErrorHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.PositiveEnergyErrorHandler) - - - * [`PositiveEnergyErrorHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.PositiveEnergyErrorHandler.check) - - - * [`PositiveEnergyErrorHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.PositiveEnergyErrorHandler.correct) - - - * [`PositiveEnergyErrorHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.PositiveEnergyErrorHandler.is_monitor) - - - * [`PotimErrorHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.PotimErrorHandler) - - - * [`PotimErrorHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.PotimErrorHandler.check) - - - * [`PotimErrorHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.PotimErrorHandler.correct) - - - * [`PotimErrorHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.PotimErrorHandler.is_monitor) - - - * [`ScanMetalHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.ScanMetalHandler) - - - * [`ScanMetalHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.ScanMetalHandler.check) - - - * [`ScanMetalHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.ScanMetalHandler.correct) - - - * [`ScanMetalHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.ScanMetalHandler.is_monitor) - - - * [`StdErrHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.StdErrHandler) - - - * [`StdErrHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.StdErrHandler.check) - - - * [`StdErrHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.StdErrHandler.correct) - - - * [`StdErrHandler.error_msgs`](custodian.vasp.handlers.md#custodian.vasp.handlers.StdErrHandler.error_msgs) - - - * [`StdErrHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.StdErrHandler.is_monitor) - - - * [`StoppedRunHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.StoppedRunHandler) - - - * [`StoppedRunHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.StoppedRunHandler.check) - - - * [`StoppedRunHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.StoppedRunHandler.correct) - - - * [`StoppedRunHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.StoppedRunHandler.is_monitor) - - - * [`StoppedRunHandler.is_terminating`](custodian.vasp.handlers.md#custodian.vasp.handlers.StoppedRunHandler.is_terminating) - - - * [`UnconvergedErrorHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.UnconvergedErrorHandler) - - - * [`UnconvergedErrorHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.UnconvergedErrorHandler.check) - - - * [`UnconvergedErrorHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.UnconvergedErrorHandler.correct) - - - * [`UnconvergedErrorHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.UnconvergedErrorHandler.is_monitor) - - - * [`VaspErrorHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.VaspErrorHandler) - - - * [`VaspErrorHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.VaspErrorHandler.check) - - - * [`VaspErrorHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.VaspErrorHandler.correct) - - - * [`VaspErrorHandler.error_msgs`](custodian.vasp.handlers.md#custodian.vasp.handlers.VaspErrorHandler.error_msgs) - - - * [`VaspErrorHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.VaspErrorHandler.is_monitor) - - - * [`WalltimeHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.WalltimeHandler) - - - * [`WalltimeHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.WalltimeHandler.check) - - - * [`WalltimeHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.WalltimeHandler.correct) - - - * [`WalltimeHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.WalltimeHandler.is_monitor) - - - * [`WalltimeHandler.is_terminating`](custodian.vasp.handlers.md#custodian.vasp.handlers.WalltimeHandler.is_terminating) - - - * [`WalltimeHandler.raises_runtime_error`](custodian.vasp.handlers.md#custodian.vasp.handlers.WalltimeHandler.raises_runtime_error) - - - * [custodian.vasp.interpreter module](custodian.vasp.interpreter.md) - - - * [`VaspModder`](custodian.vasp.interpreter.md#custodian.vasp.interpreter.VaspModder) - - - * [`VaspModder.apply_actions()`](custodian.vasp.interpreter.md#custodian.vasp.interpreter.VaspModder.apply_actions) - - - * [custodian.vasp.jobs module](custodian.vasp.jobs.md) - - - * [`GenerateVaspInputJob`](custodian.vasp.jobs.md#custodian.vasp.jobs.GenerateVaspInputJob) - - - * [`GenerateVaspInputJob.postprocess()`](custodian.vasp.jobs.md#custodian.vasp.jobs.GenerateVaspInputJob.postprocess) - - - * [`GenerateVaspInputJob.run()`](custodian.vasp.jobs.md#custodian.vasp.jobs.GenerateVaspInputJob.run) - - - * [`GenerateVaspInputJob.setup()`](custodian.vasp.jobs.md#custodian.vasp.jobs.GenerateVaspInputJob.setup) - - - * [`VaspJob`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspJob) - - - * [`VaspJob.constrained_opt_run()`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspJob.constrained_opt_run) - - - * [`VaspJob.double_relaxation_run()`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspJob.double_relaxation_run) - - - * [`VaspJob.full_opt_run()`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspJob.full_opt_run) - - - * [`VaspJob.metagga_opt_run()`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspJob.metagga_opt_run) - - - * [`VaspJob.postprocess()`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspJob.postprocess) - - - * [`VaspJob.run()`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspJob.run) - - - * [`VaspJob.setup()`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspJob.setup) - - - * [`VaspJob.terminate()`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspJob.terminate) - - - * [`VaspNEBJob`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspNEBJob) - - - * [`VaspNEBJob.postprocess()`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspNEBJob.postprocess) - - - * [`VaspNEBJob.run()`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspNEBJob.run) - - - * [`VaspNEBJob.setup()`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspNEBJob.setup) - - - * [custodian.vasp.validators module](custodian.vasp.validators.md) - - - * [`VaspAECCARValidator`](custodian.vasp.validators.md#custodian.vasp.validators.VaspAECCARValidator) - - - * [`VaspAECCARValidator.check()`](custodian.vasp.validators.md#custodian.vasp.validators.VaspAECCARValidator.check) - - - * [`VaspFilesValidator`](custodian.vasp.validators.md#custodian.vasp.validators.VaspFilesValidator) - - - * [`VaspFilesValidator.check()`](custodian.vasp.validators.md#custodian.vasp.validators.VaspFilesValidator.check) - - - * [`VaspNpTMDValidator`](custodian.vasp.validators.md#custodian.vasp.validators.VaspNpTMDValidator) - - - * [`VaspNpTMDValidator.check()`](custodian.vasp.validators.md#custodian.vasp.validators.VaspNpTMDValidator.check) - - - * [`VasprunXMLValidator`](custodian.vasp.validators.md#custodian.vasp.validators.VasprunXMLValidator) - - - * [`VasprunXMLValidator.check()`](custodian.vasp.validators.md#custodian.vasp.validators.VasprunXMLValidator.check) - - - * [`check_broken_chgcar()`](custodian.vasp.validators.md#custodian.vasp.validators.check_broken_chgcar) - - - - + * [Subpackages](custodian.vasp.md#subpackages) + * [custodian.vasp.tests package]() + ```none + * [custodian.vasp.tests.conftest module](custodian.vasp.tests.conftest.md) + + + * [custodian.vasp.tests.test_handlers module](custodian.vasp.tests.test_handlers.md) + + + * [custodian.vasp.tests.test_jobs module](custodian.vasp.tests.test_jobs.md) + + + * [custodian.vasp.tests.test_validators module](custodian.vasp.tests.test_validators.md) + ``` + * [custodian.vasp.handlers module](custodian.vasp.handlers.md) + * [`AliasingErrorHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.AliasingErrorHandler) + * [`AliasingErrorHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.AliasingErrorHandler.check) + * [`AliasingErrorHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.AliasingErrorHandler.correct) + * [`AliasingErrorHandler.error_msgs`](custodian.vasp.handlers.md#custodian.vasp.handlers.AliasingErrorHandler.error_msgs) + * [`AliasingErrorHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.AliasingErrorHandler.is_monitor) + * [`CheckpointHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.CheckpointHandler) + * [`CheckpointHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.CheckpointHandler.check) + * [`CheckpointHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.CheckpointHandler.correct) + * [`CheckpointHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.CheckpointHandler.is_monitor) + * [`CheckpointHandler.is_terminating`](custodian.vasp.handlers.md#custodian.vasp.handlers.CheckpointHandler.is_terminating) + * [`DriftErrorHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.DriftErrorHandler) + * [`DriftErrorHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.DriftErrorHandler.check) + * [`DriftErrorHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.DriftErrorHandler.correct) + * [`FrozenJobErrorHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.FrozenJobErrorHandler) + * [`FrozenJobErrorHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.FrozenJobErrorHandler.check) + * [`FrozenJobErrorHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.FrozenJobErrorHandler.correct) + * [`FrozenJobErrorHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.FrozenJobErrorHandler.is_monitor) + * [`IncorrectSmearingHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.IncorrectSmearingHandler) + * [`IncorrectSmearingHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.IncorrectSmearingHandler.check) + * [`IncorrectSmearingHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.IncorrectSmearingHandler.correct) + * [`IncorrectSmearingHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.IncorrectSmearingHandler.is_monitor) + * [`LargeSigmaHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.LargeSigmaHandler) + * [`LargeSigmaHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.LargeSigmaHandler.check) + * [`LargeSigmaHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.LargeSigmaHandler.correct) + * [`LargeSigmaHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.LargeSigmaHandler.is_monitor) + * [`LrfCommutatorHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.LrfCommutatorHandler) + * [`LrfCommutatorHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.LrfCommutatorHandler.check) + * [`LrfCommutatorHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.LrfCommutatorHandler.correct) + * [`LrfCommutatorHandler.error_msgs`](custodian.vasp.handlers.md#custodian.vasp.handlers.LrfCommutatorHandler.error_msgs) + * [`LrfCommutatorHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.LrfCommutatorHandler.is_monitor) + * [`MeshSymmetryErrorHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.MeshSymmetryErrorHandler) + * [`MeshSymmetryErrorHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.MeshSymmetryErrorHandler.check) + * [`MeshSymmetryErrorHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.MeshSymmetryErrorHandler.correct) + * [`MeshSymmetryErrorHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.MeshSymmetryErrorHandler.is_monitor) + * [`NonConvergingErrorHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.NonConvergingErrorHandler) + * [`NonConvergingErrorHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.NonConvergingErrorHandler.check) + * [`NonConvergingErrorHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.NonConvergingErrorHandler.correct) + * [`NonConvergingErrorHandler.from_dict()`](custodian.vasp.handlers.md#custodian.vasp.handlers.NonConvergingErrorHandler.from_dict) + * [`NonConvergingErrorHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.NonConvergingErrorHandler.is_monitor) + * [`PositiveEnergyErrorHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.PositiveEnergyErrorHandler) + * [`PositiveEnergyErrorHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.PositiveEnergyErrorHandler.check) + * [`PositiveEnergyErrorHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.PositiveEnergyErrorHandler.correct) + * [`PositiveEnergyErrorHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.PositiveEnergyErrorHandler.is_monitor) + * [`PotimErrorHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.PotimErrorHandler) + * [`PotimErrorHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.PotimErrorHandler.check) + * [`PotimErrorHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.PotimErrorHandler.correct) + * [`PotimErrorHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.PotimErrorHandler.is_monitor) + * [`ScanMetalHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.ScanMetalHandler) + * [`ScanMetalHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.ScanMetalHandler.check) + * [`ScanMetalHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.ScanMetalHandler.correct) + * [`ScanMetalHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.ScanMetalHandler.is_monitor) + * [`StdErrHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.StdErrHandler) + * [`StdErrHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.StdErrHandler.check) + * [`StdErrHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.StdErrHandler.correct) + * [`StdErrHandler.error_msgs`](custodian.vasp.handlers.md#custodian.vasp.handlers.StdErrHandler.error_msgs) + * [`StdErrHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.StdErrHandler.is_monitor) + * [`StoppedRunHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.StoppedRunHandler) + * [`StoppedRunHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.StoppedRunHandler.check) + * [`StoppedRunHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.StoppedRunHandler.correct) + * [`StoppedRunHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.StoppedRunHandler.is_monitor) + * [`StoppedRunHandler.is_terminating`](custodian.vasp.handlers.md#custodian.vasp.handlers.StoppedRunHandler.is_terminating) + * [`UnconvergedErrorHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.UnconvergedErrorHandler) + * [`UnconvergedErrorHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.UnconvergedErrorHandler.check) + * [`UnconvergedErrorHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.UnconvergedErrorHandler.correct) + * [`UnconvergedErrorHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.UnconvergedErrorHandler.is_monitor) + * [`VaspErrorHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.VaspErrorHandler) + * [`VaspErrorHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.VaspErrorHandler.check) + * [`VaspErrorHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.VaspErrorHandler.correct) + * [`VaspErrorHandler.error_msgs`](custodian.vasp.handlers.md#custodian.vasp.handlers.VaspErrorHandler.error_msgs) + * [`VaspErrorHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.VaspErrorHandler.is_monitor) + * [`WalltimeHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.WalltimeHandler) + * [`WalltimeHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.WalltimeHandler.check) + * [`WalltimeHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.WalltimeHandler.correct) + * [`WalltimeHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.WalltimeHandler.is_monitor) + * [`WalltimeHandler.is_terminating`](custodian.vasp.handlers.md#custodian.vasp.handlers.WalltimeHandler.is_terminating) + * [`WalltimeHandler.raises_runtime_error`](custodian.vasp.handlers.md#custodian.vasp.handlers.WalltimeHandler.raises_runtime_error) + * [custodian.vasp.interpreter module](custodian.vasp.interpreter.md) + * [`VaspModder`](custodian.vasp.interpreter.md#custodian.vasp.interpreter.VaspModder) + * [`VaspModder.apply_actions()`](custodian.vasp.interpreter.md#custodian.vasp.interpreter.VaspModder.apply_actions) + * [custodian.vasp.jobs module](custodian.vasp.jobs.md) + * [`GenerateVaspInputJob`](custodian.vasp.jobs.md#custodian.vasp.jobs.GenerateVaspInputJob) + * [`GenerateVaspInputJob.postprocess()`](custodian.vasp.jobs.md#custodian.vasp.jobs.GenerateVaspInputJob.postprocess) + * [`GenerateVaspInputJob.run()`](custodian.vasp.jobs.md#custodian.vasp.jobs.GenerateVaspInputJob.run) + * [`GenerateVaspInputJob.setup()`](custodian.vasp.jobs.md#custodian.vasp.jobs.GenerateVaspInputJob.setup) + * [`VaspJob`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspJob) + * [`VaspJob.constrained_opt_run()`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspJob.constrained_opt_run) + * [`VaspJob.double_relaxation_run()`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspJob.double_relaxation_run) + * [`VaspJob.full_opt_run()`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspJob.full_opt_run) + * [`VaspJob.metagga_opt_run()`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspJob.metagga_opt_run) + * [`VaspJob.postprocess()`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspJob.postprocess) + * [`VaspJob.run()`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspJob.run) + * [`VaspJob.setup()`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspJob.setup) + * [`VaspJob.terminate()`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspJob.terminate) + * [`VaspNEBJob`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspNEBJob) + * [`VaspNEBJob.postprocess()`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspNEBJob.postprocess) + * [`VaspNEBJob.run()`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspNEBJob.run) + * [`VaspNEBJob.setup()`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspNEBJob.setup) + * [custodian.vasp.validators module](custodian.vasp.validators.md) + * [`VaspAECCARValidator`](custodian.vasp.validators.md#custodian.vasp.validators.VaspAECCARValidator) + * [`VaspAECCARValidator.check()`](custodian.vasp.validators.md#custodian.vasp.validators.VaspAECCARValidator.check) + * [`VaspFilesValidator`](custodian.vasp.validators.md#custodian.vasp.validators.VaspFilesValidator) + * [`VaspFilesValidator.check()`](custodian.vasp.validators.md#custodian.vasp.validators.VaspFilesValidator.check) + * [`VaspNpTMDValidator`](custodian.vasp.validators.md#custodian.vasp.validators.VaspNpTMDValidator) + * [`VaspNpTMDValidator.check()`](custodian.vasp.validators.md#custodian.vasp.validators.VaspNpTMDValidator.check) + * [`VasprunXMLValidator`](custodian.vasp.validators.md#custodian.vasp.validators.VasprunXMLValidator) + * [`VasprunXMLValidator.check()`](custodian.vasp.validators.md#custodian.vasp.validators.VasprunXMLValidator.check) + * [`check_broken_chgcar()`](custodian.vasp.validators.md#custodian.vasp.validators.check_broken_chgcar) * [custodian.custodian module](custodian.custodian.md) - - - * [`Custodian`](custodian.custodian.md#custodian.custodian.Custodian) - - - * [`Custodian.LOG_FILE`](custodian.custodian.md#custodian.custodian.Custodian.LOG_FILE) - - - * [`Custodian.from_spec()`](custodian.custodian.md#custodian.custodian.Custodian.from_spec) - - - * [`Custodian.run()`](custodian.custodian.md#custodian.custodian.Custodian.run) - - - * [`Custodian.run_interrupted()`](custodian.custodian.md#custodian.custodian.Custodian.run_interrupted) - - - * [`CustodianError`](custodian.custodian.md#custodian.custodian.CustodianError) - - - * [`ErrorHandler`](custodian.custodian.md#custodian.custodian.ErrorHandler) - - - * [`ErrorHandler.check()`](custodian.custodian.md#custodian.custodian.ErrorHandler.check) - - - * [`ErrorHandler.correct()`](custodian.custodian.md#custodian.custodian.ErrorHandler.correct) - - - * [`ErrorHandler.is_monitor`](custodian.custodian.md#custodian.custodian.ErrorHandler.is_monitor) - - - * [`ErrorHandler.is_terminating`](custodian.custodian.md#custodian.custodian.ErrorHandler.is_terminating) - - - * [`ErrorHandler.max_num_corrections`](custodian.custodian.md#custodian.custodian.ErrorHandler.max_num_corrections) - - - * [`ErrorHandler.n_applied_corrections`](custodian.custodian.md#custodian.custodian.ErrorHandler.n_applied_corrections) - - - * [`ErrorHandler.raise_on_max`](custodian.custodian.md#custodian.custodian.ErrorHandler.raise_on_max) - - - * [`ErrorHandler.raises_runtime_error`](custodian.custodian.md#custodian.custodian.ErrorHandler.raises_runtime_error) - - - * [`Job`](custodian.custodian.md#custodian.custodian.Job) - - - * [`Job.name`](custodian.custodian.md#custodian.custodian.Job.name) - - - * [`Job.postprocess()`](custodian.custodian.md#custodian.custodian.Job.postprocess) - - - * [`Job.run()`](custodian.custodian.md#custodian.custodian.Job.run) - - - * [`Job.setup()`](custodian.custodian.md#custodian.custodian.Job.setup) - - - * [`Job.terminate()`](custodian.custodian.md#custodian.custodian.Job.terminate) - - - * [`MaxCorrectionsError`](custodian.custodian.md#custodian.custodian.MaxCorrectionsError) - - - * [`MaxCorrectionsPerHandlerError`](custodian.custodian.md#custodian.custodian.MaxCorrectionsPerHandlerError) - - - * [`MaxCorrectionsPerJobError`](custodian.custodian.md#custodian.custodian.MaxCorrectionsPerJobError) - - - * [`NonRecoverableError`](custodian.custodian.md#custodian.custodian.NonRecoverableError) - - - * [`ReturnCodeError`](custodian.custodian.md#custodian.custodian.ReturnCodeError) - - - * [`ValidationError`](custodian.custodian.md#custodian.custodian.ValidationError) - - - * [`Validator`](custodian.custodian.md#custodian.custodian.Validator) - - - * [`Validator.check()`](custodian.custodian.md#custodian.custodian.Validator.check) - - + * [`Custodian`](custodian.custodian.md#custodian.custodian.Custodian) + * [`Custodian.LOG_FILE`](custodian.custodian.md#custodian.custodian.Custodian.LOG_FILE) + * [`Custodian.from_spec()`](custodian.custodian.md#custodian.custodian.Custodian.from_spec) + * [`Custodian.run()`](custodian.custodian.md#custodian.custodian.Custodian.run) + * [`Custodian.run_interrupted()`](custodian.custodian.md#custodian.custodian.Custodian.run_interrupted) + * [`CustodianError`](custodian.custodian.md#custodian.custodian.CustodianError) + * [`ErrorHandler`](custodian.custodian.md#custodian.custodian.ErrorHandler) + * [`ErrorHandler.check()`](custodian.custodian.md#custodian.custodian.ErrorHandler.check) + * [`ErrorHandler.correct()`](custodian.custodian.md#custodian.custodian.ErrorHandler.correct) + * [`ErrorHandler.is_monitor`](custodian.custodian.md#custodian.custodian.ErrorHandler.is_monitor) + * [`ErrorHandler.is_terminating`](custodian.custodian.md#custodian.custodian.ErrorHandler.is_terminating) + * [`ErrorHandler.max_num_corrections`](custodian.custodian.md#custodian.custodian.ErrorHandler.max_num_corrections) + * [`ErrorHandler.n_applied_corrections`](custodian.custodian.md#custodian.custodian.ErrorHandler.n_applied_corrections) + * [`ErrorHandler.raise_on_max`](custodian.custodian.md#custodian.custodian.ErrorHandler.raise_on_max) + * [`ErrorHandler.raises_runtime_error`](custodian.custodian.md#custodian.custodian.ErrorHandler.raises_runtime_error) + * [`Job`](custodian.custodian.md#custodian.custodian.Job) + * [`Job.name`](custodian.custodian.md#custodian.custodian.Job.name) + * [`Job.postprocess()`](custodian.custodian.md#custodian.custodian.Job.postprocess) + * [`Job.run()`](custodian.custodian.md#custodian.custodian.Job.run) + * [`Job.setup()`](custodian.custodian.md#custodian.custodian.Job.setup) + * [`Job.terminate()`](custodian.custodian.md#custodian.custodian.Job.terminate) + * [`MaxCorrectionsError`](custodian.custodian.md#custodian.custodian.MaxCorrectionsError) + * [`MaxCorrectionsPerHandlerError`](custodian.custodian.md#custodian.custodian.MaxCorrectionsPerHandlerError) + * [`MaxCorrectionsPerJobError`](custodian.custodian.md#custodian.custodian.MaxCorrectionsPerJobError) + * [`NonRecoverableError`](custodian.custodian.md#custodian.custodian.NonRecoverableError) + * [`ReturnCodeError`](custodian.custodian.md#custodian.custodian.ReturnCodeError) + * [`ValidationError`](custodian.custodian.md#custodian.custodian.ValidationError) + * [`Validator`](custodian.custodian.md#custodian.custodian.Validator) + * [`Validator.check()`](custodian.custodian.md#custodian.custodian.Validator.check) * [custodian.utils module](custodian.utils.md) - - - * [`backup()`](custodian.utils.md#custodian.utils.backup) - - - * [`get_execution_host_info()`](custodian.utils.md#custodian.utils.get_execution_host_info) \ No newline at end of file + * [`backup()`](custodian.utils.md#custodian.utils.backup) + * [`get_execution_host_info()`](custodian.utils.md#custodian.utils.get_execution_host_info) \ No newline at end of file diff --git a/docs/custodian.nwchem.handlers.md b/docs/custodian.nwchem.handlers.md index 3b36aba0..a311a81b 100644 --- a/docs/custodian.nwchem.handlers.md +++ b/docs/custodian.nwchem.handlers.md @@ -9,8 +9,8 @@ nav_exclude: true This module implements error handlers for Nwchem runs. Currently tested only for B3LYP DFT jobs. +## *class* custodian.nwchem.handlers.NwchemErrorHandler(output_filename=’mol.nwout’) -### _class_ custodian.nwchem.handlers.NwchemErrorHandler(output_filename='mol.nwout') Bases: [`ErrorHandler`](custodian.custodian.md#custodian.custodian.ErrorHandler) Error handler for Nwchem Jobs. Currently tested only for B3LYP DFT jobs @@ -18,20 +18,17 @@ generated by pymatgen. Initializes with an output file name. - * **Parameters** - **output_filename** (*str*) – This is the file where the stdout for nwchem - is being redirected. The error messages that are checked are - present in the stdout. Defaults to “mol.nwout”, which is the - default redirect used by `custodian.nwchem.jobs - .NwchemJob`. - + **output_filename** (*str*) – This is the file where the stdout for nwchem + is being redirected. The error messages that are checked are + present in the stdout. Defaults to “mol.nwout”, which is the + default redirect used by `custodian.nwchem.jobs .NwchemJob`. +### check() -#### check() Check for errors. +### correct() -#### correct() Correct errors \ No newline at end of file diff --git a/docs/custodian.nwchem.jobs.md b/docs/custodian.nwchem.jobs.md index 3931fde2..bdd2aab2 100644 --- a/docs/custodian.nwchem.jobs.md +++ b/docs/custodian.nwchem.jobs.md @@ -8,50 +8,36 @@ nav_exclude: true This module implements basic kinds of jobs for Nwchem runs. +## *class* custodian.nwchem.jobs.NwchemJob(nwchem_cmd, input_file=’mol.nw’, output_file=’mol.nwout’, gzipped=False, backup=True, settings_override=None) -### _class_ custodian.nwchem.jobs.NwchemJob(nwchem_cmd, input_file='mol.nw', output_file='mol.nwout', gzipped=False, backup=True, settings_override=None) Bases: [`Job`](custodian.custodian.md#custodian.custodian.Job) A basic Nwchem job. Initializes a basic NwChem job. - * **Parameters** - - - * **nwchem_cmd** (*[**str**]*) – Command to run Nwchem as a list of args. For + * **nwchem_cmd** (*[**str**]*) – Command to run Nwchem as a list of args. For example, [“nwchem”]. - - - * **input_file** (*str*) – Input file to run. Defaults to “mol.nw”. - - - * **output_file** (*str*) – Name of file to direct standard out to. + * **input_file** (*str*) – Input file to run. Defaults to “mol.nw”. + * **output_file** (*str*) – Name of file to direct standard out to. Defaults to “mol.nwout”. - - - * **backup** (*bool*) – Whether to backup the initial input files. If True, + * **backup** (*bool*) – Whether to backup the initial input files. If True, the input files will be copied with a “.orig” appended. Defaults to True. - - - * **gzipped** (*bool*) – Deprecated. Please use the Custodian class’s + * **gzipped** (*bool*) – Deprecated. Please use the Custodian class’s gzipped_output option instead. - - - * **settings_override** (*[**dict**]*) – An ansible style list of dict to override changes. + * **settings_override** (*[**dict**]*) – An ansible style list of dict to override changes. #TODO: Not implemented yet. +### postprocess() - -#### postprocess() Renaming or gzipping as needed. +### run() -#### run() Performs actual nwchem run. +### setup() -#### setup() Performs backup if necessary. \ No newline at end of file diff --git a/docs/custodian.nwchem.md b/docs/custodian.nwchem.md index e2e910d6..6af2702f 100644 --- a/docs/custodian.nwchem.md +++ b/docs/custodian.nwchem.md @@ -10,39 +10,16 @@ This package implements various Nwchem Jobs and Error Handlers. ## Subpackages - -* [custodian.nwchem.tests package](custodian.nwchem.tests.md) - - - - - * [custodian.nwchem.tests.test_handlers module](custodian.nwchem.tests.test_handlers.md) - - - - +* [custodian.nwchem.tests package]() + ```none + * [custodian.nwchem.tests.test_handlers module](custodian.nwchem.tests.test_handlers.md) + ``` * [custodian.nwchem.handlers module](custodian.nwchem.handlers.md) - - - * [`NwchemErrorHandler`](custodian.nwchem.handlers.md#custodian.nwchem.handlers.NwchemErrorHandler) - - - * [`NwchemErrorHandler.check()`](custodian.nwchem.handlers.md#custodian.nwchem.handlers.NwchemErrorHandler.check) - - - * [`NwchemErrorHandler.correct()`](custodian.nwchem.handlers.md#custodian.nwchem.handlers.NwchemErrorHandler.correct) - - + * [`NwchemErrorHandler`](custodian.nwchem.handlers.md#custodian.nwchem.handlers.NwchemErrorHandler) + * [`NwchemErrorHandler.check()`](custodian.nwchem.handlers.md#custodian.nwchem.handlers.NwchemErrorHandler.check) + * [`NwchemErrorHandler.correct()`](custodian.nwchem.handlers.md#custodian.nwchem.handlers.NwchemErrorHandler.correct) * [custodian.nwchem.jobs module](custodian.nwchem.jobs.md) - - - * [`NwchemJob`](custodian.nwchem.jobs.md#custodian.nwchem.jobs.NwchemJob) - - - * [`NwchemJob.postprocess()`](custodian.nwchem.jobs.md#custodian.nwchem.jobs.NwchemJob.postprocess) - - - * [`NwchemJob.run()`](custodian.nwchem.jobs.md#custodian.nwchem.jobs.NwchemJob.run) - - - * [`NwchemJob.setup()`](custodian.nwchem.jobs.md#custodian.nwchem.jobs.NwchemJob.setup) \ No newline at end of file + * [`NwchemJob`](custodian.nwchem.jobs.md#custodian.nwchem.jobs.NwchemJob) + * [`NwchemJob.postprocess()`](custodian.nwchem.jobs.md#custodian.nwchem.jobs.NwchemJob.postprocess) + * [`NwchemJob.run()`](custodian.nwchem.jobs.md#custodian.nwchem.jobs.NwchemJob.run) + * [`NwchemJob.setup()`](custodian.nwchem.jobs.md#custodian.nwchem.jobs.NwchemJob.setup) \ No newline at end of file diff --git a/docs/custodian.qchem.md b/docs/custodian.qchem.md index d2531863..373a787c 100644 --- a/docs/custodian.qchem.md +++ b/docs/custodian.qchem.md @@ -10,33 +10,18 @@ This package implements various QChem Jobs and Error Handlers. ## Subpackages - -* [custodian.qchem.tests package](custodian.qchem.tests.md) - - - - - * [custodian.qchem.tests.test_handlers module](custodian.qchem.tests.test_handlers.md) - - - * [custodian.qchem.tests.test_job_handler_interaction module](custodian.qchem.tests.test_job_handler_interaction.md) - - - * [custodian.qchem.tests.test_jobs module](custodian.qchem.tests.test_jobs.md) +* [custodian.qchem.tests package]() + ```none + * [custodian.qchem.tests.test_handlers module](custodian.qchem.tests.test_handlers.md) + * [custodian.qchem.tests.test_job_handler_interaction module](custodian.qchem.tests.test_job_handler_interaction.md) + * [custodian.qchem.tests.test_jobs module](custodian.qchem.tests.test_jobs.md) + ``` * [custodian.qchem.handlers module](custodian.qchem.handlers.md) - - * [custodian.qchem.jobs module](custodian.qchem.jobs.md) - - * [custodian.qchem.utils module](custodian.qchem.utils.md) - - - * [`perturb_coordinates()`](custodian.qchem.utils.md#custodian.qchem.utils.perturb_coordinates) - - - * [`vector_list_diff()`](custodian.qchem.utils.md#custodian.qchem.utils.vector_list_diff) \ No newline at end of file + * [`perturb_coordinates()`](custodian.qchem.utils.md#custodian.qchem.utils.perturb_coordinates) + * [`vector_list_diff()`](custodian.qchem.utils.md#custodian.qchem.utils.vector_list_diff) \ No newline at end of file diff --git a/docs/custodian.qchem.utils.md b/docs/custodian.qchem.utils.md index 1badf0ec..0f74dcfc 100644 --- a/docs/custodian.qchem.utils.md +++ b/docs/custodian.qchem.utils.md @@ -8,8 +8,8 @@ nav_exclude: true This module contains utility functions that are useful for Q-Chem jobs. +## custodian.qchem.utils.perturb_coordinates(old_coords, negative_freq_vecs, molecule_perturb_scale, reversed_direction) -### custodian.qchem.utils.perturb_coordinates(old_coords, negative_freq_vecs, molecule_perturb_scale, reversed_direction) Perturbs a structure along the imaginary mode vibrational frequency vectors old_coords (np.ndarray): Initial molecule coordinates @@ -19,12 +19,14 @@ negative_freq_vecs (list of np.ndarray): Vibrational frequency vectors correspon molecule_perturb_scale (float): Scaling factor for coordination modification. The perturbation - vector will be multiplied by this factor. +```none +vector will be multiplied by this factor. +``` reversed_direction (bool): If True, then perturb in direction opposite of frequency modes. +## custodian.qchem.utils.vector_list_diff(vecs1, vecs2) -### custodian.qchem.utils.vector_list_diff(vecs1, vecs2) Calculates the summed difference of two vectors Typically this function is used to compare between the different atom-wise @@ -32,8 +34,12 @@ components of a vibrational frequency mode vector. vecs1 (np.ndarray): Collection of vectors to be compared. Typical dimension - n x 3 +```none +n x 3 +``` vecs2 (np.ndarray): Collection of vectors to be compared. Typical dimension - n x 3 \ No newline at end of file +```none +n x 3 +``` \ No newline at end of file diff --git a/docs/custodian.utils.md b/docs/custodian.utils.md index ade7559d..3f982d37 100644 --- a/docs/custodian.utils.md +++ b/docs/custodian.utils.md @@ -8,29 +8,22 @@ nav_exclude: true Utility function and classes. +## custodian.utils.backup(filenames, prefix=’error’) -### custodian.utils.backup(filenames, prefix='error') Backup files to a tar.gz file. Used, for example, in backing up the files of an errored run before performing corrections. - * **Parameters** - - - * **filenames** (*[**str**]*) – List of files to backup. Supports wildcards, e.g., + * **filenames** (*[**str**]*) – List of files to backup. Supports wildcards, e.g., *.*. - - - * **prefix** (*str*) – prefix to the files. Defaults to error, which means a + * **prefix** (*str*) – prefix to the files. Defaults to error, which means a series of error.1.tar.gz, error.2.tar.gz, … will be generated. +## custodian.utils.get_execution_host_info() - -### custodian.utils.get_execution_host_info() Tries to return a tuple describing the execution host. Doesn’t work for all queueing systems - * **Returns** - (HOSTNAME, CLUSTER_NAME) \ No newline at end of file + (HOSTNAME, CLUSTER_NAME) \ No newline at end of file diff --git a/docs/custodian.vasp.handlers.md b/docs/custodian.vasp.handlers.md index c3c9d6de..b7b2fa3e 100644 --- a/docs/custodian.vasp.handlers.md +++ b/docs/custodian.vasp.handlers.md @@ -10,8 +10,8 @@ This module implements specific error handlers for VASP runs. These handlers try to detect common errors in vasp runs and attempt to fix them on the fly by modifying the input files. +## *class* custodian.vasp.handlers.AliasingErrorHandler(output_filename=’vasp.out’) -### _class_ custodian.vasp.handlers.AliasingErrorHandler(output_filename='vasp.out') Bases: [`ErrorHandler`](custodian.custodian.md#custodian.custodian.ErrorHandler) Master VaspErrorHandler class that handles a number of common errors @@ -19,27 +19,25 @@ that occur during VASP runs. Initializes the handler with the output file to check. - * **Parameters** - **output_filename** (*str*) – This is the file where the stdout for vasp - is being redirected. The error messages that are checked are - present in the stdout. Defaults to “vasp.out”, which is the - default redirect used by [`custodian.vasp.jobs.VaspJob`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspJob). - + **output_filename** (*str*) – This is the file where the stdout for vasp + is being redirected. The error messages that are checked are + present in the stdout. Defaults to “vasp.out”, which is the + default redirect used by [`custodian.vasp.jobs.VaspJob`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspJob). +### check() -#### check() Check for error. +### correct() -#### correct() Perform corrections. +### error_msgs(_ = {‘aliasing’: [‘WARNING: small aliasing (wrap around) errors must be expected’], ‘aliasing_incar’: [‘Your FFT grids (NGX,NGY,NGZ) are not sufficient for an accurate’]_ ) -#### error_msgs(_ = {'aliasing': ['WARNING: small aliasing (wrap around) errors must be expected'], 'aliasing_incar': ['Your FFT grids (NGX,NGY,NGZ) are not sufficient for an accurate']_ ) +### is_monitor(_ = Tru_ ) -#### is_monitor(_ = Tru_ ) This class property indicates whether the error handler is a monitor, i.e., a handler that monitors a job as it is running. If a monitor-type handler notices an error, the job will be sent a @@ -47,8 +45,8 @@ termination signal, the error is then corrected, and then the job is restarted. This is useful for catching errors that occur early in the run but do not cause immediate failure. +## *class* custodian.vasp.handlers.CheckpointHandler(interval=3600) -### _class_ custodian.vasp.handlers.CheckpointHandler(interval=3600) Bases: [`ErrorHandler`](custodian.custodian.md#custodian.custodian.ErrorHandler) This is not an error handler per se, but rather a checkpointer. What this @@ -62,26 +60,20 @@ combination with the StoppedRunHandler. Initializes the handler with an interval. - * **Parameters** + * **interval** (*int*) – Interval at which to checkpoint in seconds. + * **3600** (*Defaults to*) – +### check() - * **interval** (*int*) – Interval at which to checkpoint in seconds. - - - * **3600** (*Defaults to*) – - - - -#### check() Check for error. +### correct() -#### correct() Perform corrections. +### is_monitor(_ = Tru_ ) -#### is_monitor(_ = Tru_ ) This class property indicates whether the error handler is a monitor, i.e., a handler that monitors a job as it is running. If a monitor-type handler notices an error, the job will be sent a @@ -89,8 +81,8 @@ termination signal, the error is then corrected, and then the job is restarted. This is useful for catching errors that occur early in the run but do not cause immediate failure. +### is_terminating(_ = Fals_ ) -#### is_terminating(_ = Fals_ ) Whether this handler terminates a job upon error detection. By default, this is True, which means that the current Job will be terminated upon error detection, corrections applied, @@ -101,8 +93,8 @@ a job to terminate gracefully once it finishes its current task. The handler to set the flag should be classified as is_terminating = False to not terminate the job. +## *class* custodian.vasp.handlers.DriftErrorHandler(max_drift=None, to_average=3, enaug_multiply=2) -### _class_ custodian.vasp.handlers.DriftErrorHandler(max_drift=None, to_average=3, enaug_multiply=2) Bases: [`ErrorHandler`](custodian.custodian.md#custodian.custodian.ErrorHandler) Corrects for total drift exceeding the force convergence criteria. @@ -112,16 +104,16 @@ Initializes the handler with max drift > EDFIFFG +### check() -#### check() Check for error. +### correct() -#### correct() Perform corrections. +## *class* custodian.vasp.handlers.FrozenJobErrorHandler(output_filename=’vasp.out’, timeout=21600) -### _class_ custodian.vasp.handlers.FrozenJobErrorHandler(output_filename='vasp.out', timeout=21600) Bases: [`ErrorHandler`](custodian.custodian.md#custodian.custodian.ErrorHandler) Detects an error when the output file has not been updated @@ -129,31 +121,25 @@ in timeout seconds. Changes ALGO to Normal from Fast Initializes the handler with the output file to check. - * **Parameters** - - - * **output_filename** (*str*) – This is the file where the stdout for vasp + * **output_filename** (*str*) – This is the file where the stdout for vasp is being redirected. The error messages that are checked are present in the stdout. Defaults to “vasp.out”, which is the default redirect used by [`custodian.vasp.jobs.VaspJob`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspJob). - - - * **timeout** (*int*) – The time in seconds between checks where if there + * **timeout** (*int*) – The time in seconds between checks where if there is no activity on the output file, the run is considered frozen. Defaults to 3600 seconds, i.e., 1 hour. +### check() - -#### check() Check for error. +### correct() -#### correct() Perform corrections. +### is_monitor(_ = Tru_ ) -#### is_monitor(_ = Tru_ ) This class property indicates whether the error handler is a monitor, i.e., a handler that monitors a job as it is running. If a monitor-type handler notices an error, the job will be sent a @@ -161,8 +147,8 @@ termination signal, the error is then corrected, and then the job is restarted. This is useful for catching errors that occur early in the run but do not cause immediate failure. +## *class* custodian.vasp.handlers.IncorrectSmearingHandler(output_filename=’vasprun.xml’) -### _class_ custodian.vasp.handlers.IncorrectSmearingHandler(output_filename='vasprun.xml') Bases: [`ErrorHandler`](custodian.custodian.md#custodian.custodian.ErrorHandler) Check if a calculation is a metal (zero bandgap), has been run with @@ -172,23 +158,21 @@ using the smearing settings appropriate for metals (ISMEAR=2, SIGMA=0.2). Initializes the handler with the output file to check. - * **Parameters** - **output_filename** (*str*) – Filename for the vasprun.xml file. Change - this only if it is different from the default (unlikely). + **output_filename** (*str*) – Filename for the vasprun.xml file. Change + this only if it is different from the default (unlikely). +### check() - -#### check() Check for error. +### correct() -#### correct() Perform corrections. +### is_monitor(_ = Fals_ ) -#### is_monitor(_ = Fals_ ) This class property indicates whether the error handler is a monitor, i.e., a handler that monitors a job as it is running. If a monitor-type handler notices an error, the job will be sent a @@ -196,8 +180,8 @@ termination signal, the error is then corrected, and then the job is restarted. This is useful for catching errors that occur early in the run but do not cause immediate failure. +## *class* custodian.vasp.handlers.LargeSigmaHandler() -### _class_ custodian.vasp.handlers.LargeSigmaHandler() Bases: [`ErrorHandler`](custodian.custodian.md#custodian.custodian.ErrorHandler) When ISMEAR > 0 (Methfessel-Paxton), monitor the magnitude of the entropy @@ -206,16 +190,16 @@ value of SIGMA. See VASP documentation for ISMEAR. Initializes the handler with a buffer time. +### check() -#### check() Check for error. +### correct() -#### correct() Perform corrections. +### is_monitor(_ = Tru_ ) -#### is_monitor(_ = Tru_ ) This class property indicates whether the error handler is a monitor, i.e., a handler that monitors a job as it is running. If a monitor-type handler notices an error, the job will be sent a @@ -223,8 +207,8 @@ termination signal, the error is then corrected, and then the job is restarted. This is useful for catching errors that occur early in the run but do not cause immediate failure. +## *class* custodian.vasp.handlers.LrfCommutatorHandler(output_filename=’std_err.txt’) -### _class_ custodian.vasp.handlers.LrfCommutatorHandler(output_filename='std_err.txt') Bases: [`ErrorHandler`](custodian.custodian.md#custodian.custodian.ErrorHandler) Corrects LRF_COMMUTATOR errors by setting LPEAD=True if not already set. @@ -233,27 +217,25 @@ default due to numerical evaluation of derivatives. Initializes the handler with the output file to check. - * **Parameters** - **output_filename** (*str*) – This is the file where the stderr for vasp - is being redirected. The error messages that are checked are - present in the stderr. Defaults to “std_err.txt”, which is the - default redirect used by [`custodian.vasp.jobs.VaspJob`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspJob). - + **output_filename** (*str*) – This is the file where the stderr for vasp + is being redirected. The error messages that are checked are + present in the stderr. Defaults to “std_err.txt”, which is the + default redirect used by [`custodian.vasp.jobs.VaspJob`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspJob). +### check() -#### check() Check for error. +### correct() -#### correct() Perform corrections. +### error_msgs(_ = {‘lrf_comm’: [‘LRF_COMMUTATOR internal error’]_ ) -#### error_msgs(_ = {'lrf_comm': ['LRF_COMMUTATOR internal error']_ ) +### is_monitor(_ = Tru_ ) -#### is_monitor(_ = Tru_ ) This class property indicates whether the error handler is a monitor, i.e., a handler that monitors a job as it is running. If a monitor-type handler notices an error, the job will be sent a @@ -261,8 +243,8 @@ termination signal, the error is then corrected, and then the job is restarted. This is useful for catching errors that occur early in the run but do not cause immediate failure. +## *class* custodian.vasp.handlers.MeshSymmetryErrorHandler(output_filename=’vasp.out’, output_vasprun=’vasprun.xml’) -### _class_ custodian.vasp.handlers.MeshSymmetryErrorHandler(output_filename='vasp.out', output_vasprun='vasprun.xml') Bases: [`ErrorHandler`](custodian.custodian.md#custodian.custodian.ErrorHandler) Corrects the mesh symmetry error in VASP. This error is sometimes @@ -271,30 +253,24 @@ and if the run has converged, no error is recorded. Initializes the handler with the output files to check. - * **Parameters** - - - * **output_filename** (*str*) – This is the file where the stdout for vasp + * **output_filename** (*str*) – This is the file where the stdout for vasp is being redirected. The error messages that are checked are present in the stdout. Defaults to “vasp.out”, which is the default redirect used by [`custodian.vasp.jobs.VaspJob`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspJob). - - - * **output_vasprun** (*str*) – Filename for the vasprun.xml file. Change + * **output_vasprun** (*str*) – Filename for the vasprun.xml file. Change this only if it is different from the default (unlikely). +### check() - -#### check() Check for error. +### correct() -#### correct() Perform corrections. +### is_monitor(_ = Fals_ ) -#### is_monitor(_ = Fals_ ) This class property indicates whether the error handler is a monitor, i.e., a handler that monitors a job as it is running. If a monitor-type handler notices an error, the job will be sent a @@ -302,8 +278,8 @@ termination signal, the error is then corrected, and then the job is restarted. This is useful for catching errors that occur early in the run but do not cause immediate failure. +## *class* custodian.vasp.handlers.NonConvergingErrorHandler(output_filename=’OSZICAR’, nionic_steps=10) -### _class_ custodian.vasp.handlers.NonConvergingErrorHandler(output_filename='OSZICAR', nionic_steps=10) Bases: [`ErrorHandler`](custodian.custodian.md#custodian.custodian.ErrorHandler) Check if a run is hitting the maximum number of electronic steps at the @@ -312,34 +288,28 @@ multi-step ladder scheme or kill the job. Initializes the handler with the output file to check. - * **Parameters** - - - * **output_filename** (*str*) – This is the OSZICAR file. Change + * **output_filename** (*str*) – This is the OSZICAR file. Change this only if it is different from the default (unlikely). - - - * **nionic_steps** (*int*) – The threshold number of ionic steps that + * **nionic_steps** (*int*) – The threshold number of ionic steps that needs to hit the maximum number of electronic steps for the run to be considered non-converging. +### check() - -#### check() Check for error. +### correct() -#### correct() Perform corrections. +### *classmethod* from_dict(d) -#### _classmethod_ from_dict(d) Custom from_dict method to preserve backwards compatibility with older versions of Custodian. +### is_monitor(_ = Tru_ ) -#### is_monitor(_ = Tru_ ) This class property indicates whether the error handler is a monitor, i.e., a handler that monitors a job as it is running. If a monitor-type handler notices an error, the job will be sent a @@ -347,8 +317,8 @@ termination signal, the error is then corrected, and then the job is restarted. This is useful for catching errors that occur early in the run but do not cause immediate failure. +## *class* custodian.vasp.handlers.PositiveEnergyErrorHandler(output_filename=’OSZICAR’) -### _class_ custodian.vasp.handlers.PositiveEnergyErrorHandler(output_filename='OSZICAR') Bases: [`ErrorHandler`](custodian.custodian.md#custodian.custodian.ErrorHandler) Check if a run has positive absolute energy. @@ -356,23 +326,21 @@ If so, change ALGO from Fast to Normal or kill the job. Initializes the handler with the output file to check. - * **Parameters** - **output_filename** (*str*) – This is the OSZICAR file. Change - this only if it is different from the default (unlikely). - + **output_filename** (*str*) – This is the OSZICAR file. Change + this only if it is different from the default (unlikely). +### check() -#### check() Check for error. +### correct() -#### correct() Perform corrections. +### is_monitor(_ = Tru_ ) -#### is_monitor(_ = Tru_ ) This class property indicates whether the error handler is a monitor, i.e., a handler that monitors a job as it is running. If a monitor-type handler notices an error, the job will be sent a @@ -380,8 +348,8 @@ termination signal, the error is then corrected, and then the job is restarted. This is useful for catching errors that occur early in the run but do not cause immediate failure. +## *class* custodian.vasp.handlers.PotimErrorHandler(input_filename=’POSCAR’, output_filename=’OSZICAR’, dE_threshold=1) -### _class_ custodian.vasp.handlers.PotimErrorHandler(input_filename='POSCAR', output_filename='OSZICAR', dE_threshold=1) Bases: [`ErrorHandler`](custodian.custodian.md#custodian.custodian.ErrorHandler) Check if a run has excessively large positive energy changes. @@ -391,32 +359,24 @@ gets progressively worse. Initializes the handler with the input and output files to check. - * **Parameters** - - - * **input_filename** (*str*) – This is the POSCAR file that the run + * **input_filename** (*str*) – This is the POSCAR file that the run started from. Defaults to “POSCAR”. Change this only if it is different from the default (unlikely). - - - * **output_filename** (*str*) – This is the OSZICAR file. Change + * **output_filename** (*str*) – This is the OSZICAR file. Change this only if it is different from the default (unlikely). + * **dE_threshold** (*float*) – The threshold energy change. Defaults to 1eV. +### check() - * **dE_threshold** (*float*) – The threshold energy change. Defaults to 1eV. - - - -#### check() Check for error. +### correct() -#### correct() Perform corrections. +### is_monitor(_ = Tru_ ) -#### is_monitor(_ = Tru_ ) This class property indicates whether the error handler is a monitor, i.e., a handler that monitors a job as it is running. If a monitor-type handler notices an error, the job will be sent a @@ -424,8 +384,8 @@ termination signal, the error is then corrected, and then the job is restarted. This is useful for catching errors that occur early in the run but do not cause immediate failure. +## *class* custodian.vasp.handlers.ScanMetalHandler(output_filename=’vasprun.xml’) -### _class_ custodian.vasp.handlers.ScanMetalHandler(output_filename='vasprun.xml') Bases: [`ErrorHandler`](custodian.custodian.md#custodian.custodian.ErrorHandler) Check if a SCAN calculation is a metal (zero bandgap) but has been run with @@ -435,23 +395,21 @@ will rerun the calculation using the KSPACING setting appropriate for metals Initializes the handler with the output file to check. - * **Parameters** - **output_filename** (*str*) – Filename for the vasprun.xml file. Change - this only if it is different from the default (unlikely). - + **output_filename** (*str*) – Filename for the vasprun.xml file. Change + this only if it is different from the default (unlikely). +### check() -#### check() Check for error. +### correct() -#### correct() Perform corrections. +### is_monitor(_ = Fals_ ) -#### is_monitor(_ = Fals_ ) This class property indicates whether the error handler is a monitor, i.e., a handler that monitors a job as it is running. If a monitor-type handler notices an error, the job will be sent a @@ -459,8 +417,8 @@ termination signal, the error is then corrected, and then the job is restarted. This is useful for catching errors that occur early in the run but do not cause immediate failure. +## *class* custodian.vasp.handlers.StdErrHandler(output_filename=’std_err.txt’) -### _class_ custodian.vasp.handlers.StdErrHandler(output_filename='std_err.txt') Bases: [`ErrorHandler`](custodian.custodian.md#custodian.custodian.ErrorHandler) Master StdErr class that handles a number of common errors @@ -469,27 +427,25 @@ the standard error. Initializes the handler with the output file to check. - * **Parameters** - **output_filename** (*str*) – This is the file where the stderr for vasp - is being redirected. The error messages that are checked are - present in the stderr. Defaults to “std_err.txt”, which is the - default redirect used by [`custodian.vasp.jobs.VaspJob`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspJob). + **output_filename** (*str*) – This is the file where the stderr for vasp + is being redirected. The error messages that are checked are + present in the stderr. Defaults to “std_err.txt”, which is the + default redirect used by [`custodian.vasp.jobs.VaspJob`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspJob). +### check() - -#### check() Check for error. +### correct() -#### correct() Perform corrections. +### error_msgs(_ = {‘kpoints_trans’: [‘internal error in GENERATE_KPOINTS_TRANS: number of G-vector changed in star’], ‘out_of_memory’: [‘Allocation would exceed memory limit’]_ ) -#### error_msgs(_ = {'kpoints_trans': ['internal error in GENERATE_KPOINTS_TRANS: number of G-vector changed in star'], 'out_of_memory': ['Allocation would exceed memory limit']_ ) +### is_monitor(_ = Tru_ ) -#### is_monitor(_ = Tru_ ) This class property indicates whether the error handler is a monitor, i.e., a handler that monitors a job as it is running. If a monitor-type handler notices an error, the job will be sent a @@ -497,8 +453,8 @@ termination signal, the error is then corrected, and then the job is restarted. This is useful for catching errors that occur early in the run but do not cause immediate failure. +## *class* custodian.vasp.handlers.StoppedRunHandler() -### _class_ custodian.vasp.handlers.StoppedRunHandler() Bases: [`ErrorHandler`](custodian.custodian.md#custodian.custodian.ErrorHandler) This is not an error handler per se, but rather a checkpointer. What this @@ -512,16 +468,16 @@ StoppedRunHandler. Dummy init. +### check() -#### check() Check for error. +### correct() -#### correct() Perform corrections. +### is_monitor(_ = Fals_ ) -#### is_monitor(_ = Fals_ ) This class property indicates whether the error handler is a monitor, i.e., a handler that monitors a job as it is running. If a monitor-type handler notices an error, the job will be sent a @@ -529,8 +485,8 @@ termination signal, the error is then corrected, and then the job is restarted. This is useful for catching errors that occur early in the run but do not cause immediate failure. +### is_terminating(_ = Fals_ ) -#### is_terminating(_ = Fals_ ) Whether this handler terminates a job upon error detection. By default, this is True, which means that the current Job will be terminated upon error detection, corrections applied, @@ -541,31 +497,29 @@ a job to terminate gracefully once it finishes its current task. The handler to set the flag should be classified as is_terminating = False to not terminate the job. +## *class* custodian.vasp.handlers.UnconvergedErrorHandler(output_filename=’vasprun.xml’) -### _class_ custodian.vasp.handlers.UnconvergedErrorHandler(output_filename='vasprun.xml') Bases: [`ErrorHandler`](custodian.custodian.md#custodian.custodian.ErrorHandler) Check if a run is converged. Initializes the handler with the output file to check. - * **Parameters** - **output_vasprun** (*str*) – Filename for the vasprun.xml file. Change - this only if it is different from the default (unlikely). + **output_vasprun** (*str*) – Filename for the vasprun.xml file. Change + this only if it is different from the default (unlikely). +### check() - -#### check() Check for error. +### correct() -#### correct() Perform corrections. +### is_monitor(_ = Fals_ ) -#### is_monitor(_ = Fals_ ) This class property indicates whether the error handler is a monitor, i.e., a handler that monitors a job as it is running. If a monitor-type handler notices an error, the job will be sent a @@ -573,8 +527,8 @@ termination signal, the error is then corrected, and then the job is restarted. This is useful for catching errors that occur early in the run but do not cause immediate failure. +## *class* custodian.vasp.handlers.VaspErrorHandler(output_filename=’vasp.out’, natoms_large_cell=None, errors_subset_to_catch=None, vtst_fixes=False) -### _class_ custodian.vasp.handlers.VaspErrorHandler(output_filename='vasp.out', natoms_large_cell=None, errors_subset_to_catch=None, vtst_fixes=False) Bases: [`ErrorHandler`](custodian.custodian.md#custodian.custodian.ErrorHandler) Master VaspErrorHandler class that handles a number of common errors @@ -582,71 +536,53 @@ that occur during VASP runs. Initializes the handler with the output file to check. - * **Parameters** - - - * **output_filename** (*str*) – This is the file where the stdout for vasp + * **output_filename** (*str*) – This is the file where the stdout for vasp is being redirected. The error messages that are checked are present in the stdout. Defaults to “vasp.out”, which is the default redirect used by [`custodian.vasp.jobs.VaspJob`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspJob). - - - * **natoms_large_cell** (*int*) – Number of atoms threshold to treat cell + * **natoms_large_cell** (*int*) – Number of atoms threshold to treat cell as large. Affects the correction of certain errors. Defaults to None (not used). Deprecated. - - - * **errors_subset_to_detect** (*list*) – A subset of errors to catch. The + * **errors_subset_to_detect** (*list*) – A subset of errors to catch. The default is None, which means all supported errors are detected. Use this to only catch only a subset of supported errors. E.g., [“eddrrm”, “zheev”] will only catch the eddrmm and zheev errors, and not others. If you wish to only excluded one or two of the errors, you can create this list by the following lines: - - - * **vtst_fixes** (*bool*) – Whether to consider VTST optimizers. Defaults to + * **vtst_fixes** (*bool*) – Whether to consider VTST optimizers. Defaults to False for compatibility purposes. + ```default + `` + ``` + \` + subset = list(VaspErrorHandler.error_msgs.keys()) + subset.pop(“eddrrm”) - ``` - `` - ``` - - \` - subset = list(VaspErrorHandler.error_msgs.keys()) - subset.pop(“eddrrm”) - - handler = VaspErrorHandler(errors_subset_to_catch=subset) - - - ``` - `` - ``` - - - - ``` - ` - ``` + handler = VaspErrorHandler(errors_subset_to_catch=subset) + ```default + `` + ``` + ```default + ` + ``` +### check() - - -#### check() Check for error. +### correct() -#### correct() Perform corrections. +### error_msgs(_ = {‘algo_tet’: [‘ALGO=A and IALGO=5X tend to fail’], ‘amin’: [‘One of the lattice vectors is very long (>50 A), but AMIN’], ‘bravais’: [‘Inconsistent Bravais lattice’], ‘brions’: [‘BRIONS problems: POTIM should be increased’], ‘brmix’: [‘BRMIX: very serious problems’], ‘coef’: [‘while reading plane’], ‘dentet’: [‘DENTET’], ‘dfpt_ncore’: [‘PEAD routines do not work for NCORE’, ‘remove the tag NPAR from the INCAR file’], ‘edddav’: [‘Error EDDDAV: Call to ZHEGV failed’], ‘eddrmm’: [‘WARNING in EDDRMM: call to ZHEGV failed’], ‘elf_kpar’: [‘ELF: KPAR>1 not implemented’], ‘elf_ncl’: [‘WARNING: ELF not implemented for non collinear case’], ‘grad_not_orth’: [‘EDWAV: internal error, the gradient is not orthogonal’], ‘hnform’: [‘HNFORM: k-point generating’], ‘incorrect_shift’: [‘Could not get correct shifts’], ‘inv_rot_mat’: [‘rotation matrix was not found (increase SYMPREC)’], ‘nbands_not_sufficient’: [‘number of bands is not sufficient’], ‘nicht_konv’: [‘ERROR: SBESSELITER : nicht konvergent’], ‘point_group’: [‘group operation missing’], ‘posmap’: [‘POSMAP’], ‘pricel’: [‘internal error in subroutine PRICEL’], ‘pssyevx’: [‘ERROR in subspace rotation PSSYEVX’], ‘real_optlay’: [‘REAL_OPTLAY: internal error’, ‘REAL_OPT: internal ERROR’], ‘rhosyg’: [‘RHOSYG’], ‘rot_matrix’: [‘Found some non-integer element in rotation matrix’, ‘SGRCON’], ‘rspher’: [‘ERROR RSPHER’], ‘subspacematrix’: [‘WARNING: Sub-Space-Matrix is not hermitian in DAV’], ‘symprec_noise’: [‘determination of the symmetry of your systems shows a strong’], ‘tet’: [‘Tetrahedron method fails’, ‘tetrahedron method fails’, ‘Fatal error detecting k-mesh’, ‘Fatal error: unable to match k-point’, ‘Routine TETIRR needs special values’, ‘Tetrahedron method fails (number of k-points < 4)’, ‘BZINTS’], ‘tetirr’: [‘Routine TETIRR needs special values’], ‘too_few_bands’: [‘TOO FEW BANDS’], ‘triple_product’: [‘ERROR: the triple product of the basis vectors’], ‘zbrent’: [‘ZBRENT: fatal internal in’, ‘ZBRENT: fatal error in bracketing’], ‘zheev’: [‘ERROR EDDIAG: Call to routine ZHEEV failed!’], ‘zpotrf’: [‘LAPACK: Routine ZPOTRF failed’, ‘Routine ZPOTRF ZTRTRI’]_ ) -#### error_msgs(_ = {'algo_tet': ['ALGO=A and IALGO=5X tend to fail'], 'amin': ['One of the lattice vectors is very long (>50 A), but AMIN'], 'bravais': ['Inconsistent Bravais lattice'], 'brions': ['BRIONS problems: POTIM should be increased'], 'brmix': ['BRMIX: very serious problems'], 'coef': ['while reading plane'], 'dentet': ['DENTET'], 'dfpt_ncore': ['PEAD routines do not work for NCORE', 'remove the tag NPAR from the INCAR file'], 'edddav': ['Error EDDDAV: Call to ZHEGV failed'], 'eddrmm': ['WARNING in EDDRMM: call to ZHEGV failed'], 'elf_kpar': ['ELF: KPAR>1 not implemented'], 'elf_ncl': ['WARNING: ELF not implemented for non collinear case'], 'grad_not_orth': ['EDWAV: internal error, the gradient is not orthogonal'], 'hnform': ['HNFORM: k-point generating'], 'incorrect_shift': ['Could not get correct shifts'], 'inv_rot_mat': ['rotation matrix was not found (increase SYMPREC)'], 'nbands_not_sufficient': ['number of bands is not sufficient'], 'nicht_konv': ['ERROR: SBESSELITER : nicht konvergent'], 'point_group': ['group operation missing'], 'posmap': ['POSMAP'], 'pricel': ['internal error in subroutine PRICEL'], 'pssyevx': ['ERROR in subspace rotation PSSYEVX'], 'real_optlay': ['REAL_OPTLAY: internal error', 'REAL_OPT: internal ERROR'], 'rhosyg': ['RHOSYG'], 'rot_matrix': ['Found some non-integer element in rotation matrix', 'SGRCON'], 'rspher': ['ERROR RSPHER'], 'subspacematrix': ['WARNING: Sub-Space-Matrix is not hermitian in DAV'], 'symprec_noise': ['determination of the symmetry of your systems shows a strong'], 'tet': ['Tetrahedron method fails', 'tetrahedron method fails', 'Fatal error detecting k-mesh', 'Fatal error: unable to match k-point', 'Routine TETIRR needs special values', 'Tetrahedron method fails (number of k-points < 4)', 'BZINTS'], 'tetirr': ['Routine TETIRR needs special values'], 'too_few_bands': ['TOO FEW BANDS'], 'triple_product': ['ERROR: the triple product of the basis vectors'], 'zbrent': ['ZBRENT: fatal internal in', 'ZBRENT: fatal error in bracketing'], 'zheev': ['ERROR EDDIAG: Call to routine ZHEEV failed!'], 'zpotrf': ['LAPACK: Routine ZPOTRF failed', 'Routine ZPOTRF ZTRTRI']_ ) +### is_monitor(_ = Tru_ ) -#### is_monitor(_ = Tru_ ) This class property indicates whether the error handler is a monitor, i.e., a handler that monitors a job as it is running. If a monitor-type handler notices an error, the job will be sent a @@ -654,8 +590,8 @@ termination signal, the error is then corrected, and then the job is restarted. This is useful for catching errors that occur early in the run but do not cause immediate failure. +## *class* custodian.vasp.handlers.WalltimeHandler(wall_time=None, buffer_time=300, electronic_step_stop=False) -### _class_ custodian.vasp.handlers.WalltimeHandler(wall_time=None, buffer_time=300, electronic_step_stop=False) Bases: [`ErrorHandler`](custodian.custodian.md#custodian.custodian.ErrorHandler) Check if a run is nearing the walltime. If so, write a STOPCAR with @@ -666,18 +602,13 @@ environment, the wall time will be automatically determined if not set. Initializes the handler with a buffer time. - * **Parameters** - - - * **wall_time** (*int*) – Total walltime in seconds. If this is None and + * **wall_time** (*int*) – Total walltime in seconds. If this is None and the job is running on a PBS system, the handler will attempt to determine the walltime from the PBS_WALLTIME environment variable. If the wall time cannot be determined or is not set, this handler will have no effect. - - - * **buffer_time** (*int*) – The min amount of buffer time in secs at the + * **buffer_time** (*int*) – The min amount of buffer time in secs at the end that the STOPCAR will be written. The STOPCAR is written when the time remaining is < the higher of 3 x the average time for each ionic step and the buffer time. Defaults to @@ -686,9 +617,7 @@ Initializes the handler with a buffer time. complete. But if other operations are being performed after the run has stopped, the buffer time may need to be increased accordingly. - - - * **electronic_step_stop** (*bool*) – Whether to check for electronic steps + * **electronic_step_stop** (*bool*) – Whether to check for electronic steps instead of ionic steps (e.g. for static runs on large systems or static HSE runs, …). Be careful that results such as density or wavefunctions might not be converged at the electronic level. @@ -696,17 +625,16 @@ Initializes the handler with a buffer time. True, the STOPCAR is written with LABORT = .TRUE. instead of LSTOP = .TRUE. +### check() - -#### check() Check for error. +### correct() -#### correct() Perform corrections. +### is_monitor(_ = Tru_ ) -#### is_monitor(_ = Tru_ ) This class property indicates whether the error handler is a monitor, i.e., a handler that monitors a job as it is running. If a monitor-type handler notices an error, the job will be sent a @@ -714,8 +642,8 @@ termination signal, the error is then corrected, and then the job is restarted. This is useful for catching errors that occur early in the run but do not cause immediate failure. +### is_terminating(_ = Fals_ ) -#### is_terminating(_ = Fals_ ) Whether this handler terminates a job upon error detection. By default, this is True, which means that the current Job will be terminated upon error detection, corrections applied, @@ -726,8 +654,8 @@ a job to terminate gracefully once it finishes its current task. The handler to set the flag should be classified as is_terminating = False to not terminate the job. +### raises_runtime_error(_ = Fals_ ) -#### raises_runtime_error(_ = Fals_ ) Whether this handler causes custodian to raise a runtime error if it cannot handle the error (i.e. if correct returns a dict with “actions”:None, or “actions”:[]) \ No newline at end of file diff --git a/docs/custodian.vasp.interpreter.md b/docs/custodian.vasp.interpreter.md index 3203f842..707715ec 100644 --- a/docs/custodian.vasp.interpreter.md +++ b/docs/custodian.vasp.interpreter.md @@ -8,36 +8,28 @@ nav_exclude: true Implements various interpreters and modders for VASP. +## *class* custodian.vasp.interpreter.VaspModder(actions=None, strict=True, vi=None) -### _class_ custodian.vasp.interpreter.VaspModder(actions=None, strict=True, vi=None) Bases: [`Modder`](custodian.ansible.interpreter.md#custodian.ansible.interpreter.Modder) A Modder for VaspInputSets. Initializes a Modder for VaspInput sets - * **Parameters** - - - * **actions** (*[**Action**]*) – A sequence of supported actions. See + * **actions** (*[**Action**]*) – A sequence of supported actions. See [`custodian.ansible.actions`](custodian.ansible.actions.md#module-custodian.ansible.actions). Default is None, which means DictActions and FileActions are supported. - - - * **strict** (*bool*) – Indicating whether to use strict mode. In non-strict + * **strict** (*bool*) – Indicating whether to use strict mode. In non-strict mode, unsupported actions are simply ignored without any errors raised. In strict mode, if an unsupported action is supplied, a ValueError is raised. Defaults to True. - - - * **vi** (*VaspInput*) – A VaspInput object from the current directory. + * **vi** (*VaspInput*) – A VaspInput object from the current directory. Initialized automatically if not passed (but passing it will avoid having to reparse the directory). +### apply_actions(actions) - -#### apply_actions(actions) Applies a list of actions to the Vasp Input Set and rewrites modified files. :param actions [dict]: A list of actions of the form {‘file’: filename, diff --git a/docs/custodian.vasp.jobs.md b/docs/custodian.vasp.jobs.md index 2b0ac6c6..1ebd50f1 100644 --- a/docs/custodian.vasp.jobs.md +++ b/docs/custodian.vasp.jobs.md @@ -8,39 +8,33 @@ nav_exclude: true This module implements basic kinds of jobs for VASP runs. +## *class* custodian.vasp.jobs.GenerateVaspInputJob(input_set, contcar_only=True, \*\*kwargs) -### _class_ custodian.vasp.jobs.GenerateVaspInputJob(input_set, contcar_only=True, \*\*kwargs) Bases: [`Job`](custodian.custodian.md#custodian.custodian.Job) Generates a VASP input based on an existing directory. This is typically used to modify the VASP input files before the next VaspJob. - * **Parameters** - - - * **input_set** (*str*) – Full path to the input set. E.g., + * **input_set** (*str*) – Full path to the input set. E.g., “pymatgen.io.vasp.sets.MPNonSCFSet”. - - - * **contcar_only** (*bool*) – If True (default), only CONTCAR structures + * **contcar_only** (*bool*) – If True (default), only CONTCAR structures are used as input to the input set. +### postprocess() - -#### postprocess() Dummy postprocess. +### run() -#### run() Run the calculation. +### setup() -#### setup() Dummy setup +## *class* custodian.vasp.jobs.VaspJob(vasp_cmd, output_file=’vasp.out’, stderr_file=’std_err.txt’, suffix=’’, final=True, backup=True, auto_npar=False, auto_gamma=True, settings_override=None, gamma_vasp_cmd=None, copy_magmom=False, auto_continue=False) -### _class_ custodian.vasp.jobs.VaspJob(vasp_cmd, output_file='vasp.out', stderr_file='std_err.txt', suffix='', final=True, backup=True, auto_npar=False, auto_gamma=True, settings_override=None, gamma_vasp_cmd=None, copy_magmom=False, auto_continue=False) Bases: [`Job`](custodian.custodian.md#custodian.custodian.Job) A basic vasp job. Just runs whatever is in the directory. But conceivably @@ -50,84 +44,58 @@ This constructor is necessarily complex due to the need for flexibility. For standard kinds of runs, it’s often better to use one of the static constructors. The defaults are usually fine too. - * **Parameters** - - - * **vasp_cmd** (*str*) – Command to run vasp as a list of args. For example, + * **vasp_cmd** (*str*) – Command to run vasp as a list of args. For example, if you are using mpirun, it can be something like [“mpirun”, “pvasp.5.2.11”] - - - * **output_file** (*str*) – Name of file to direct standard out to. + * **output_file** (*str*) – Name of file to direct standard out to. Defaults to “vasp.out”. - - - * **stderr_file** (*str*) – Name of file to direct standard error to. + * **stderr_file** (*str*) – Name of file to direct standard error to. Defaults to “std_err.txt”. - - - * **suffix** (*str*) – A suffix to be appended to the final output. E.g., + * **suffix** (*str*) – A suffix to be appended to the final output. E.g., to rename all VASP output from say vasp.out to vasp.out.relax1, provide “.relax1” as the suffix. - - - * **final** (*bool*) – Indicating whether this is the final vasp job in a + * **final** (*bool*) – Indicating whether this is the final vasp job in a series. Defaults to True. - - - * **backup** (*bool*) – Whether to backup the initial input files. If True, + * **backup** (*bool*) – Whether to backup the initial input files. If True, the INCAR, KPOINTS, POSCAR and POTCAR will be copied with a “.orig” appended. Defaults to True. - - - * **auto_npar** (*bool*) – Whether to automatically tune NPAR to be sqrt( + * **auto_npar** (*bool*) – Whether to automatically tune NPAR to be sqrt( number of cores) as recommended by VASP for DFT calculations. Generally, this results in significant speedups. Defaults to False. Set to False for HF, GW and RPA calculations. - - - * **auto_gamma** (*bool*) – Whether to automatically check if run is a + * **auto_gamma** (*bool*) – Whether to automatically check if run is a Gamma 1x1x1 run, and whether a Gamma optimized version of VASP exists with “.gamma” appended to the name of the VASP executable (typical setup in many systems). If so, run the gamma optimized version of VASP instead of regular VASP. You can also specify the gamma vasp command using the gamma_vasp_cmd argument if the command is named differently. - - - * **settings_override** (*[**dict**]*) – An ansible style list of dict to + * **settings_override** (*[**dict**]*) – An ansible style list of dict to override changes. For example, to set ISTART=1 for subsequent runs and to copy the CONTCAR to the POSCAR, you will provide: - ```default - [{"dict": "INCAR", "action": {"_set": {"ISTART": 1}}}, - {"file": "CONTCAR", - "action": {"_file_copy": {"dest": "POSCAR"}}}] - ``` - + ```default + [{"dict": "INCAR", "action": {"_set": {"ISTART": 1}}}, + {"file": "CONTCAR", + "action": {"_file_copy": {"dest": "POSCAR"}}}] + ``` - - * **gamma_vasp_cmd** (*str*) – Command for gamma vasp version when + * **gamma_vasp_cmd** (*str*) – Command for gamma vasp version when auto_gamma is True. Should follow the list style of subprocess. Defaults to None, which means “.gamma” is added to the last argument of the standard vasp_cmd. - - - * **copy_magmom** (*bool*) – Whether to copy the final magmom from the + * **copy_magmom** (*bool*) – Whether to copy the final magmom from the OUTCAR to the next INCAR. Useful for multi-relaxation runs where the CHGCAR and WAVECAR are sometimes deleted (due to changes in fft grid, etc.). Only applies to non-final runs. - - - * **auto_continue** (*bool*) – Whether to automatically continue a run + * **auto_continue** (*bool*) – Whether to automatically continue a run if a STOPCAR is present. This is very useful if using the wall-time handler which will write a read-only STOPCAR to prevent VASP from deleting it once it finishes +### *classmethod* constrained_opt_run(vasp_cmd, lattice_direction, initial_strain, atom_relax=True, max_steps=20, algo=’bfgs’, \*\*vasp_job_kwargs) - -#### _classmethod_ constrained_opt_run(vasp_cmd, lattice_direction, initial_strain, atom_relax=True, max_steps=20, algo='bfgs', \*\*vasp_job_kwargs) Returns a generator of jobs for a constrained optimization run. Typical use case is when you want to approximate a biaxial strain situation, e.g., you apply a defined strain to a and b directions of the lattice, @@ -138,176 +106,121 @@ i. It is recommended you do not use the Auto kpoint generation. The > grid generated via Auto may fluctuate with changes in lattice > param, resulting in numerical noise. - - 1. Make sure your EDIFF/EDIFFG is properly set in your INCAR. The -optimization relies on these values to determine convergence. - + optimization relies on these values to determine convergence. * **Parameters** - - - * **vasp_cmd** (*str*) – Command to run vasp as a list of args. For example, + * **vasp_cmd** (*str*) – Command to run vasp as a list of args. For example, if you are using mpirun, it can be something like [“mpirun”, “pvasp.5.2.11”] - - - * **lattice_direction** (*str*) – Which direction to relax. Valid values are + * **lattice_direction** (*str*) – Which direction to relax. Valid values are “a”, “b” or “c”. - - - * **initial_strain** (*float*) – An initial strain to be applied to the + * **initial_strain** (*float*) – An initial strain to be applied to the lattice_direction. This can usually be estimated as the negative of the strain applied in the other two directions. E.g., if you apply a tensile strain of 0.05 to the a and b directions, you can use -0.05 as a reasonable first guess for initial strain. - - - * **atom_relax** (*bool*) – Whether to relax atomic positions. - - - * **max_steps** (*int*) – The maximum number of runs. Defaults to 20 ( + * **atom_relax** (*bool*) – Whether to relax atomic positions. + * **max_steps** (*int*) – The maximum number of runs. Defaults to 20 ( highly unlikely that this limit is ever reached). - - - * **algo** (*str*) – Algorithm to use to find minimum. Default is “bfgs”, + * **algo** (*str*) – Algorithm to use to find minimum. Default is “bfgs”, which is fast, but can be sensitive to numerical noise in energy calculations. The alternative is “bisection”, which is more robust but can be a bit slow. The code does fall back on the bisection when bfgs gives a non-sensical result, e.g., negative lattice params. - - - * **\*\*vasp_job_kwargs** – Passthrough kwargs to VaspJob. See + * **\*\*vasp_job_kwargs** – Passthrough kwargs to VaspJob. See `custodian.vasp.jobs.VaspJob`. - - - * **Returns** - Generator of jobs. At the end of the run, an “EOS.txt” is written - which provides a quick look at the E vs lattice parameter. - + Generator of jobs. At the end of the run, an “EOS.txt” is written + which provides a quick look at the E vs lattice parameter. +### *classmethod* double_relaxation_run(vasp_cmd, auto_npar=True, ediffg=-0.05, half_kpts_first_relax=False, auto_continue=False) -#### _classmethod_ double_relaxation_run(vasp_cmd, auto_npar=True, ediffg=-0.05, half_kpts_first_relax=False, auto_continue=False) Returns a list of two jobs corresponding to an AFLOW style double relaxation run. - * **Parameters** - - - * **vasp_cmd** (*str*) – Command to run vasp as a list of args. For example, + * **vasp_cmd** (*str*) – Command to run vasp as a list of args. For example, if you are using mpirun, it can be something like [“mpirun”, “pvasp.5.2.11”] - - - * **auto_npar** (*bool*) – Whether to automatically tune NPAR to be sqrt( + * **auto_npar** (*bool*) – Whether to automatically tune NPAR to be sqrt( number of cores) as recommended by VASP for DFT calculations. Generally, this results in significant speedups. Defaults to True. Set to False for HF, GW and RPA calculations. - - - * **ediffg** (*float*) – Force convergence criteria for subsequent runs ( + * **ediffg** (*float*) – Force convergence criteria for subsequent runs ( ignored for the initial run.) - - - * **half_kpts_first_relax** (*bool*) – Whether to halve the kpoint grid + * **half_kpts_first_relax** (*bool*) – Whether to halve the kpoint grid for the first relaxation. Speeds up difficult convergence considerably. Defaults to False. - - - * **auto_continue** (*bool*) – Whether to automatically continue a run + * **auto_continue** (*bool*) – Whether to automatically continue a run if a STOPCAR is present. This is very useful if using the wall-time handler which will write a read-only STOPCAR to prevent VASP from deleting it once it finishes. Defaults to False. - - - * **Returns** - List of two jobs corresponding to an AFLOW style run. - + List of two jobs corresponding to an AFLOW style run. +### *classmethod* full_opt_run(vasp_cmd, vol_change_tol=0.02, max_steps=10, ediffg=-0.05, half_kpts_first_relax=False, \*\*vasp_job_kwargs) -#### _classmethod_ full_opt_run(vasp_cmd, vol_change_tol=0.02, max_steps=10, ediffg=-0.05, half_kpts_first_relax=False, \*\*vasp_job_kwargs) Returns a generator of jobs for a full optimization run. Basically, this runs an infinite series of geometry optimization jobs until the -% vol change in a particular optimization is less than vol_change_tol. - + * **Parameters** - - - * **vasp_cmd** (*str*) – Command to run vasp as a list of args. For example, + * **vasp_cmd** (*str*) – Command to run vasp as a list of args. For example, if you are using mpirun, it can be something like [“mpirun”, “pvasp.5.2.11”] - - - * **vol_change_tol** (*float*) – The tolerance at which to stop a run. + * **vol_change_tol** (*float*) – The tolerance at which to stop a run. Defaults to 0.05, i.e., 5%. - - - * **max_steps** (*int*) – The maximum number of runs. Defaults to 10 ( + * **max_steps** (*int*) – The maximum number of runs. Defaults to 10 ( highly unlikely that this limit is ever reached). - - - * **ediffg** (*float*) – Force convergence criteria for subsequent runs ( + * **ediffg** (*float*) – Force convergence criteria for subsequent runs ( ignored for the initial run.) - - - * **half_kpts_first_relax** (*bool*) – Whether to halve the kpoint grid + * **half_kpts_first_relax** (*bool*) – Whether to halve the kpoint grid for the first relaxation. Speeds up difficult convergence considerably. Defaults to False. - - - * **\*\*vasp_job_kwargs** – Passthrough kwargs to VaspJob. See + * **\*\*vasp_job_kwargs** – Passthrough kwargs to VaspJob. See `custodian.vasp.jobs.VaspJob`. - - - * **Returns** - Generator of jobs. + Generator of jobs. +### *classmethod* metagga_opt_run(vasp_cmd, auto_npar=True, ediffg=-0.05, half_kpts_first_relax=False, auto_continue=False) - -#### _classmethod_ metagga_opt_run(vasp_cmd, auto_npar=True, ediffg=-0.05, half_kpts_first_relax=False, auto_continue=False) Returns a list of thres jobs to perform an optimization for any metaGGA functional. There is an initial calculation of the GGA wavefunction which is fed into the initial metaGGA optimization to precondition the electronic structure optimizer. The metaGGA optimization is performed using the double relaxation scheme +### postprocess() -#### postprocess() Postprocessing includes renaming and gzipping where necessary. Also copies the magmom to the incar if necessary +### run() -#### run() Perform the actual VASP run. - * **Returns** - (subprocess.Popen) Used for monitoring. - + (subprocess.Popen) Used for monitoring. +### setup() -#### setup() Performs initial setup for VaspJob, including overriding any settings and backing up. +### terminate() -#### terminate() Ensure all vasp jobs are killed. +## *class* custodian.vasp.jobs.VaspNEBJob(vasp_cmd, output_file=’neb_vasp.out’, stderr_file=’neb_std_err.txt’, suffix=’’, final=True, backup=True, auto_npar=True, half_kpts=False, auto_gamma=True, auto_continue=False, gamma_vasp_cmd=None, settings_override=None) -### _class_ custodian.vasp.jobs.VaspNEBJob(vasp_cmd, output_file='neb_vasp.out', stderr_file='neb_std_err.txt', suffix='', final=True, backup=True, auto_npar=True, half_kpts=False, auto_gamma=True, auto_continue=False, gamma_vasp_cmd=None, settings_override=None) Bases: `VaspJob` A NEB vasp job, especially for CI-NEB running at PBS clusters. @@ -319,95 +232,66 @@ the need for flexibility. For standard kinds of runs, it’s often better to use one of the static constructors. The defaults are usually fine too. - * **Parameters** - - - * **vasp_cmd** (*str*) – Command to run vasp as a list of args. For example, + * **vasp_cmd** (*str*) – Command to run vasp as a list of args. For example, if you are using mpirun, it can be something like [“mpirun”, “pvasp.5.2.11”] - - - * **output_file** (*str*) – Name of file to direct standard out to. + * **output_file** (*str*) – Name of file to direct standard out to. Defaults to “vasp.out”. - - - * **stderr_file** (*str*) – Name of file to direct standard error to. + * **stderr_file** (*str*) – Name of file to direct standard error to. Defaults to “std_err.txt”. - - - * **suffix** (*str*) – A suffix to be appended to the final output. E.g., + * **suffix** (*str*) – A suffix to be appended to the final output. E.g., to rename all VASP output from say vasp.out to vasp.out.relax1, provide “.relax1” as the suffix. - - - * **final** (*bool*) – Indicating whether this is the final vasp job in a + * **final** (*bool*) – Indicating whether this is the final vasp job in a series. Defaults to True. - - - * **backup** (*bool*) – Whether to backup the initial input files. If True, + * **backup** (*bool*) – Whether to backup the initial input files. If True, the INCAR, KPOINTS, POSCAR and POTCAR will be copied with a “.orig” appended. Defaults to True. - - - * **auto_npar** (*bool*) – Whether to automatically tune NPAR to be sqrt( + * **auto_npar** (*bool*) – Whether to automatically tune NPAR to be sqrt( number of cores) as recommended by VASP for DFT calculations. Generally, this results in significant speedups. Defaults to True. Set to False for HF, GW and RPA calculations. - - - * **half_kpts** (*bool*) – Whether to halve the kpoint grid for NEB. + * **half_kpts** (*bool*) – Whether to halve the kpoint grid for NEB. Speeds up convergence considerably. Defaults to False. - - - * **auto_gamma** (*bool*) – Whether to automatically check if run is a + * **auto_gamma** (*bool*) – Whether to automatically check if run is a Gamma 1x1x1 run, and whether a Gamma optimized version of VASP exists with “.gamma” appended to the name of the VASP executable (typical setup in many systems). If so, run the gamma optimized version of VASP instead of regular VASP. You can also specify the gamma vasp command using the gamma_vasp_cmd argument if the command is named differently. - - - * **auto_continue** (*bool*) – Whether to automatically continue a run + * **auto_continue** (*bool*) – Whether to automatically continue a run if a STOPCAR is present. This is very useful if using the wall-time handler which will write a read-only STOPCAR to prevent VASP from deleting it once it finishes. - - - * **gamma_vasp_cmd** (*str*) – Command for gamma vasp version when + * **gamma_vasp_cmd** (*str*) – Command for gamma vasp version when auto_gamma is True. Should follow the list style of subprocess. Defaults to None, which means “.gamma” is added to the last argument of the standard vasp_cmd. - - - * **settings_override** (*[**dict**]*) – An ansible style list of dict to + * **settings_override** (*[**dict**]*) – An ansible style list of dict to override changes. For example, to set ISTART=1 for subsequent runs and to copy the CONTCAR to the POSCAR, you will provide: - ```default - [{"dict": "INCAR", "action": {"_set": {"ISTART": 1}}}, - {"file": "CONTCAR", - "action": {"_file_copy": {"dest": "POSCAR"}}}] - ``` - + ```default + [{"dict": "INCAR", "action": {"_set": {"ISTART": 1}}}, + {"file": "CONTCAR", + "action": {"_file_copy": {"dest": "POSCAR"}}}] + ``` +### postprocess() - -#### postprocess() Postprocessing includes renaming and gzipping where necessary. +### run() -#### run() Perform the actual VASP run. - * **Returns** - (subprocess.Popen) Used for monitoring. - + (subprocess.Popen) Used for monitoring. +### setup() -#### setup() Performs initial setup for VaspNEBJob, including overriding any settings and backing up. \ No newline at end of file diff --git a/docs/custodian.vasp.md b/docs/custodian.vasp.md index 9cb65b1f..80d644ad 100644 --- a/docs/custodian.vasp.md +++ b/docs/custodian.vasp.md @@ -10,345 +10,124 @@ This package implements various VASP Jobs and Error Handlers. ## Subpackages +* [custodian.vasp.tests package]() + ```none + * [custodian.vasp.tests.conftest module](custodian.vasp.tests.conftest.md) -* [custodian.vasp.tests package](custodian.vasp.tests.md) + * [custodian.vasp.tests.test_handlers module](custodian.vasp.tests.test_handlers.md) - - * [custodian.vasp.tests.conftest module](custodian.vasp.tests.conftest.md) - - - * [custodian.vasp.tests.test_handlers module](custodian.vasp.tests.test_handlers.md) - - - * [custodian.vasp.tests.test_jobs module](custodian.vasp.tests.test_jobs.md) - - - * [custodian.vasp.tests.test_validators module](custodian.vasp.tests.test_validators.md) - - + * [custodian.vasp.tests.test_jobs module](custodian.vasp.tests.test_jobs.md) + * [custodian.vasp.tests.test_validators module](custodian.vasp.tests.test_validators.md) + ``` * [custodian.vasp.handlers module](custodian.vasp.handlers.md) - - - * [`AliasingErrorHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.AliasingErrorHandler) - - - * [`AliasingErrorHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.AliasingErrorHandler.check) - - - * [`AliasingErrorHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.AliasingErrorHandler.correct) - - - * [`AliasingErrorHandler.error_msgs`](custodian.vasp.handlers.md#custodian.vasp.handlers.AliasingErrorHandler.error_msgs) - - - * [`AliasingErrorHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.AliasingErrorHandler.is_monitor) - - - * [`CheckpointHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.CheckpointHandler) - - - * [`CheckpointHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.CheckpointHandler.check) - - - * [`CheckpointHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.CheckpointHandler.correct) - - - * [`CheckpointHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.CheckpointHandler.is_monitor) - - - * [`CheckpointHandler.is_terminating`](custodian.vasp.handlers.md#custodian.vasp.handlers.CheckpointHandler.is_terminating) - - - * [`DriftErrorHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.DriftErrorHandler) - - - * [`DriftErrorHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.DriftErrorHandler.check) - - - * [`DriftErrorHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.DriftErrorHandler.correct) - - - * [`FrozenJobErrorHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.FrozenJobErrorHandler) - - - * [`FrozenJobErrorHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.FrozenJobErrorHandler.check) - - - * [`FrozenJobErrorHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.FrozenJobErrorHandler.correct) - - - * [`FrozenJobErrorHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.FrozenJobErrorHandler.is_monitor) - - - * [`IncorrectSmearingHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.IncorrectSmearingHandler) - - - * [`IncorrectSmearingHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.IncorrectSmearingHandler.check) - - - * [`IncorrectSmearingHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.IncorrectSmearingHandler.correct) - - - * [`IncorrectSmearingHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.IncorrectSmearingHandler.is_monitor) - - - * [`LargeSigmaHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.LargeSigmaHandler) - - - * [`LargeSigmaHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.LargeSigmaHandler.check) - - - * [`LargeSigmaHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.LargeSigmaHandler.correct) - - - * [`LargeSigmaHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.LargeSigmaHandler.is_monitor) - - - * [`LrfCommutatorHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.LrfCommutatorHandler) - - - * [`LrfCommutatorHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.LrfCommutatorHandler.check) - - - * [`LrfCommutatorHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.LrfCommutatorHandler.correct) - - - * [`LrfCommutatorHandler.error_msgs`](custodian.vasp.handlers.md#custodian.vasp.handlers.LrfCommutatorHandler.error_msgs) - - - * [`LrfCommutatorHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.LrfCommutatorHandler.is_monitor) - - - * [`MeshSymmetryErrorHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.MeshSymmetryErrorHandler) - - - * [`MeshSymmetryErrorHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.MeshSymmetryErrorHandler.check) - - - * [`MeshSymmetryErrorHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.MeshSymmetryErrorHandler.correct) - - - * [`MeshSymmetryErrorHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.MeshSymmetryErrorHandler.is_monitor) - - - * [`NonConvergingErrorHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.NonConvergingErrorHandler) - - - * [`NonConvergingErrorHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.NonConvergingErrorHandler.check) - - - * [`NonConvergingErrorHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.NonConvergingErrorHandler.correct) - - - * [`NonConvergingErrorHandler.from_dict()`](custodian.vasp.handlers.md#custodian.vasp.handlers.NonConvergingErrorHandler.from_dict) - - - * [`NonConvergingErrorHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.NonConvergingErrorHandler.is_monitor) - - - * [`PositiveEnergyErrorHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.PositiveEnergyErrorHandler) - - - * [`PositiveEnergyErrorHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.PositiveEnergyErrorHandler.check) - - - * [`PositiveEnergyErrorHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.PositiveEnergyErrorHandler.correct) - - - * [`PositiveEnergyErrorHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.PositiveEnergyErrorHandler.is_monitor) - - - * [`PotimErrorHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.PotimErrorHandler) - - - * [`PotimErrorHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.PotimErrorHandler.check) - - - * [`PotimErrorHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.PotimErrorHandler.correct) - - - * [`PotimErrorHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.PotimErrorHandler.is_monitor) - - - * [`ScanMetalHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.ScanMetalHandler) - - - * [`ScanMetalHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.ScanMetalHandler.check) - - - * [`ScanMetalHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.ScanMetalHandler.correct) - - - * [`ScanMetalHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.ScanMetalHandler.is_monitor) - - - * [`StdErrHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.StdErrHandler) - - - * [`StdErrHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.StdErrHandler.check) - - - * [`StdErrHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.StdErrHandler.correct) - - - * [`StdErrHandler.error_msgs`](custodian.vasp.handlers.md#custodian.vasp.handlers.StdErrHandler.error_msgs) - - - * [`StdErrHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.StdErrHandler.is_monitor) - - - * [`StoppedRunHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.StoppedRunHandler) - - - * [`StoppedRunHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.StoppedRunHandler.check) - - - * [`StoppedRunHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.StoppedRunHandler.correct) - - - * [`StoppedRunHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.StoppedRunHandler.is_monitor) - - - * [`StoppedRunHandler.is_terminating`](custodian.vasp.handlers.md#custodian.vasp.handlers.StoppedRunHandler.is_terminating) - - - * [`UnconvergedErrorHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.UnconvergedErrorHandler) - - - * [`UnconvergedErrorHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.UnconvergedErrorHandler.check) - - - * [`UnconvergedErrorHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.UnconvergedErrorHandler.correct) - - - * [`UnconvergedErrorHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.UnconvergedErrorHandler.is_monitor) - - - * [`VaspErrorHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.VaspErrorHandler) - - - * [`VaspErrorHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.VaspErrorHandler.check) - - - * [`VaspErrorHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.VaspErrorHandler.correct) - - - * [`VaspErrorHandler.error_msgs`](custodian.vasp.handlers.md#custodian.vasp.handlers.VaspErrorHandler.error_msgs) - - - * [`VaspErrorHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.VaspErrorHandler.is_monitor) - - - * [`WalltimeHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.WalltimeHandler) - - - * [`WalltimeHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.WalltimeHandler.check) - - - * [`WalltimeHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.WalltimeHandler.correct) - - - * [`WalltimeHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.WalltimeHandler.is_monitor) - - - * [`WalltimeHandler.is_terminating`](custodian.vasp.handlers.md#custodian.vasp.handlers.WalltimeHandler.is_terminating) - - - * [`WalltimeHandler.raises_runtime_error`](custodian.vasp.handlers.md#custodian.vasp.handlers.WalltimeHandler.raises_runtime_error) - - + * [`AliasingErrorHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.AliasingErrorHandler) + * [`AliasingErrorHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.AliasingErrorHandler.check) + * [`AliasingErrorHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.AliasingErrorHandler.correct) + * [`AliasingErrorHandler.error_msgs`](custodian.vasp.handlers.md#custodian.vasp.handlers.AliasingErrorHandler.error_msgs) + * [`AliasingErrorHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.AliasingErrorHandler.is_monitor) + * [`CheckpointHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.CheckpointHandler) + * [`CheckpointHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.CheckpointHandler.check) + * [`CheckpointHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.CheckpointHandler.correct) + * [`CheckpointHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.CheckpointHandler.is_monitor) + * [`CheckpointHandler.is_terminating`](custodian.vasp.handlers.md#custodian.vasp.handlers.CheckpointHandler.is_terminating) + * [`DriftErrorHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.DriftErrorHandler) + * [`DriftErrorHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.DriftErrorHandler.check) + * [`DriftErrorHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.DriftErrorHandler.correct) + * [`FrozenJobErrorHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.FrozenJobErrorHandler) + * [`FrozenJobErrorHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.FrozenJobErrorHandler.check) + * [`FrozenJobErrorHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.FrozenJobErrorHandler.correct) + * [`FrozenJobErrorHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.FrozenJobErrorHandler.is_monitor) + * [`IncorrectSmearingHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.IncorrectSmearingHandler) + * [`IncorrectSmearingHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.IncorrectSmearingHandler.check) + * [`IncorrectSmearingHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.IncorrectSmearingHandler.correct) + * [`IncorrectSmearingHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.IncorrectSmearingHandler.is_monitor) + * [`LargeSigmaHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.LargeSigmaHandler) + * [`LargeSigmaHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.LargeSigmaHandler.check) + * [`LargeSigmaHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.LargeSigmaHandler.correct) + * [`LargeSigmaHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.LargeSigmaHandler.is_monitor) + * [`LrfCommutatorHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.LrfCommutatorHandler) + * [`LrfCommutatorHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.LrfCommutatorHandler.check) + * [`LrfCommutatorHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.LrfCommutatorHandler.correct) + * [`LrfCommutatorHandler.error_msgs`](custodian.vasp.handlers.md#custodian.vasp.handlers.LrfCommutatorHandler.error_msgs) + * [`LrfCommutatorHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.LrfCommutatorHandler.is_monitor) + * [`MeshSymmetryErrorHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.MeshSymmetryErrorHandler) + * [`MeshSymmetryErrorHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.MeshSymmetryErrorHandler.check) + * [`MeshSymmetryErrorHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.MeshSymmetryErrorHandler.correct) + * [`MeshSymmetryErrorHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.MeshSymmetryErrorHandler.is_monitor) + * [`NonConvergingErrorHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.NonConvergingErrorHandler) + * [`NonConvergingErrorHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.NonConvergingErrorHandler.check) + * [`NonConvergingErrorHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.NonConvergingErrorHandler.correct) + * [`NonConvergingErrorHandler.from_dict()`](custodian.vasp.handlers.md#custodian.vasp.handlers.NonConvergingErrorHandler.from_dict) + * [`NonConvergingErrorHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.NonConvergingErrorHandler.is_monitor) + * [`PositiveEnergyErrorHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.PositiveEnergyErrorHandler) + * [`PositiveEnergyErrorHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.PositiveEnergyErrorHandler.check) + * [`PositiveEnergyErrorHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.PositiveEnergyErrorHandler.correct) + * [`PositiveEnergyErrorHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.PositiveEnergyErrorHandler.is_monitor) + * [`PotimErrorHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.PotimErrorHandler) + * [`PotimErrorHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.PotimErrorHandler.check) + * [`PotimErrorHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.PotimErrorHandler.correct) + * [`PotimErrorHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.PotimErrorHandler.is_monitor) + * [`ScanMetalHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.ScanMetalHandler) + * [`ScanMetalHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.ScanMetalHandler.check) + * [`ScanMetalHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.ScanMetalHandler.correct) + * [`ScanMetalHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.ScanMetalHandler.is_monitor) + * [`StdErrHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.StdErrHandler) + * [`StdErrHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.StdErrHandler.check) + * [`StdErrHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.StdErrHandler.correct) + * [`StdErrHandler.error_msgs`](custodian.vasp.handlers.md#custodian.vasp.handlers.StdErrHandler.error_msgs) + * [`StdErrHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.StdErrHandler.is_monitor) + * [`StoppedRunHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.StoppedRunHandler) + * [`StoppedRunHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.StoppedRunHandler.check) + * [`StoppedRunHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.StoppedRunHandler.correct) + * [`StoppedRunHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.StoppedRunHandler.is_monitor) + * [`StoppedRunHandler.is_terminating`](custodian.vasp.handlers.md#custodian.vasp.handlers.StoppedRunHandler.is_terminating) + * [`UnconvergedErrorHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.UnconvergedErrorHandler) + * [`UnconvergedErrorHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.UnconvergedErrorHandler.check) + * [`UnconvergedErrorHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.UnconvergedErrorHandler.correct) + * [`UnconvergedErrorHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.UnconvergedErrorHandler.is_monitor) + * [`VaspErrorHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.VaspErrorHandler) + * [`VaspErrorHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.VaspErrorHandler.check) + * [`VaspErrorHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.VaspErrorHandler.correct) + * [`VaspErrorHandler.error_msgs`](custodian.vasp.handlers.md#custodian.vasp.handlers.VaspErrorHandler.error_msgs) + * [`VaspErrorHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.VaspErrorHandler.is_monitor) + * [`WalltimeHandler`](custodian.vasp.handlers.md#custodian.vasp.handlers.WalltimeHandler) + * [`WalltimeHandler.check()`](custodian.vasp.handlers.md#custodian.vasp.handlers.WalltimeHandler.check) + * [`WalltimeHandler.correct()`](custodian.vasp.handlers.md#custodian.vasp.handlers.WalltimeHandler.correct) + * [`WalltimeHandler.is_monitor`](custodian.vasp.handlers.md#custodian.vasp.handlers.WalltimeHandler.is_monitor) + * [`WalltimeHandler.is_terminating`](custodian.vasp.handlers.md#custodian.vasp.handlers.WalltimeHandler.is_terminating) + * [`WalltimeHandler.raises_runtime_error`](custodian.vasp.handlers.md#custodian.vasp.handlers.WalltimeHandler.raises_runtime_error) * [custodian.vasp.interpreter module](custodian.vasp.interpreter.md) - - - * [`VaspModder`](custodian.vasp.interpreter.md#custodian.vasp.interpreter.VaspModder) - - - * [`VaspModder.apply_actions()`](custodian.vasp.interpreter.md#custodian.vasp.interpreter.VaspModder.apply_actions) - - + * [`VaspModder`](custodian.vasp.interpreter.md#custodian.vasp.interpreter.VaspModder) + * [`VaspModder.apply_actions()`](custodian.vasp.interpreter.md#custodian.vasp.interpreter.VaspModder.apply_actions) * [custodian.vasp.jobs module](custodian.vasp.jobs.md) - - - * [`GenerateVaspInputJob`](custodian.vasp.jobs.md#custodian.vasp.jobs.GenerateVaspInputJob) - - - * [`GenerateVaspInputJob.postprocess()`](custodian.vasp.jobs.md#custodian.vasp.jobs.GenerateVaspInputJob.postprocess) - - - * [`GenerateVaspInputJob.run()`](custodian.vasp.jobs.md#custodian.vasp.jobs.GenerateVaspInputJob.run) - - - * [`GenerateVaspInputJob.setup()`](custodian.vasp.jobs.md#custodian.vasp.jobs.GenerateVaspInputJob.setup) - - - * [`VaspJob`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspJob) - - - * [`VaspJob.constrained_opt_run()`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspJob.constrained_opt_run) - - - * [`VaspJob.double_relaxation_run()`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspJob.double_relaxation_run) - - - * [`VaspJob.full_opt_run()`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspJob.full_opt_run) - - - * [`VaspJob.metagga_opt_run()`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspJob.metagga_opt_run) - - - * [`VaspJob.postprocess()`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspJob.postprocess) - - - * [`VaspJob.run()`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspJob.run) - - - * [`VaspJob.setup()`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspJob.setup) - - - * [`VaspJob.terminate()`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspJob.terminate) - - - * [`VaspNEBJob`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspNEBJob) - - - * [`VaspNEBJob.postprocess()`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspNEBJob.postprocess) - - - * [`VaspNEBJob.run()`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspNEBJob.run) - - - * [`VaspNEBJob.setup()`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspNEBJob.setup) - - + * [`GenerateVaspInputJob`](custodian.vasp.jobs.md#custodian.vasp.jobs.GenerateVaspInputJob) + * [`GenerateVaspInputJob.postprocess()`](custodian.vasp.jobs.md#custodian.vasp.jobs.GenerateVaspInputJob.postprocess) + * [`GenerateVaspInputJob.run()`](custodian.vasp.jobs.md#custodian.vasp.jobs.GenerateVaspInputJob.run) + * [`GenerateVaspInputJob.setup()`](custodian.vasp.jobs.md#custodian.vasp.jobs.GenerateVaspInputJob.setup) + * [`VaspJob`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspJob) + * [`VaspJob.constrained_opt_run()`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspJob.constrained_opt_run) + * [`VaspJob.double_relaxation_run()`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspJob.double_relaxation_run) + * [`VaspJob.full_opt_run()`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspJob.full_opt_run) + * [`VaspJob.metagga_opt_run()`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspJob.metagga_opt_run) + * [`VaspJob.postprocess()`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspJob.postprocess) + * [`VaspJob.run()`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspJob.run) + * [`VaspJob.setup()`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspJob.setup) + * [`VaspJob.terminate()`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspJob.terminate) + * [`VaspNEBJob`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspNEBJob) + * [`VaspNEBJob.postprocess()`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspNEBJob.postprocess) + * [`VaspNEBJob.run()`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspNEBJob.run) + * [`VaspNEBJob.setup()`](custodian.vasp.jobs.md#custodian.vasp.jobs.VaspNEBJob.setup) * [custodian.vasp.validators module](custodian.vasp.validators.md) - - - * [`VaspAECCARValidator`](custodian.vasp.validators.md#custodian.vasp.validators.VaspAECCARValidator) - - - * [`VaspAECCARValidator.check()`](custodian.vasp.validators.md#custodian.vasp.validators.VaspAECCARValidator.check) - - - * [`VaspFilesValidator`](custodian.vasp.validators.md#custodian.vasp.validators.VaspFilesValidator) - - - * [`VaspFilesValidator.check()`](custodian.vasp.validators.md#custodian.vasp.validators.VaspFilesValidator.check) - - - * [`VaspNpTMDValidator`](custodian.vasp.validators.md#custodian.vasp.validators.VaspNpTMDValidator) - - - * [`VaspNpTMDValidator.check()`](custodian.vasp.validators.md#custodian.vasp.validators.VaspNpTMDValidator.check) - - - * [`VasprunXMLValidator`](custodian.vasp.validators.md#custodian.vasp.validators.VasprunXMLValidator) - - - * [`VasprunXMLValidator.check()`](custodian.vasp.validators.md#custodian.vasp.validators.VasprunXMLValidator.check) - - - * [`check_broken_chgcar()`](custodian.vasp.validators.md#custodian.vasp.validators.check_broken_chgcar) \ No newline at end of file + * [`VaspAECCARValidator`](custodian.vasp.validators.md#custodian.vasp.validators.VaspAECCARValidator) + * [`VaspAECCARValidator.check()`](custodian.vasp.validators.md#custodian.vasp.validators.VaspAECCARValidator.check) + * [`VaspFilesValidator`](custodian.vasp.validators.md#custodian.vasp.validators.VaspFilesValidator) + * [`VaspFilesValidator.check()`](custodian.vasp.validators.md#custodian.vasp.validators.VaspFilesValidator.check) + * [`VaspNpTMDValidator`](custodian.vasp.validators.md#custodian.vasp.validators.VaspNpTMDValidator) + * [`VaspNpTMDValidator.check()`](custodian.vasp.validators.md#custodian.vasp.validators.VaspNpTMDValidator.check) + * [`VasprunXMLValidator`](custodian.vasp.validators.md#custodian.vasp.validators.VasprunXMLValidator) + * [`VasprunXMLValidator.check()`](custodian.vasp.validators.md#custodian.vasp.validators.VasprunXMLValidator.check) + * [`check_broken_chgcar()`](custodian.vasp.validators.md#custodian.vasp.validators.check_broken_chgcar) \ No newline at end of file diff --git a/docs/custodian.vasp.validators.md b/docs/custodian.vasp.validators.md index dfae77b4..a92bbd9c 100644 --- a/docs/custodian.vasp.validators.md +++ b/docs/custodian.vasp.validators.md @@ -8,34 +8,36 @@ nav_exclude: true Implements various validatiors, e.g., check if vasprun.xml is valid, for VASP. +## *class* custodian.vasp.validators.VaspAECCARValidator() -### _class_ custodian.vasp.validators.VaspAECCARValidator() Bases: [`Validator`](custodian.custodian.md#custodian.custodian.Validator) Check if the data in the AECCAR is corrupted Dummy init +### check() -#### check() Check for error. +## *class* custodian.vasp.validators.VaspFilesValidator() -### _class_ custodian.vasp.validators.VaspFilesValidator() Bases: [`Validator`](custodian.custodian.md#custodian.custodian.Validator) Check for existence of some of the files that VASP - normally create upon running. +```none +normally create upon running. +``` Dummy init +### check() -#### check() Check for error. +## *class* custodian.vasp.validators.VaspNpTMDValidator() -### _class_ custodian.vasp.validators.VaspNpTMDValidator() Bases: [`Validator`](custodian.custodian.md#custodian.custodian.Validator) Check NpT-AIMD settings is loaded by VASP compiled with -Dtbdyn. @@ -43,34 +45,28 @@ Currently, VASP only have Langevin thermostat (MDALGO = 3) for NpT ensemble. Dummy init. +### check() -#### check() Check for error. +## *class* custodian.vasp.validators.VasprunXMLValidator(output_file=’vasp.out’, stderr_file=’std_err.txt’) -### _class_ custodian.vasp.validators.VasprunXMLValidator(output_file='vasp.out', stderr_file='std_err.txt') Bases: [`Validator`](custodian.custodian.md#custodian.custodian.Validator) Checks that a valid vasprun.xml was generated - * **Parameters** - - - * **output_file** (*str*) – Name of file VASP standard output is directed to. + * **output_file** (*str*) – Name of file VASP standard output is directed to. Defaults to “vasp.out”. - - - * **stderr_file** (*str*) – Name of file VASP standard error is direct to. + * **stderr_file** (*str*) – Name of file VASP standard error is direct to. Defaults to “std_err.txt”. +### check() - -#### check() Check for error. +## custodian.vasp.validators.check_broken_chgcar(chgcar, diff_thresh=None) -### custodian.vasp.validators.check_broken_chgcar(chgcar, diff_thresh=None) Check if the charge density file is corrupt :param chgcar: Chgcar-like object. :type chgcar: Chgcar diff --git a/setup.py b/setup.py index 4a46e398..77958ecb 100644 --- a/setup.py +++ b/setup.py @@ -11,7 +11,7 @@ setup( name="custodian", packages=find_packages(), - version="2023.7.22", + version="2023.10.9", install_requires=["monty>=2.0.6", "ruamel.yaml>=0.15.6", "sentry-sdk>=0.8.0", "psutil"], extras_require={ "vasp, nwchem, qchem": ["pymatgen>=2019.8.23"],