@mat3ra/mode 2025.10.2-0 → 2025.11.5-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/package.json +32 -17
  2. package/src/js/default_methods.ts +36 -0
  3. package/src/js/default_models.ts +11 -0
  4. package/src/js/generated/MethodSchemaMixin.ts +26 -0
  5. package/src/js/generated/ModelSchemaMixin.ts +23 -0
  6. package/src/{index.js → js/index.ts} +5 -11
  7. package/src/js/method.ts +67 -0
  8. package/src/js/methodConversionHandler.ts +142 -0
  9. package/src/{methods/factory.js → js/methods/factory.ts} +3 -1
  10. package/src/js/methods/pseudopotential.ts +86 -0
  11. package/src/js/model.ts +168 -0
  12. package/src/js/modelConversionHandler.ts +102 -0
  13. package/src/js/models/dft.ts +110 -0
  14. package/src/{models/factory.js → js/models/factory.ts} +9 -4
  15. package/src/{tree.js → js/tree.ts} +26 -33
  16. package/src/js/types/index.ts +37 -0
  17. package/tsconfig.json +3 -0
  18. package/.babelrc +0 -17
  19. package/dist/data/method_list.js +0 -1132
  20. package/dist/data/model_list.js +0 -786
  21. package/dist/data/model_method_map.js +0 -82
  22. package/dist/default_methods.js +0 -39
  23. package/dist/default_models.js +0 -14
  24. package/dist/index.js +0 -62
  25. package/dist/method.js +0 -84
  26. package/dist/methods/factory.js +0 -24
  27. package/dist/methods/pseudopotential.js +0 -100
  28. package/dist/model.js +0 -123
  29. package/dist/models/dft.js +0 -102
  30. package/dist/models/factory.js +0 -36
  31. package/dist/tree.js +0 -165
  32. package/src/data/method_list.js +0 -2
  33. package/src/data/model_list.js +0 -2
  34. package/src/data/model_method_map.js +0 -2
  35. package/src/default_methods.js +0 -38
  36. package/src/default_models.js +0 -9
  37. package/src/method.js +0 -77
  38. package/src/methods/pseudopotential.js +0 -99
  39. package/src/model.js +0 -127
  40. package/src/models/dft.js +0 -115
