@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.
- package/package.json +32 -17
- package/src/js/default_methods.ts +36 -0
- package/src/js/default_models.ts +11 -0
- package/src/js/generated/MethodSchemaMixin.ts +26 -0
- package/src/js/generated/ModelSchemaMixin.ts +23 -0
- package/src/{index.js → js/index.ts} +5 -11
- package/src/js/method.ts +67 -0
- package/src/js/methodConversionHandler.ts +142 -0
- package/src/{methods/factory.js → js/methods/factory.ts} +3 -1
- package/src/js/methods/pseudopotential.ts +86 -0
- package/src/js/model.ts +168 -0
- package/src/js/modelConversionHandler.ts +102 -0
- package/src/js/models/dft.ts +110 -0
- package/src/{models/factory.js → js/models/factory.ts} +9 -4
- package/src/{tree.js → js/tree.ts} +26 -33
- package/src/js/types/index.ts +37 -0
- package/tsconfig.json +3 -0
- package/.babelrc +0 -17
- package/dist/data/method_list.js +0 -1132
- package/dist/data/model_list.js +0 -786
- package/dist/data/model_method_map.js +0 -82
- package/dist/default_methods.js +0 -39
- package/dist/default_models.js +0 -14
- package/dist/index.js +0 -62
- package/dist/method.js +0 -84
- package/dist/methods/factory.js +0 -24
- package/dist/methods/pseudopotential.js +0 -100
- package/dist/model.js +0 -123
- package/dist/models/dft.js +0 -102
- package/dist/models/factory.js +0 -36
- package/dist/tree.js +0 -165
- package/src/data/method_list.js +0 -2
- package/src/data/model_list.js +0 -2
- package/src/data/model_method_map.js +0 -2
- package/src/default_methods.js +0 -38
- package/src/default_models.js +0 -9
- package/src/method.js +0 -77
- package/src/methods/pseudopotential.js +0 -99
- package/src/model.js +0 -127
- 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
|
-
}
|
package/src/data/method_list.js
DELETED
|
@@ -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"}]}
|
package/src/data/model_list.js
DELETED
|
@@ -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"}]}}}}
|
package/src/default_methods.js
DELETED
|
@@ -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
|
-
}
|
package/src/default_models.js
DELETED
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
|
-
}
|