package/dist/tree.js DELETED
@@ -1,165 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.MODEL_TREE = exports.MODEL_NAMES = exports.METHODS = void 0;
7
- exports.filterMethodsByModel = filterMethodsByModel;
8
- exports.treeSlugToNamedObject = exports.getTreeByApplicationNameAndVersion = exports.getPseudopotentialTypesFromTree = exports.getDefaultModelTypeForApplication = exports.getDFTFunctionalsFromTree = exports.getDFTFunctionalsByApproximation = void 0;
9
- var _utils = require("@mat3ra/code/dist/js/utils");
10
- var _standata = require("@mat3ra/standata");
11
- var _lodash = _interopRequireDefault(require("lodash"));
12
- var _underscore = _interopRequireDefault(require("underscore"));
13
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
- // TODO: migrate to use manifest instead
15
-
16
- const METHODS = exports.METHODS = {
17
- pseudopotential: "pseudopotential",
18
- localorbital: "localorbital",
19
- unknown: "unknown"
20
- };
21
- const methods = {
22
- [METHODS.pseudopotential]: ["paw", "nc", "nc-fr", "us"],
23
- // TODO: Add additional basis set options, once user choice of specific (i.e 3-21G vs cc-pVDZ) is implemented.
24
- [METHODS.localorbital]: ["pople"],
25
- [METHODS.unknown]: ["unknown"]
26
- };
27
- const getPseudopotentialTypesFromTree = () => methods[METHODS.pseudopotential];
28
-
29
- // DFT-specific
30
- exports.getPseudopotentialTypesFromTree = getPseudopotentialTypesFromTree;
31
- const DFTModelRefiners = ["hse", "g0w0"];
32
- const DFTModelModifiers = ["soc", "magn"];
33
- const DFTModelTree = {
34
- gga: {
35
- refiners: DFTModelRefiners,
36
- modifiers: DFTModelModifiers,
37
- methods,
38
- functionals: ["pbe", "pbesol", "pw91", "other"]
39
- },
40
- lda: {
41
- refiners: DFTModelRefiners,
42
- modifiers: DFTModelModifiers,
43
- methods,
44
- functionals: ["pz", "pw", "vwn", "other"]
45
- },
46
- hybrid: {
47
- methods,
48
- functionals: ["b3lyp", "hse06"]
49
- },
50
- other: {
51
- methods,
52
- functionals: ["other"]
53
- }
54
- };
55
- const getDFTFunctionalsFromTree = () => Object.keys(DFTModelTree);
56
- exports.getDFTFunctionalsFromTree = getDFTFunctionalsFromTree;
57
- const getDFTFunctionalsByApproximation = approximation => {
58
- const branch = DFTModelTree[approximation];
59
- return branch && branch.functionals;
60
- };
61
-
62
- // GENERAL
63
- exports.getDFTFunctionalsByApproximation = getDFTFunctionalsByApproximation;
64
- const MODEL_TREE = exports.MODEL_TREE = {
65
- dft: DFTModelTree,
66
- ml: {
67
- re: {
68
- methods: {
69
- linear: ["least_squares", "ridge"],
70
- kernel_ridge: ["least_squares"]
71
- }
72
- }
73
- },
74
- unknown: {
75
- unknown: {
76
- methods: {
77
- unknown: ["unknown"]
78
- }
79
- }
80
- }
81
- };
82
- const MODEL_NAMES = exports.MODEL_NAMES = {
83
- dft: "density functional theory",
84
- lda: "local density approximation",
85
- gga: "generalized gradient approximation",
86
- hybrid: "hybrid functional",
87
- ml: "machine learning",
88
- re: "regression"
89
- };
90
- const treeSlugToNamedObject = modelSlug => {
91
- return {
92
- slug: modelSlug,
93
- name: _lodash.default.get(MODEL_NAMES, modelSlug, modelSlug)
94
- };
95
- };
96
-
97
- // TODO: find a better way to handle application-specific model-method combination
98
- // must be a subset of the MODEL_TREE above
99
- // demonstrate how tree can be modified
100
- // VASP_MODELS_TREE.gga.functionals = _.omit(VASP_MODELS_TREE.gga.functionals);
101
- exports.treeSlugToNamedObject = treeSlugToNamedObject;
102
- const VASP_MODELS_TREE = (0, _utils.deepClone)(_underscore.default.pick(MODEL_TREE, "dft"));
103
- const ESPRESSO_MODELS_TREE = (0, _utils.deepClone)(_underscore.default.pick(MODEL_TREE, "dft"));
104
- const NWCHEM_MODELS_TREE = (0, _utils.deepClone)(_underscore.default.pick(MODEL_TREE, "dft"));
105
- ["gga", "lda"].forEach(approximation => {
106
- // pick "paw" for vasp
107
- VASP_MODELS_TREE.dft[approximation].methods.pseudopotential = VASP_MODELS_TREE.dft[approximation].methods.pseudopotential.splice(0, 1);
108
-
109
- // assert "us" is the first option
110
- ESPRESSO_MODELS_TREE.dft[approximation].methods.pseudopotential = ESPRESSO_MODELS_TREE.dft[approximation].methods.pseudopotential.reverse();
111
- });
112
- const UNKNOWN_MODELS_TREE = _underscore.default.pick(MODEL_TREE, "unknown");
113
- // const ML_MODELS_TREE = _.pick(MODEL_TREE, "ml");
114
-
115
- const MODELS_TREE_CONFIGS_BY_APPLICATION_NAME_VERSION = [{
116
- name: "vasp",
117
- tree: VASP_MODELS_TREE
118
- }, {
119
- name: "espresso",
120
- tree: ESPRESSO_MODELS_TREE
121
- }, {
122
- name: "python",
123
- tree: UNKNOWN_MODELS_TREE
124
- }, {
125
- name: "shell",
126
- tree: UNKNOWN_MODELS_TREE
127
- }, {
128
- name: "jupyterLab",
129
- tree: UNKNOWN_MODELS_TREE
130
- }, {
131
- name: "nwchem",
132
- tree: NWCHEM_MODELS_TREE
133
- }, {
134
- name: "deepmd",
135
- tree: UNKNOWN_MODELS_TREE
136
- }];
137
- const getTreeByApplicationNameAndVersion = ({
138
- name,
139
- // eslint-disable-next-line no-unused-vars
140
- version
141
- }) => {
142
- // TODO: add logic to filter by version when necessary
143
- const cfgs = MODELS_TREE_CONFIGS_BY_APPLICATION_NAME_VERSION.filter(cfg => cfg.name === name).map(x => x.tree);
144
- return Object.assign({}, ...cfgs);
145
- };
146
- exports.getTreeByApplicationNameAndVersion = getTreeByApplicationNameAndVersion;
147
- const getDefaultModelTypeForApplication = application => {
148
- return Object.keys(getTreeByApplicationNameAndVersion(application))[0];
149
- };
150
-
151
- /**
152
- * Filter list of method configs based on model
153
- * @param {Object[]} methodList - Array of method configs
154
- * @param {Object} model - Model config for which methods should be filtered
155
- * @return {Object[]}
156
- */
157
- exports.getDefaultModelTypeForApplication = getDefaultModelTypeForApplication;
158
- function filterMethodsByModel({
159
- methodList,
160
- model
161
- }) {
162
- if (!model) return [];
163
- const modelMethodFilter = new _standata.ModelMethodFilter();
164
- return modelMethodFilter.getCompatibleMethods(model, methodList);
165
- }
@@ -1,2 +0,0 @@
1
- /* eslint-disable */
2
- module.exports = {allMethods: [{"units":[{"categories":{"subtype":"us","tier1":"qm","tier2":"wf","type":"psp"},"tags":["pseudopotential"],"name":"Ultra-soft Pseudopotential","path":"/qm/wf/none/psp/us"},{"categories":{"subtype":"nc","tier1":"qm","tier2":"wf","type":"psp"},"tags":["pseudopotential"],"name":"Norm-conserving Pseudopotential","path":"/qm/wf/none/psp/nc"},{"categories":{"subtype":"nc-fr","tier1":"qm","tier2":"wf","type":"psp"},"tags":["pseudopotential"],"name":"Norm-conserving Fully-relativistic Pseudopotential","path":"/qm/wf/none/psp/nc-fr"},{"categories":{"subtype":"paw","tier1":"qm","tier2":"wf","type":"psp"},"tags":["pseudopotential"],"name":"Projector-augmented wave Pseudopotential","path":"/qm/wf/none/psp/paw"},{"categories":{"tier1":"qm","tier2":"wf","type":"pw"},"tags":["plane wave"],"name":"Wave function: Plane wave","path":"/qm/wf/none/pw/none"}],"name":"Any Plane-wave Pseudopotential Method","path":"/qm/wf/none/psp/us::/qm/wf/none/psp/nc::/qm/wf/none/psp/nc-fr::/qm/wf/none/psp/paw::/qm/wf/none/pw/none"},{"units":[{"categories":{"subtype":"least_squares","type":"linear"},"tags":["exabyteML"],"name":"Linear least squares regression","path":"/none/none/none/linear/least_squares"}],"name":"Linear least squares regression","path":"/none/none/none/linear/least_squares"},{"units":[{"categories":{"subtype":"ridge","type":"linear"},"tags":["exabyteML"],"name":"Linear ridge regression","path":"/none/none/none/linear/ridge"}],"name":"Linear ridge regression","path":"/none/none/none/linear/ridge"},{"units":[{"categories":{"type":"kernel_ridge","subtype":"least_squares"},"tags":["exabyteML"],"name":"Kernel Ridge least squares regression","path":"/none/none/none/kernel_ridge/least_squares"}],"name":"Kernel Ridge least squares regression","path":"/none/none/none/kernel_ridge/least_squares"},{"units":[{"parameters":{"basisSlug":"6-31G"},"categories":{"tier1":"qm","tier2":"wf","type":"ao","subtype":"pople"},"tags":["atomic orbital"],"name":"Wave function: LCAO - Pople basis set (6-31G)","path":"/qm/wf/none/ao/pople?basisSlug=6-31G"}],"name":"Wave function: LCAO - Pople basis set (6-31G)","path":"/qm/wf/none/ao/pople?basisSlug=6-31G"},{"units":[{"categories":{"subtype":"gaussian","tier1":"qm","tier2":"wf","type":"smearing"},"tags":["occupation number"],"name":"Gaussian Smearing","path":"/qm/wf/none/smearing/gaussian"},{"categories":{"tier1":"opt","tier2":"diff","tier3":"ordern","type":"cg"},"tags":["diagonalization"],"name":"Conjugate Gradient Diagonalization","path":"/opt/diff/ordern/cg/none"},{"categories":{"subtype":"us","tier1":"qm","tier2":"wf","type":"psp"},"tags":["pseudopotential"],"name":"Ultra-soft Pseudopotential","path":"/qm/wf/none/psp/us"},{"categories":{"tier1":"qm","tier2":"wf","type":"pw"},"tags":["plane wave"],"name":"Wave function: Plane wave","path":"/qm/wf/none/pw/none"}],"name":"Plane-wave Ultra-soft Pseudopotential (Conjugate Gradient Diagonalization, Gaussian Smearing)","path":"/qm/wf/none/smearing/gaussian::/opt/diff/ordern/cg/none::/qm/wf/none/psp/us::/qm/wf/none/pw/none"},{"units":[{"categories":{"subtype":"methfessel-paxton","tier1":"qm","tier2":"wf","type":"smearing"},"tags":["occupation number"],"name":"Methfessel-Paxton Smearing","path":"/qm/wf/none/smearing/methfessel-paxton"},{"categories":{"tier1":"opt","tier2":"diff","tier3":"ordern","type":"cg"},"tags":["diagonalization"],"name":"Conjugate Gradient Diagonalization","path":"/opt/diff/ordern/cg/none"},{"categories":{"subtype":"us","tier1":"qm","tier2":"wf","type":"psp"},"tags":["pseudopotential"],"name":"Ultra-soft Pseudopotential","path":"/qm/wf/none/psp/us"},{"categories":{"tier1":"qm","tier2":"wf","type":"pw"},"tags":["plane wave"],"name":"Wave function: Plane wave","path":"/qm/wf/none/pw/none"}],"name":"Plane-wave Ultra-soft Pseudopotential (Conjugate Gradient Diagonalization, Methfessel-paxton Smearing)","path":"/qm/wf/none/smearing/methfessel-paxton::/opt/diff/ordern/cg/none::/qm/wf/none/psp/us::/qm/wf/none/pw/none"},{"units":[{"categories":{"subtype":"linear","tier1":"qm","tier2":"wf","type":"tetrahedron"},"tags":["occupation number"],"name":"Linear Tetrahedron Method","path":"/qm/wf/none/tetrahedron/linear"},{"categories":{"tier1":"opt","tier2":"diff","tier3":"ordern","type":"cg"},"tags":["diagonalization"],"name":"Conjugate Gradient Diagonalization","path":"/opt/diff/ordern/cg/none"},{"categories":{"subtype":"us","tier1":"qm","tier2":"wf","type":"psp"},"tags":["pseudopotential"],"name":"Ultra-soft Pseudopotential","path":"/qm/wf/none/psp/us"},{"categories":{"tier1":"qm","tier2":"wf","type":"pw"},"tags":["plane wave"],"name":"Wave function: Plane wave","path":"/qm/wf/none/pw/none"}],"name":"Plane-wave Ultra-soft Pseudopotential (Conjugate Gradient Diagonalization, Linear Tetrahedron Method)","path":"/qm/wf/none/tetrahedron/linear::/opt/diff/ordern/cg/none::/qm/wf/none/psp/us::/qm/wf/none/pw/none"},{"units":[{"categories":{"subtype":"gaussian","tier1":"qm","tier2":"wf","type":"smearing"},"tags":["occupation number"],"name":"Gaussian Smearing","path":"/qm/wf/none/smearing/gaussian"},{"categories":{"tier1":"linalg","tier2":"diag","type":"davidson"},"tags":["diagonalization"],"name":"Davidson Diagonalization","path":"/linalg/diag/none/davidson/none"},{"categories":{"subtype":"us","tier1":"qm","tier2":"wf","type":"psp"},"tags":["pseudopotential"],"name":"Ultra-soft Pseudopotential","path":"/qm/wf/none/psp/us"},{"categories":{"tier1":"qm","tier2":"wf","type":"pw"},"tags":["plane wave"],"name":"Wave function: Plane wave","path":"/qm/wf/none/pw/none"}],"name":"Plane-wave Ultra-soft Pseudopotential (Davidson Diagonalization, Gaussian Smearing)","path":"/qm/wf/none/smearing/gaussian::/linalg/diag/none/davidson/none::/qm/wf/none/psp/us::/qm/wf/none/pw/none"},{"units":[{"categories":{"subtype":"methfessel-paxton","tier1":"qm","tier2":"wf","type":"smearing"},"tags":["occupation number"],"name":"Methfessel-Paxton Smearing","path":"/qm/wf/none/smearing/methfessel-paxton"},{"categories":{"tier1":"linalg","tier2":"diag","type":"davidson"},"tags":["diagonalization"],"name":"Davidson Diagonalization","path":"/linalg/diag/none/davidson/none"},{"categories":{"subtype":"us","tier1":"qm","tier2":"wf","type":"psp"},"tags":["pseudopotential"],"name":"Ultra-soft Pseudopotential","path":"/qm/wf/none/psp/us"},{"categories":{"tier1":"qm","tier2":"wf","type":"pw"},"tags":["plane wave"],"name":"Wave function: Plane wave","path":"/qm/wf/none/pw/none"}],"name":"Plane-wave Ultra-soft Pseudopotential (Davidson Diagonalization, Methfessel-paxton Smearing)","path":"/qm/wf/none/smearing/methfessel-paxton::/linalg/diag/none/davidson/none::/qm/wf/none/psp/us::/qm/wf/none/pw/none"},{"units":[{"categories":{"subtype":"linear","tier1":"qm","tier2":"wf","type":"tetrahedron"},"tags":["occupation number"],"name":"Linear Tetrahedron Method","path":"/qm/wf/none/tetrahedron/linear"},{"categories":{"tier1":"linalg","tier2":"diag","type":"davidson"},"tags":["diagonalization"],"name":"Davidson Diagonalization","path":"/linalg/diag/none/davidson/none"},{"categories":{"subtype":"us","tier1":"qm","tier2":"wf","type":"psp"},"tags":["pseudopotential"],"name":"Ultra-soft Pseudopotential","path":"/qm/wf/none/psp/us"},{"categories":{"tier1":"qm","tier2":"wf","type":"pw"},"tags":["plane wave"],"name":"Wave function: Plane wave","path":"/qm/wf/none/pw/none"}],"name":"Plane-wave Ultra-soft Pseudopotential (Davidson Diagonalization, Linear Tetrahedron Method)","path":"/qm/wf/none/tetrahedron/linear::/linalg/diag/none/davidson/none::/qm/wf/none/psp/us::/qm/wf/none/pw/none"},{"units":[{"categories":{"subtype":"gaussian","tier1":"qm","tier2":"wf","type":"smearing"},"tags":["occupation number"],"name":"Gaussian Smearing","path":"/qm/wf/none/smearing/gaussian"},{"categories":{"tier1":"opt","tier2":"diff","tier3":"ordern","type":"cg"},"tags":["diagonalization"],"name":"Conjugate Gradient Diagonalization","path":"/opt/diff/ordern/cg/none"},{"categories":{"subtype":"nc","tier1":"qm","tier2":"wf","type":"psp"},"tags":["pseudopotential"],"name":"Norm-conserving Pseudopotential","path":"/qm/wf/none/psp/nc"},{"categories":{"tier1":"qm","tier2":"wf","type":"pw"},"tags":["plane wave"],"name":"Wave function: Plane wave","path":"/qm/wf/none/pw/none"}],"name":"Plane-wave Norm-conserving Pseudopotential (Conjugate Gradient Diagonalization, Gaussian Smearing)","path":"/qm/wf/none/smearing/gaussian::/opt/diff/ordern/cg/none::/qm/wf/none/psp/nc::/qm/wf/none/pw/none"},{"units":[{"categories":{"subtype":"methfessel-paxton","tier1":"qm","tier2":"wf","type":"smearing"},"tags":["occupation number"],"name":"Methfessel-Paxton Smearing","path":"/qm/wf/none/smearing/methfessel-paxton"},{"categories":{"tier1":"opt","tier2":"diff","tier3":"ordern","type":"cg"},"tags":["diagonalization"],"name":"Conjugate Gradient Diagonalization","path":"/opt/diff/ordern/cg/none"},{"categories":{"subtype":"nc","tier1":"qm","tier2":"wf","type":"psp"},"tags":["pseudopotential"],"name":"Norm-conserving Pseudopotential","path":"/qm/wf/none/psp/nc"},{"categories":{"tier1":"qm","tier2":"wf","type":"pw"},"tags":["plane wave"],"name":"Wave function: Plane wave","path":"/qm/wf/none/pw/none"}],"name":"Plane-wave Norm-conserving Pseudopotential (Conjugate Gradient Diagonalization, Methfessel-paxton Smearing)","path":"/qm/wf/none/smearing/methfessel-paxton::/opt/diff/ordern/cg/none::/qm/wf/none/psp/nc::/qm/wf/none/pw/none"},{"units":[{"categories":{"subtype":"linear","tier1":"qm","tier2":"wf","type":"tetrahedron"},"tags":["occupation number"],"name":"Linear Tetrahedron Method","path":"/qm/wf/none/tetrahedron/linear"},{"categories":{"tier1":"opt","tier2":"diff","tier3":"ordern","type":"cg"},"tags":["diagonalization"],"name":"Conjugate Gradient Diagonalization","path":"/opt/diff/ordern/cg/none"},{"categories":{"subtype":"nc","tier1":"qm","tier2":"wf","type":"psp"},"tags":["pseudopotential"],"name":"Norm-conserving Pseudopotential","path":"/qm/wf/none/psp/nc"},{"categories":{"tier1":"qm","tier2":"wf","type":"pw"},"tags":["plane wave"],"name":"Wave function: Plane wave","path":"/qm/wf/none/pw/none"}],"name":"Plane-wave Norm-conserving Pseudopotential (Conjugate Gradient Diagonalization, Linear Tetrahedron Method)","path":"/qm/wf/none/tetrahedron/linear::/opt/diff/ordern/cg/none::/qm/wf/none/psp/nc::/qm/wf/none/pw/none"},{"units":[{"categories":{"subtype":"gaussian","tier1":"qm","tier2":"wf","type":"smearing"},"tags":["occupation number"],"name":"Gaussian Smearing","path":"/qm/wf/none/smearing/gaussian"},{"categories":{"tier1":"linalg","tier2":"diag","type":"davidson"},"tags":["diagonalization"],"name":"Davidson Diagonalization","path":"/linalg/diag/none/davidson/none"},{"categories":{"subtype":"nc","tier1":"qm","tier2":"wf","type":"psp"},"tags":["pseudopotential"],"name":"Norm-conserving Pseudopotential","path":"/qm/wf/none/psp/nc"},{"categories":{"tier1":"qm","tier2":"wf","type":"pw"},"tags":["plane wave"],"name":"Wave function: Plane wave","path":"/qm/wf/none/pw/none"}],"name":"Plane-wave Norm-conserving Pseudopotential (Davidson Diagonalization, Gaussian Smearing)","path":"/qm/wf/none/smearing/gaussian::/linalg/diag/none/davidson/none::/qm/wf/none/psp/nc::/qm/wf/none/pw/none"},{"units":[{"categories":{"subtype":"methfessel-paxton","tier1":"qm","tier2":"wf","type":"smearing"},"tags":["occupation number"],"name":"Methfessel-Paxton Smearing","path":"/qm/wf/none/smearing/methfessel-paxton"},{"categories":{"tier1":"linalg","tier2":"diag","type":"davidson"},"tags":["diagonalization"],"name":"Davidson Diagonalization","path":"/linalg/diag/none/davidson/none"},{"categories":{"subtype":"nc","tier1":"qm","tier2":"wf","type":"psp"},"tags":["pseudopotential"],"name":"Norm-conserving Pseudopotential","path":"/qm/wf/none/psp/nc"},{"categories":{"tier1":"qm","tier2":"wf","type":"pw"},"tags":["plane wave"],"name":"Wave function: Plane wave","path":"/qm/wf/none/pw/none"}],"name":"Plane-wave Norm-conserving Pseudopotential (Davidson Diagonalization, Methfessel-paxton Smearing)","path":"/qm/wf/none/smearing/methfessel-paxton::/linalg/diag/none/davidson/none::/qm/wf/none/psp/nc::/qm/wf/none/pw/none"},{"units":[{"categories":{"subtype":"linear","tier1":"qm","tier2":"wf","type":"tetrahedron"},"tags":["occupation number"],"name":"Linear Tetrahedron Method","path":"/qm/wf/none/tetrahedron/linear"},{"categories":{"tier1":"linalg","tier2":"diag","type":"davidson"},"tags":["diagonalization"],"name":"Davidson Diagonalization","path":"/linalg/diag/none/davidson/none"},{"categories":{"subtype":"nc","tier1":"qm","tier2":"wf","type":"psp"},"tags":["pseudopotential"],"name":"Norm-conserving Pseudopotential","path":"/qm/wf/none/psp/nc"},{"categories":{"tier1":"qm","tier2":"wf","type":"pw"},"tags":["plane wave"],"name":"Wave function: Plane wave","path":"/qm/wf/none/pw/none"}],"name":"Plane-wave Norm-conserving Pseudopotential (Davidson Diagonalization, Linear Tetrahedron Method)","path":"/qm/wf/none/tetrahedron/linear::/linalg/diag/none/davidson/none::/qm/wf/none/psp/nc::/qm/wf/none/pw/none"},{"units":[{"categories":{"subtype":"gaussian","tier1":"qm","tier2":"wf","type":"smearing"},"tags":["occupation number"],"name":"Gaussian Smearing","path":"/qm/wf/none/smearing/gaussian"},{"categories":{"tier1":"opt","tier2":"diff","tier3":"ordern","type":"cg"},"tags":["diagonalization"],"name":"Conjugate Gradient Diagonalization","path":"/opt/diff/ordern/cg/none"},{"categories":{"subtype":"nc-fr","tier1":"qm","tier2":"wf","type":"psp"},"tags":["pseudopotential"],"name":"Norm-conserving Fully-relativistic Pseudopotential","path":"/qm/wf/none/psp/nc-fr"},{"categories":{"tier1":"qm","tier2":"wf","type":"pw"},"tags":["plane wave"],"name":"Wave function: Plane wave","path":"/qm/wf/none/pw/none"}],"name":"Plane-wave Norm-conserving Fully-relativistic Pseudopotential (Conjugate Gradient Diagonalization, Gaussian Smearing)","path":"/qm/wf/none/smearing/gaussian::/opt/diff/ordern/cg/none::/qm/wf/none/psp/nc-fr::/qm/wf/none/pw/none"},{"units":[{"categories":{"subtype":"methfessel-paxton","tier1":"qm","tier2":"wf","type":"smearing"},"tags":["occupation number"],"name":"Methfessel-Paxton Smearing","path":"/qm/wf/none/smearing/methfessel-paxton"},{"categories":{"tier1":"opt","tier2":"diff","tier3":"ordern","type":"cg"},"tags":["diagonalization"],"name":"Conjugate Gradient Diagonalization","path":"/opt/diff/ordern/cg/none"},{"categories":{"subtype":"nc-fr","tier1":"qm","tier2":"wf","type":"psp"},"tags":["pseudopotential"],"name":"Norm-conserving Fully-relativistic Pseudopotential","path":"/qm/wf/none/psp/nc-fr"},{"categories":{"tier1":"qm","tier2":"wf","type":"pw"},"tags":["plane wave"],"name":"Wave function: Plane wave","path":"/qm/wf/none/pw/none"}],"name":"Plane-wave Norm-conserving Fully-relativistic Pseudopotential (Conjugate Gradient Diagonalization, Methfessel-paxton Smearing)","path":"/qm/wf/none/smearing/methfessel-paxton::/opt/diff/ordern/cg/none::/qm/wf/none/psp/nc-fr::/qm/wf/none/pw/none"},{"units":[{"categories":{"subtype":"linear","tier1":"qm","tier2":"wf","type":"tetrahedron"},"tags":["occupation number"],"name":"Linear Tetrahedron Method","path":"/qm/wf/none/tetrahedron/linear"},{"categories":{"tier1":"opt","tier2":"diff","tier3":"ordern","type":"cg"},"tags":["diagonalization"],"name":"Conjugate Gradient Diagonalization","path":"/opt/diff/ordern/cg/none"},{"categories":{"subtype":"nc-fr","tier1":"qm","tier2":"wf","type":"psp"},"tags":["pseudopotential"],"name":"Norm-conserving Fully-relativistic Pseudopotential","path":"/qm/wf/none/psp/nc-fr"},{"categories":{"tier1":"qm","tier2":"wf","type":"pw"},"tags":["plane wave"],"name":"Wave function: Plane wave","path":"/qm/wf/none/pw/none"}],"name":"Plane-wave Norm-conserving Fully-relativistic Pseudopotential (Conjugate Gradient Diagonalization, Linear Tetrahedron Method)","path":"/qm/wf/none/tetrahedron/linear::/opt/diff/ordern/cg/none::/qm/wf/none/psp/nc-fr::/qm/wf/none/pw/none"},{"units":[{"categories":{"subtype":"gaussian","tier1":"qm","tier2":"wf","type":"smearing"},"tags":["occupation number"],"name":"Gaussian Smearing","path":"/qm/wf/none/smearing/gaussian"},{"categories":{"tier1":"linalg","tier2":"diag","type":"davidson"},"tags":["diagonalization"],"name":"Davidson Diagonalization","path":"/linalg/diag/none/davidson/none"},{"categories":{"subtype":"nc-fr","tier1":"qm","tier2":"wf","type":"psp"},"tags":["pseudopotential"],"name":"Norm-conserving Fully-relativistic Pseudopotential","path":"/qm/wf/none/psp/nc-fr"},{"categories":{"tier1":"qm","tier2":"wf","type":"pw"},"tags":["plane wave"],"name":"Wave function: Plane wave","path":"/qm/wf/none/pw/none"}],"name":"Plane-wave Norm-conserving Fully-relativistic Pseudopotential (Davidson Diagonalization, Gaussian Smearing)","path":"/qm/wf/none/smearing/gaussian::/linalg/diag/none/davidson/none::/qm/wf/none/psp/nc-fr::/qm/wf/none/pw/none"},{"units":[{"categories":{"subtype":"methfessel-paxton","tier1":"qm","tier2":"wf","type":"smearing"},"tags":["occupation number"],"name":"Methfessel-Paxton Smearing","path":"/qm/wf/none/smearing/methfessel-paxton"},{"categories":{"tier1":"linalg","tier2":"diag","type":"davidson"},"tags":["diagonalization"],"name":"Davidson Diagonalization","path":"/linalg/diag/none/davidson/none"},{"categories":{"subtype":"nc-fr","tier1":"qm","tier2":"wf","type":"psp"},"tags":["pseudopotential"],"name":"Norm-conserving Fully-relativistic Pseudopotential","path":"/qm/wf/none/psp/nc-fr"},{"categories":{"tier1":"qm","tier2":"wf","type":"pw"},"tags":["plane wave"],"name":"Wave function: Plane wave","path":"/qm/wf/none/pw/none"}],"name":"Plane-wave Norm-conserving Fully-relativistic Pseudopotential (Davidson Diagonalization, Methfessel-paxton Smearing)","path":"/qm/wf/none/smearing/methfessel-paxton::/linalg/diag/none/davidson/none::/qm/wf/none/psp/nc-fr::/qm/wf/none/pw/none"},{"units":[{"categories":{"subtype":"linear","tier1":"qm","tier2":"wf","type":"tetrahedron"},"tags":["occupation number"],"name":"Linear Tetrahedron Method","path":"/qm/wf/none/tetrahedron/linear"},{"categories":{"tier1":"linalg","tier2":"diag","type":"davidson"},"tags":["diagonalization"],"name":"Davidson Diagonalization","path":"/linalg/diag/none/davidson/none"},{"categories":{"subtype":"nc-fr","tier1":"qm","tier2":"wf","type":"psp"},"tags":["pseudopotential"],"name":"Norm-conserving Fully-relativistic Pseudopotential","path":"/qm/wf/none/psp/nc-fr"},{"categories":{"tier1":"qm","tier2":"wf","type":"pw"},"tags":["plane wave"],"name":"Wave function: Plane wave","path":"/qm/wf/none/pw/none"}],"name":"Plane-wave Norm-conserving Fully-relativistic Pseudopotential (Davidson Diagonalization, Linear Tetrahedron Method)","path":"/qm/wf/none/tetrahedron/linear::/linalg/diag/none/davidson/none::/qm/wf/none/psp/nc-fr::/qm/wf/none/pw/none"},{"units":[{"categories":{"subtype":"gaussian","tier1":"qm","tier2":"wf","type":"smearing"},"tags":["occupation number"],"name":"Gaussian Smearing","path":"/qm/wf/none/smearing/gaussian"},{"categories":{"tier1":"opt","tier2":"diff","tier3":"ordern","type":"cg"},"tags":["diagonalization"],"name":"Conjugate Gradient Diagonalization","path":"/opt/diff/ordern/cg/none"},{"categories":{"subtype":"paw","tier1":"qm","tier2":"wf","type":"psp"},"tags":["pseudopotential"],"name":"Projector-augmented wave Pseudopotential","path":"/qm/wf/none/psp/paw"},{"categories":{"tier1":"qm","tier2":"wf","type":"pw"},"tags":["plane wave"],"name":"Wave function: Plane wave","path":"/qm/wf/none/pw/none"}],"name":"Plane-wave Projector-augmented Wave Pseudopotential (Conjugate Gradient Diagonalization, Gaussian Smearing)","path":"/qm/wf/none/smearing/gaussian::/opt/diff/ordern/cg/none::/qm/wf/none/psp/paw::/qm/wf/none/pw/none"},{"units":[{"categories":{"subtype":"methfessel-paxton","tier1":"qm","tier2":"wf","type":"smearing"},"tags":["occupation number"],"name":"Methfessel-Paxton Smearing","path":"/qm/wf/none/smearing/methfessel-paxton"},{"categories":{"tier1":"opt","tier2":"diff","tier3":"ordern","type":"cg"},"tags":["diagonalization"],"name":"Conjugate Gradient Diagonalization","path":"/opt/diff/ordern/cg/none"},{"categories":{"subtype":"paw","tier1":"qm","tier2":"wf","type":"psp"},"tags":["pseudopotential"],"name":"Projector-augmented wave Pseudopotential","path":"/qm/wf/none/psp/paw"},{"categories":{"tier1":"qm","tier2":"wf","type":"pw"},"tags":["plane wave"],"name":"Wave function: Plane wave","path":"/qm/wf/none/pw/none"}],"name":"Plane-wave Projector-augmented Wave Pseudopotential (Conjugate Gradient Diagonalization, Methfessel-paxton Smearing)","path":"/qm/wf/none/smearing/methfessel-paxton::/opt/diff/ordern/cg/none::/qm/wf/none/psp/paw::/qm/wf/none/pw/none"},{"units":[{"categories":{"subtype":"linear","tier1":"qm","tier2":"wf","type":"tetrahedron"},"tags":["occupation number"],"name":"Linear Tetrahedron Method","path":"/qm/wf/none/tetrahedron/linear"},{"categories":{"tier1":"opt","tier2":"diff","tier3":"ordern","type":"cg"},"tags":["diagonalization"],"name":"Conjugate Gradient Diagonalization","path":"/opt/diff/ordern/cg/none"},{"categories":{"subtype":"paw","tier1":"qm","tier2":"wf","type":"psp"},"tags":["pseudopotential"],"name":"Projector-augmented wave Pseudopotential","path":"/qm/wf/none/psp/paw"},{"categories":{"tier1":"qm","tier2":"wf","type":"pw"},"tags":["plane wave"],"name":"Wave function: Plane wave","path":"/qm/wf/none/pw/none"}],"name":"Plane-wave Projector-augmented Wave Pseudopotential (Conjugate Gradient Diagonalization, Linear Tetrahedron Method)","path":"/qm/wf/none/tetrahedron/linear::/opt/diff/ordern/cg/none::/qm/wf/none/psp/paw::/qm/wf/none/pw/none"},{"units":[{"categories":{"subtype":"gaussian","tier1":"qm","tier2":"wf","type":"smearing"},"tags":["occupation number"],"name":"Gaussian Smearing","path":"/qm/wf/none/smearing/gaussian"},{"categories":{"tier1":"linalg","tier2":"diag","type":"davidson"},"tags":["diagonalization"],"name":"Davidson Diagonalization","path":"/linalg/diag/none/davidson/none"},{"categories":{"subtype":"paw","tier1":"qm","tier2":"wf","type":"psp"},"tags":["pseudopotential"],"name":"Projector-augmented wave Pseudopotential","path":"/qm/wf/none/psp/paw"},{"categories":{"tier1":"qm","tier2":"wf","type":"pw"},"tags":["plane wave"],"name":"Wave function: Plane wave","path":"/qm/wf/none/pw/none"}],"name":"Plane-wave Projector-augmented Wave Pseudopotential (Davidson Diagonalization, Gaussian Smearing)","path":"/qm/wf/none/smearing/gaussian::/linalg/diag/none/davidson/none::/qm/wf/none/psp/paw::/qm/wf/none/pw/none"},{"units":[{"categories":{"subtype":"methfessel-paxton","tier1":"qm","tier2":"wf","type":"smearing"},"tags":["occupation number"],"name":"Methfessel-Paxton Smearing","path":"/qm/wf/none/smearing/methfessel-paxton"},{"categories":{"tier1":"linalg","tier2":"diag","type":"davidson"},"tags":["diagonalization"],"name":"Davidson Diagonalization","path":"/linalg/diag/none/davidson/none"},{"categories":{"subtype":"paw","tier1":"qm","tier2":"wf","type":"psp"},"tags":["pseudopotential"],"name":"Projector-augmented wave Pseudopotential","path":"/qm/wf/none/psp/paw"},{"categories":{"tier1":"qm","tier2":"wf","type":"pw"},"tags":["plane wave"],"name":"Wave function: Plane wave","path":"/qm/wf/none/pw/none"}],"name":"Plane-wave Projector-augmented Wave Pseudopotential (Davidson Diagonalization, Methfessel-paxton Smearing)","path":"/qm/wf/none/smearing/methfessel-paxton::/linalg/diag/none/davidson/none::/qm/wf/none/psp/paw::/qm/wf/none/pw/none"},{"units":[{"categories":{"subtype":"linear","tier1":"qm","tier2":"wf","type":"tetrahedron"},"tags":["occupation number"],"name":"Linear Tetrahedron Method","path":"/qm/wf/none/tetrahedron/linear"},{"categories":{"tier1":"linalg","tier2":"diag","type":"davidson"},"tags":["diagonalization"],"name":"Davidson Diagonalization","path":"/linalg/diag/none/davidson/none"},{"categories":{"subtype":"paw","tier1":"qm","tier2":"wf","type":"psp"},"tags":["pseudopotential"],"name":"Projector-augmented wave Pseudopotential","path":"/qm/wf/none/psp/paw"},{"categories":{"tier1":"qm","tier2":"wf","type":"pw"},"tags":["plane wave"],"name":"Wave function: Plane wave","path":"/qm/wf/none/pw/none"}],"name":"Plane-wave Projector-augmented Wave Pseudopotential (Davidson Diagonalization, Linear Tetrahedron Method)","path":"/qm/wf/none/tetrahedron/linear::/linalg/diag/none/davidson/none::/qm/wf/none/psp/paw::/qm/wf/none/pw/none"}]}
@@ -1,2 +0,0 @@
1
- /* eslint-disable */
2
- module.exports = {allModels: [{"parameters":{"spinOrbitCoupling":true,"dispersionCorrection":"dft-d3","functional":"pbe"},"categories":{"tier1":"pb","tier2":"qm","tier3":"dft","type":"ksdft","subtype":"gga"},"tags":["density functional theory"],"name":"DFT GGA PBE-D3 (SOC)","path":"/pb/qm/dft/ksdft/gga?spinOrbitCoupling=true&dispersionCorrection=dft-d3&functional=pbe"},{"parameters":{"spinPolarization":"collinear","dispersionCorrection":"dft-d3","functional":"pbe"},"categories":{"tier1":"pb","tier2":"qm","tier3":"dft","type":"ksdft","subtype":"gga"},"tags":["density functional theory"],"name":"DFT GGA PBE-D3 (collinear)","path":"/pb/qm/dft/ksdft/gga?spinPolarization=collinear&dispersionCorrection=dft-d3&functional=pbe"},{"parameters":{"dispersionCorrection":"dft-d3","functional":"pbe"},"categories":{"tier1":"pb","tier2":"qm","tier3":"dft","type":"ksdft","subtype":"gga"},"tags":["density functional theory"],"name":"DFT GGA PBE-D3","path":"/pb/qm/dft/ksdft/gga?dispersionCorrection=dft-d3&functional=pbe"},{"parameters":{"hubbardType":"u","spinOrbitCoupling":true,"functional":"pbe"},"categories":{"tier1":"pb","tier2":"qm","tier3":"dft","type":"ksdft","subtype":"gga"},"tags":["density functional theory"],"name":"DFT GGA PBE+U (SOC)","path":"/pb/qm/dft/ksdft/gga?hubbardType=u&spinOrbitCoupling=true&functional=pbe"},{"parameters":{"spinOrbitCoupling":true,"functional":"pbe"},"categories":{"tier1":"pb","tier2":"qm","tier3":"dft","type":"ksdft","subtype":"gga"},"tags":["density functional theory"],"name":"DFT GGA PBE (SOC)","path":"/pb/qm/dft/ksdft/gga?spinOrbitCoupling=true&functional=pbe"},{"parameters":{"spinPolarization":"collinear","hubbardType":"u","functional":"pbe"},"categories":{"tier1":"pb","tier2":"qm","tier3":"dft","type":"ksdft","subtype":"gga"},"tags":["density functional theory"],"name":"DFT GGA PBE+U (collinear)","path":"/pb/qm/dft/ksdft/gga?spinPolarization=collinear&hubbardType=u&functional=pbe"},{"parameters":{"hubbardType":"u","functional":"pbe"},"categories":{"tier1":"pb","tier2":"qm","tier3":"dft","type":"ksdft","subtype":"gga"},"tags":["density functional theory"],"name":"DFT GGA PBE+U","path":"/pb/qm/dft/ksdft/gga?hubbardType=u&functional=pbe"},{"parameters":{"spinPolarization":"collinear","functional":"pbe"},"categories":{"tier1":"pb","tier2":"qm","tier3":"dft","type":"ksdft","subtype":"gga"},"tags":["density functional theory"],"name":"DFT GGA PBE (collinear)","path":"/pb/qm/dft/ksdft/gga?spinPolarization=collinear&functional=pbe"},{"parameters":{"functional":"pbe"},"categories":{"tier1":"pb","tier2":"qm","tier3":"dft","type":"ksdft","subtype":"gga"},"tags":["density functional theory"],"name":"DFT GGA PBE","path":"/pb/qm/dft/ksdft/gga?functional=pbe"},{"parameters":{"spinOrbitCoupling":true,"dispersionCorrection":"dft-d3","functional":"pbesol"},"categories":{"tier1":"pb","tier2":"qm","tier3":"dft","type":"ksdft","subtype":"gga"},"tags":["density functional theory"],"name":"DFT GGA PBESOL-D3 (SOC)","path":"/pb/qm/dft/ksdft/gga?spinOrbitCoupling=true&dispersionCorrection=dft-d3&functional=pbesol"},{"parameters":{"spinPolarization":"collinear","dispersionCorrection":"dft-d3","functional":"pbesol"},"categories":{"tier1":"pb","tier2":"qm","tier3":"dft","type":"ksdft","subtype":"gga"},"tags":["density functional theory"],"name":"DFT GGA PBESOL-D3 (collinear)","path":"/pb/qm/dft/ksdft/gga?spinPolarization=collinear&dispersionCorrection=dft-d3&functional=pbesol"},{"parameters":{"dispersionCorrection":"dft-d3","functional":"pbesol"},"categories":{"tier1":"pb","tier2":"qm","tier3":"dft","type":"ksdft","subtype":"gga"},"tags":["density functional theory"],"name":"DFT GGA PBESOL-D3","path":"/pb/qm/dft/ksdft/gga?dispersionCorrection=dft-d3&functional=pbesol"},{"parameters":{"hubbardType":"u","spinOrbitCoupling":true,"functional":"pbesol"},"categories":{"tier1":"pb","tier2":"qm","tier3":"dft","type":"ksdft","subtype":"gga"},"tags":["density functional theory"],"name":"DFT GGA PBESOL+U (SOC)","path":"/pb/qm/dft/ksdft/gga?hubbardType=u&spinOrbitCoupling=true&functional=pbesol"},{"parameters":{"spinOrbitCoupling":true,"functional":"pbesol"},"categories":{"tier1":"pb","tier2":"qm","tier3":"dft","type":"ksdft","subtype":"gga"},"tags":["density functional theory"],"name":"DFT GGA PBESOL (SOC)","path":"/pb/qm/dft/ksdft/gga?spinOrbitCoupling=true&functional=pbesol"},{"parameters":{"spinPolarization":"collinear","hubbardType":"u","functional":"pbesol"},"categories":{"tier1":"pb","tier2":"qm","tier3":"dft","type":"ksdft","subtype":"gga"},"tags":["density functional theory"],"name":"DFT GGA PBESOL+U (collinear)","path":"/pb/qm/dft/ksdft/gga?spinPolarization=collinear&hubbardType=u&functional=pbesol"},{"parameters":{"hubbardType":"u","functional":"pbesol"},"categories":{"tier1":"pb","tier2":"qm","tier3":"dft","type":"ksdft","subtype":"gga"},"tags":["density functional theory"],"name":"DFT GGA PBESOL+U","path":"/pb/qm/dft/ksdft/gga?hubbardType=u&functional=pbesol"},{"parameters":{"spinPolarization":"collinear","functional":"pbesol"},"categories":{"tier1":"pb","tier2":"qm","tier3":"dft","type":"ksdft","subtype":"gga"},"tags":["density functional theory"],"name":"DFT GGA PBESOL (collinear)","path":"/pb/qm/dft/ksdft/gga?spinPolarization=collinear&functional=pbesol"},{"parameters":{"functional":"pbesol"},"categories":{"tier1":"pb","tier2":"qm","tier3":"dft","type":"ksdft","subtype":"gga"},"tags":["density functional theory"],"name":"DFT GGA PBESOL","path":"/pb/qm/dft/ksdft/gga?functional=pbesol"},{"parameters":{"functional":"pbe","require":"pb/qm/dft/ksdft/gga?functional=pbe"},"categories":{"subtype":"g0w0","tier1":"pb","tier2":"qm","tier3":"abin","type":"gw"},"name":"G0W0@PBE","path":"/pb/qm/abin/gw/g0w0?functional=pbe&require=pb%2Fqm%2Fdft%2Fksdft%2Fgga%3Ffunctional%3Dpbe"},{"parameters":{"functional":"pbesol","require":"pb/qm/dft/ksdft/gga?functional=pbe"},"categories":{"subtype":"g0w0","tier1":"pb","tier2":"qm","tier3":"abin","type":"gw"},"name":"G0W0@pbesol","path":"/pb/qm/abin/gw/g0w0?functional=pbesol&require=pb%2Fqm%2Fdft%2Fksdft%2Fgga%3Ffunctional%3Dpbe"},{"parameters":{"functional":"pbe","require":"pb/qm/dft/ksdft/gga?functional=pbe"},"categories":{"subtype":"evgw0","tier1":"pb","tier2":"qm","tier3":"abin","type":"gw"},"name":"evGW0@PBE","path":"/pb/qm/abin/gw/evgw0?functional=pbe&require=pb%2Fqm%2Fdft%2Fksdft%2Fgga%3Ffunctional%3Dpbe"},{"parameters":{"functional":"pbesol","require":"pb/qm/dft/ksdft/gga?functional=pbe"},"categories":{"subtype":"evgw0","tier1":"pb","tier2":"qm","tier3":"abin","type":"gw"},"name":"evGW0@pbesol","path":"/pb/qm/abin/gw/evgw0?functional=pbesol&require=pb%2Fqm%2Fdft%2Fksdft%2Fgga%3Ffunctional%3Dpbe"},{"parameters":{"functional":"pbe","require":"pb/qm/dft/ksdft/gga?functional=pbe"},"categories":{"subtype":"evgw","tier1":"pb","tier2":"qm","tier3":"abin","type":"gw"},"name":"evGW@PBE","path":"/pb/qm/abin/gw/evgw?functional=pbe&require=pb%2Fqm%2Fdft%2Fksdft%2Fgga%3Ffunctional%3Dpbe"},{"parameters":{"functional":"pbesol","require":"pb/qm/dft/ksdft/gga?functional=pbe"},"categories":{"subtype":"evgw","tier1":"pb","tier2":"qm","tier3":"abin","type":"gw"},"name":"evGW@pbesol","path":"/pb/qm/abin/gw/evgw?functional=pbesol&require=pb%2Fqm%2Fdft%2Fksdft%2Fgga%3Ffunctional%3Dpbe"},{"parameters":{"spinOrbitCoupling":true,"functional":"pbe","require":"pb/qm/dft/ksdft/gga?functional=pbe&spinOrbitCoupling=true"},"categories":{"subtype":"g0w0","tier1":"pb","tier2":"qm","tier3":"abin","type":"gw"},"name":"G0W0@PBE (SOC)","path":"/pb/qm/abin/gw/g0w0?spinOrbitCoupling=true&functional=pbe&require=pb%2Fqm%2Fdft%2Fksdft%2Fgga%3Ffunctional%3Dpbe%26spinOrbitCoupling%3Dtrue"},{"parameters":{"spinOrbitCoupling":true,"functional":"pbesol","require":"pb/qm/dft/ksdft/gga?functional=pbe&spinOrbitCoupling=true"},"categories":{"subtype":"g0w0","tier1":"pb","tier2":"qm","tier3":"abin","type":"gw"},"name":"G0W0@pbesol (SOC)","path":"/pb/qm/abin/gw/g0w0?spinOrbitCoupling=true&functional=pbesol&require=pb%2Fqm%2Fdft%2Fksdft%2Fgga%3Ffunctional%3Dpbe%26spinOrbitCoupling%3Dtrue"},{"parameters":{"spinOrbitCoupling":true,"functional":"pbe","require":"pb/qm/dft/ksdft/gga?functional=pbe&spinOrbitCoupling=true"},"categories":{"subtype":"evgw0","tier1":"pb","tier2":"qm","tier3":"abin","type":"gw"},"name":"evGW0@PBE (SOC)","path":"/pb/qm/abin/gw/evgw0?spinOrbitCoupling=true&functional=pbe&require=pb%2Fqm%2Fdft%2Fksdft%2Fgga%3Ffunctional%3Dpbe%26spinOrbitCoupling%3Dtrue"},{"parameters":{"spinOrbitCoupling":true,"functional":"pbesol","require":"pb/qm/dft/ksdft/gga?functional=pbe&spinOrbitCoupling=true"},"categories":{"subtype":"evgw0","tier1":"pb","tier2":"qm","tier3":"abin","type":"gw"},"name":"evGW0@pbesol (SOC)","path":"/pb/qm/abin/gw/evgw0?spinOrbitCoupling=true&functional=pbesol&require=pb%2Fqm%2Fdft%2Fksdft%2Fgga%3Ffunctional%3Dpbe%26spinOrbitCoupling%3Dtrue"},{"parameters":{"spinOrbitCoupling":true,"functional":"pbe","require":"pb/qm/dft/ksdft/gga?functional=pbe&spinOrbitCoupling=true"},"categories":{"subtype":"evgw","tier1":"pb","tier2":"qm","tier3":"abin","type":"gw"},"name":"evGW@PBE (SOC)","path":"/pb/qm/abin/gw/evgw?spinOrbitCoupling=true&functional=pbe&require=pb%2Fqm%2Fdft%2Fksdft%2Fgga%3Ffunctional%3Dpbe%26spinOrbitCoupling%3Dtrue"},{"parameters":{"spinOrbitCoupling":true,"functional":"pbesol","require":"pb/qm/dft/ksdft/gga?functional=pbe&spinOrbitCoupling=true"},"categories":{"subtype":"evgw","tier1":"pb","tier2":"qm","tier3":"abin","type":"gw"},"name":"evGW@pbesol (SOC)","path":"/pb/qm/abin/gw/evgw?spinOrbitCoupling=true&functional=pbesol&require=pb%2Fqm%2Fdft%2Fksdft%2Fgga%3Ffunctional%3Dpbe%26spinOrbitCoupling%3Dtrue"},{"parameters":{"spinOrbitCoupling":true,"dispersionCorrection":"dft-d3","functional":"hse06"},"categories":{"tier1":"pb","tier2":"qm","tier3":"dft","type":"ksdft","subtype":"hybrid"},"tags":["density functional theory"],"name":"DFT Hybrid HSE-D3 (SOC)","path":"/pb/qm/dft/ksdft/hybrid?spinOrbitCoupling=true&dispersionCorrection=dft-d3&functional=hse06"},{"parameters":{"spinPolarization":"collinear","dispersionCorrection":"dft-d3","functional":"hse06"},"categories":{"tier1":"pb","tier2":"qm","tier3":"dft","type":"ksdft","subtype":"hybrid"},"tags":["density functional theory"],"name":"DFT Hybrid HSE-D3 (collinear)","path":"/pb/qm/dft/ksdft/hybrid?spinPolarization=collinear&dispersionCorrection=dft-d3&functional=hse06"},{"parameters":{"dispersionCorrection":"dft-d3","functional":"hse06"},"categories":{"tier1":"pb","tier2":"qm","tier3":"dft","type":"ksdft","subtype":"hybrid"},"tags":["density functional theory"],"name":"DFT Hybrid HSE-D3","path":"/pb/qm/dft/ksdft/hybrid?dispersionCorrection=dft-d3&functional=hse06"},{"parameters":{"spinOrbitCoupling":true,"functional":"hse06"},"categories":{"tier1":"pb","tier2":"qm","tier3":"dft","type":"ksdft","subtype":"hybrid"},"tags":["density functional theory"],"name":"DFT Hybrid HSE (SOC)","path":"/pb/qm/dft/ksdft/hybrid?spinOrbitCoupling=true&functional=hse06"},{"parameters":{"spinPolarization":"collinear","functional":"hse06"},"categories":{"tier1":"pb","tier2":"qm","tier3":"dft","type":"ksdft","subtype":"hybrid"},"tags":["density functional theory"],"name":"DFT Hybrid HSE (collinear)","path":"/pb/qm/dft/ksdft/hybrid?spinPolarization=collinear&functional=hse06"},{"parameters":{"functional":"hse06"},"categories":{"tier1":"pb","tier2":"qm","tier3":"dft","type":"ksdft","subtype":"hybrid"},"tags":["density functional theory"],"name":"DFT Hybrid HSE","path":"/pb/qm/dft/ksdft/hybrid?functional=hse06"},{"parameters":{"spinOrbitCoupling":true,"dispersionCorrection":"dft-d3","functional":"b3lyp"},"categories":{"tier1":"pb","tier2":"qm","tier3":"dft","type":"ksdft","subtype":"hybrid"},"tags":["density functional theory"],"name":"DFT Hybrid B3LYP-D3 (SOC)","path":"/pb/qm/dft/ksdft/hybrid?spinOrbitCoupling=true&dispersionCorrection=dft-d3&functional=b3lyp"},{"parameters":{"spinPolarization":"collinear","dispersionCorrection":"dft-d3","functional":"b3lyp"},"categories":{"tier1":"pb","tier2":"qm","tier3":"dft","type":"ksdft","subtype":"hybrid"},"tags":["density functional theory"],"name":"DFT Hybrid B3LYP-D3 (collinear)","path":"/pb/qm/dft/ksdft/hybrid?spinPolarization=collinear&dispersionCorrection=dft-d3&functional=b3lyp"},{"parameters":{"dispersionCorrection":"dft-d3","functional":"b3lyp"},"categories":{"tier1":"pb","tier2":"qm","tier3":"dft","type":"ksdft","subtype":"hybrid"},"tags":["density functional theory"],"name":"DFT Hybrid B3LYP-D3","path":"/pb/qm/dft/ksdft/hybrid?dispersionCorrection=dft-d3&functional=b3lyp"},{"parameters":{"spinOrbitCoupling":true,"functional":"b3lyp"},"categories":{"tier1":"pb","tier2":"qm","tier3":"dft","type":"ksdft","subtype":"hybrid"},"tags":["density functional theory"],"name":"DFT Hybrid B3LYP (SOC)","path":"/pb/qm/dft/ksdft/hybrid?spinOrbitCoupling=true&functional=b3lyp"},{"parameters":{"spinPolarization":"collinear","functional":"b3lyp"},"categories":{"tier1":"pb","tier2":"qm","tier3":"dft","type":"ksdft","subtype":"hybrid"},"tags":["density functional theory"],"name":"DFT Hybrid B3LYP (collinear)","path":"/pb/qm/dft/ksdft/hybrid?spinPolarization=collinear&functional=b3lyp"},{"parameters":{"functional":"b3lyp"},"categories":{"tier1":"pb","tier2":"qm","tier3":"dft","type":"ksdft","subtype":"hybrid"},"tags":["density functional theory"],"name":"DFT Hybrid B3LYP","path":"/pb/qm/dft/ksdft/hybrid?functional=b3lyp"},{"parameters":{"spinOrbitCoupling":true,"dispersionCorrection":"dft-d3","functional":"pz"},"categories":{"tier1":"pb","tier2":"qm","tier3":"dft","type":"ksdft","subtype":"lda"},"tags":["density functional theory"],"name":"DFT LDA PZ-D3 (SOC)","path":"/pb/qm/dft/ksdft/lda?spinOrbitCoupling=true&dispersionCorrection=dft-d3&functional=pz"},{"parameters":{"spinPolarization":"collinear","dispersionCorrection":"dft-d3","functional":"pz"},"categories":{"tier1":"pb","tier2":"qm","tier3":"dft","type":"ksdft","subtype":"lda"},"tags":["density functional theory"],"name":"DFT LDA PZ-D3 (collinear)","path":"/pb/qm/dft/ksdft/lda?spinPolarization=collinear&dispersionCorrection=dft-d3&functional=pz"},{"parameters":{"dispersionCorrection":"dft-d3","functional":"pz"},"categories":{"tier1":"pb","tier2":"qm","tier3":"dft","type":"ksdft","subtype":"lda"},"tags":["density functional theory"],"name":"DFT LDA PZ-D3","path":"/pb/qm/dft/ksdft/lda?dispersionCorrection=dft-d3&functional=pz"},{"parameters":{"hubbardType":"u","spinOrbitCoupling":true,"functional":"pz"},"categories":{"tier1":"pb","tier2":"qm","tier3":"dft","type":"ksdft","subtype":"lda"},"tags":["density functional theory"],"name":"DFT LDA PZ+U (SOC)","path":"/pb/qm/dft/ksdft/lda?hubbardType=u&spinOrbitCoupling=true&functional=pz"},{"parameters":{"spinOrbitCoupling":true,"functional":"pz"},"categories":{"tier1":"pb","tier2":"qm","tier3":"dft","type":"ksdft","subtype":"lda"},"tags":["density functional theory"],"name":"DFT LDA PZ (SOC)","path":"/pb/qm/dft/ksdft/lda?spinOrbitCoupling=true&functional=pz"},{"parameters":{"spinPolarization":"collinear","hubbardType":"u","functional":"pz"},"categories":{"tier1":"pb","tier2":"qm","tier3":"dft","type":"ksdft","subtype":"lda"},"tags":["density functional theory"],"name":"DFT LDA PZ+U (collinear)","path":"/pb/qm/dft/ksdft/lda?spinPolarization=collinear&hubbardType=u&functional=pz"},{"parameters":{"hubbardType":"u","functional":"pz"},"categories":{"tier1":"pb","tier2":"qm","tier3":"dft","type":"ksdft","subtype":"lda"},"tags":["density functional theory"],"name":"DFT LDA PZ+U","path":"/pb/qm/dft/ksdft/lda?hubbardType=u&functional=pz"},{"parameters":{"spinPolarization":"collinear","functional":"pz"},"categories":{"tier1":"pb","tier2":"qm","tier3":"dft","type":"ksdft","subtype":"lda"},"tags":["density functional theory"],"name":"DFT LDA PZ (collinear)","path":"/pb/qm/dft/ksdft/lda?spinPolarization=collinear&functional=pz"},{"parameters":{"functional":"pz"},"categories":{"tier1":"pb","tier2":"qm","tier3":"dft","type":"ksdft","subtype":"lda"},"tags":["density functional theory"],"name":"DFT LDA PZ","path":"/pb/qm/dft/ksdft/lda?functional=pz"},{"categories":{"tier1":"st","tier2":"det","tier3":"ml","type":"re"},"parameters":{},"name":"Regression","path":"/st/det/ml/re/none"}]}
@@ -1,2 +0,0 @@
1
- /* eslint-disable */
2
- module.exports = {"pb":{"qm":{"abin":{"gw":[{"path":"/qm/wf/none/pw/none"},{"regex":"\\/qm\\/wf\\/none\\/psp\\/.*"},{"regex":"\\/qm\\/wf\\/none\\/smearing\\/.*"},{"regex":"\\/qm\\/wf\\/none\\/tetrahedron\\/.*"},{"path":"/opt/diff/ordern/cg/none"},{"path":"/linalg/diag/none/davidson/none"}]},"dft":{"ksdft":{"lda":[{"path":"/qm/wf/none/pw/none"},{"regex":"\\/qm\\/wf\\/none\\/psp\\/.*"},{"regex":"\\/qm\\/wf\\/none\\/smearing\\/.*"},{"regex":"\\/qm\\/wf\\/none\\/tetrahedron\\/.*"},{"path":"/opt/diff/ordern/cg/none"},{"path":"/linalg/diag/none/davidson/none"}],"gga":[{"path":"/qm/wf/none/pw/none"},{"regex":"\\/qm\\/wf\\/none\\/psp\\/.*"},{"regex":"\\/qm\\/wf\\/none\\/smearing\\/.*"},{"regex":"\\/qm\\/wf\\/none\\/tetrahedron\\/.*"},{"path":"/opt/diff/ordern/cg/none"},{"path":"/linalg/diag/none/davidson/none"}],"hybrid":[{"path":"/qm/wf/none/pw/none"},{"regex":"\\/qm\\/wf\\/none\\/psp\\/.*"},{"regex":"\\/qm\\/wf\\/none\\/smearing\\/.*"},{"regex":"\\/qm\\/wf\\/none\\/tetrahedron\\/.*"},{"path":"/opt/diff/ordern/cg/none"},{"path":"/linalg/diag/none/davidson/none"},{"regex":"\\/qm\\/wf\\/none\\/ao\\/pople.*"}]}}}},"st":{"det":{"ml":{"re":[{"path":"/none/none/none/linear/least_squares"},{"path":"/none/none/none/linear/ridge"},{"path":"/none/none/none/kernel_ridge/least_squares"}]}}}}
@@ -1,38 +0,0 @@
1
- import lodash from "lodash";
2
-
3
- import { MODEL_NAMES, MODEL_TREE } from "./tree";
4
-
5
- export const PseudopotentialMethodConfig = {
6
- type: "pseudopotential",
7
- subtype: "us",
8
- };
9
-
10
- export const LocalOrbitalMethodConfig = {
11
- type: "localorbital",
12
- subtype: "pople",
13
- };
14
-
15
- export const UnknownMethodConfig = {
16
- type: "unknown",
17
- subtype: "unknown",
18
- };
19
-
20
- export function allowedTypes(model) {
21
- return lodash
22
- .keys(lodash.get(MODEL_TREE, `${model.type}.${model.subtype}.methods`, []))
23
- .map((x) => {
24
- return {
25
- slug: x,
26
- name: lodash.get(MODEL_NAMES, x, x),
27
- };
28
- });
29
- }
30
-
31
- export function allowedSubtypes(model, type) {
32
- return lodash.get(MODEL_TREE, `${model.type}.${model.subtype}.methods.${type}`, []).map((x) => {
33
- return {
34
- slug: x,
35
- name: lodash.get(MODEL_NAMES, x, x),
36
- };
37
- });
38
- }
@@ -1,9 +0,0 @@
1
- export const DFTModelConfig = {
2
- type: "dft",
3
- subtype: "gga",
4
- };
5
-
6
- export const UnknownModelConfig = {
7
- type: "unknown",
8
- subtype: "unknown",
9
- };
package/src/method.js DELETED
@@ -1,77 +0,0 @@
1
- import { InMemoryEntity } from "@mat3ra/code/dist/js/entity";
2
- import { deepClone } from "@mat3ra/code/dist/js/utils";
3
- import lodash from "lodash";
4
-
5
- import { PseudopotentialMethodConfig } from "./default_methods";
6
-
7
- export class Method extends InMemoryEntity {
8
- constructor(config) {
9
- const data = config.data || {};
10
- super({ ...config, data });
11
- }
12
-
13
- cloneWithoutData() {
14
- const clone = this.clone();
15
- clone.setData({});
16
- return clone;
17
- }
18
-
19
- get type() {
20
- return this.prop("type");
21
- }
22
-
23
- get subtype() {
24
- return this.prop("subtype");
25
- }
26
-
27
- setSubtype(subtype) {
28
- // TODO: add proper handling of method data subscriptions on type/subtype change
29
- this.setProp("subtype", subtype);
30
- }
31
-
32
- static get defaultConfig() {
33
- return PseudopotentialMethodConfig;
34
- }
35
-
36
- get precision() {
37
- return this.prop("precision");
38
- }
39
-
40
- get data() {
41
- return this.prop("data");
42
- }
43
-
44
- get searchText() {
45
- return this.prop("data.searchText", "");
46
- }
47
-
48
- // used to narrow down the list of methodData items available for selection
49
- // utilizing "data" field as a "blackbox" container for searchText
50
- setSearchText(searchText) {
51
- this.setData({ ...this.prop("data"), searchText });
52
- }
53
-
54
- setData(data = {}) {
55
- this.setProp("data", data);
56
- }
57
-
58
- get omitInHashCalculation() {
59
- const data = this.prop("data");
60
- return !data.searchText && lodash.isEmpty(lodash.omit(data, "searchText"));
61
- }
62
-
63
- // data without client-only fields
64
- cleanData(fieldsToExclude = []) {
65
- const filteredData = { ...this.prop("data") };
66
- fieldsToExclude.forEach((f) => {
67
- delete filteredData[f];
68
- });
69
- return filteredData;
70
- }
71
-
72
- // override in child class if needed
73
- toJSONWithCleanData(fieldsToExclude = []) {
74
- const json = { ...this._json, data: this.cleanData(fieldsToExclude) };
75
- return deepClone(json);
76
- }
77
- }
@@ -1,99 +0,0 @@
1
- import { safeMakeArray } from "@mat3ra/code/dist/js/utils";
2
- import _ from "underscore";
3
-
4
- import { Method } from "../method";
5
-
6
- export class PseudopotentialMethod extends Method {
7
- constructor(config) {
8
- super(config);
9
- this.PseudopotentialCls = null;
10
- }
11
-
12
- // "Unique" or "selected" pseudopotentials - one per element
13
- get pseudo() {
14
- return this.prop("data.pseudo", []);
15
- }
16
-
17
- // "All" or "non-unique" pseudopotentials available for a choice
18
- get allPseudo() {
19
- return this.prop("data.allPseudo", []);
20
- }
21
-
22
- get pseudopotentials() {
23
- return this.pseudo.map((x) => new this.PseudopotentialCls(x));
24
- }
25
-
26
- get allPseudopotentials() {
27
- return this.allPseudo.map((x) => new this.PseudopotentialCls(x));
28
- }
29
-
30
- static extractExchangeCorrelationFromSubworkflow(subworkflow) {
31
- const { model } = subworkflow;
32
- const approximation = model.subtype;
33
- const functional = model.functional ? model.functional.slug || model.functional : "";
34
- return {
35
- approximation,
36
- functional,
37
- };
38
- }
39
-
40
- hasPseudopotentialFor(element) {
41
- return Boolean(this.pseudopotentials.find((x) => x.element === element));
42
- }
43
-
44
- /**
45
- * @summary Sets one pseudopotential per element. Subsequent applications will override previous.
46
- * @param pseudo {Pseudopotential}
47
- */
48
- setPseudopotentialPerElement(pseudo) {
49
- if (!pseudo) {
50
- this.setPseudopotentials([]);
51
- return;
52
- }
53
- const arr = this.pseudopotentials.filter((x) => x.element !== pseudo.element);
54
- arr.push(pseudo);
55
- this.setPseudopotentials(arr);
56
- }
57
-
58
- // add new pseudopotentials to the list of all pseudopotentials
59
- addToAllPseudos(pseudos) {
60
- // eslint-disable-next-line no-param-reassign
61
- pseudos = safeMakeArray(pseudos);
62
- const allPseudos = this.allPseudopotentials;
63
- allPseudos.push(...pseudos);
64
- this.setAllPseudopotentials(allPseudos);
65
- }
66
-
67
- /**
68
- * @param pseudopotentials {Pseudopotential[]}
69
- */
70
- setPseudopotentials(pseudopotentials) {
71
- // sort by alphabetical order to ensure elements order consistency in VASP POSCAR/POTCAR
72
- this.setData({
73
- ...this.data,
74
- pseudo: _.sortBy(pseudopotentials, "element").map((x) => x.toJSON()),
75
- });
76
- }
77
-
78
- /**
79
- * @param pseudopotentials {Pseudopotential[]}
80
- */
81
- setAllPseudopotentials(pseudopotentials) {
82
- // sort by alphabetical order to ensure elements order consistency in VASP POSCAR/POTCAR
83
- this.setData({
84
- ...this.data,
85
- allPseudo: _.sortBy(pseudopotentials, "element").map((x) => x.toJSON()),
86
- });
87
- }
88
-
89
- // override default `toJSONWithCleanData` method to avoid saving `allPseudo` inside the workflow
90
- // TODO: revise after implementing Pseudopotential Sets
91
- toJSONWithCleanData(exclude = []) {
92
- return super.toJSONWithCleanData(
93
- exclude.concat([
94
- "allPseudo",
95
- // 'pseudo' - not cleaning the field to save it in `Job.workflow`
96
- ]),
97
- );
98
- }
99
- }