@mat3ra/wode 2025.10.1-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 (252) hide show
  1. package/.babelrc +17 -0
  2. package/LICENSE.md +15 -0
  3. package/README.md +164 -0
  4. package/assets/subworkflows/deepmd/deepmd.yml +31 -0
  5. package/assets/subworkflows/deepmd/espresso_cp_md.yml +16 -0
  6. package/assets/subworkflows/espresso/average_electrostatic_potential_find_minima.yml +27 -0
  7. package/assets/subworkflows/espresso/average_electrostatic_potential_via_band_structure.yml +67 -0
  8. package/assets/subworkflows/espresso/band_gap.yml +21 -0
  9. package/assets/subworkflows/espresso/band_gap_hse_dos.yml +30 -0
  10. package/assets/subworkflows/espresso/band_structure.yml +26 -0
  11. package/assets/subworkflows/espresso/band_structure_dos.yml +34 -0
  12. package/assets/subworkflows/espresso/band_structure_hse.yml +30 -0
  13. package/assets/subworkflows/espresso/band_structure_magn.yml +31 -0
  14. package/assets/subworkflows/espresso/band_structure_soc.yml +30 -0
  15. package/assets/subworkflows/espresso/dielectric_tensor.yml +35 -0
  16. package/assets/subworkflows/espresso/dos.yml +24 -0
  17. package/assets/subworkflows/espresso/electronic_density_mesh.yml +19 -0
  18. package/assets/subworkflows/espresso/esm.yml +14 -0
  19. package/assets/subworkflows/espresso/esm_relax.yml +14 -0
  20. package/assets/subworkflows/espresso/espresso_extract_kpoints.yml +16 -0
  21. package/assets/subworkflows/espresso/espresso_xml_get_qpt_irr.yml +12 -0
  22. package/assets/subworkflows/espresso/fixed_cell_relaxation.yml +16 -0
  23. package/assets/subworkflows/espresso/gw_band_structure_band_gap_full_frequency.yml +22 -0
  24. package/assets/subworkflows/espresso/gw_band_structure_band_gap_plasmon_pole.yml +22 -0
  25. package/assets/subworkflows/espresso/hubbard_u_hp.yml +21 -0
  26. package/assets/subworkflows/espresso/kpoint_convergence.yml +86 -0
  27. package/assets/subworkflows/espresso/neb.yml +16 -0
  28. package/assets/subworkflows/espresso/ph_init_qpoints.yml +14 -0
  29. package/assets/subworkflows/espresso/ph_single_irr_qpt.yml +14 -0
  30. package/assets/subworkflows/espresso/phonon_dispersions.yml +29 -0
  31. package/assets/subworkflows/espresso/phonon_dos.yml +29 -0
  32. package/assets/subworkflows/espresso/phonon_dos_dispersion.yml +34 -0
  33. package/assets/subworkflows/espresso/phonon_reduce.yml +29 -0
  34. package/assets/subworkflows/espresso/post_processor.yml +14 -0
  35. package/assets/subworkflows/espresso/pre_processor.yml +14 -0
  36. package/assets/subworkflows/espresso/pw_scf.yml +16 -0
  37. package/assets/subworkflows/espresso/recalculate_bands.yml +19 -0
  38. package/assets/subworkflows/espresso/surface_energy.yml +16 -0
  39. package/assets/subworkflows/espresso/total_energy.yml +16 -0
  40. package/assets/subworkflows/espresso/valence_band_offset_calc_from_previous_esp_vbm.yml +35 -0
  41. package/assets/subworkflows/espresso/variable_cell_relaxation.yml +18 -0
  42. package/assets/subworkflows/espresso/zero_point_energy.yml +19 -0
  43. package/assets/subworkflows/jupyterLab/jupyter_notebook.yml +17 -0
  44. package/assets/subworkflows/nwchem/total_energy.yml +16 -0
  45. package/assets/subworkflows/python/ml/classification_tail.yml +56 -0
  46. package/assets/subworkflows/python/ml/clustering_tail.yml +62 -0
  47. package/assets/subworkflows/python/ml/regression_tail.yml +56 -0
  48. package/assets/subworkflows/python/ml/train_head.yml +61 -0
  49. package/assets/subworkflows/python/python_script.yml +14 -0
  50. package/assets/subworkflows/shell/batch_espresso_pwscf.yml +14 -0
  51. package/assets/subworkflows/shell/hello_world.yml +14 -0
  52. package/assets/subworkflows/vasp/band_gap.yml +21 -0
  53. package/assets/subworkflows/vasp/band_structure.yml +21 -0
  54. package/assets/subworkflows/vasp/band_structure_dos.yml +23 -0
  55. package/assets/subworkflows/vasp/dos.yml +18 -0
  56. package/assets/subworkflows/vasp/fixed_cell_relaxation.yml +16 -0
  57. package/assets/subworkflows/vasp/initial_final_total_energies.yml +25 -0
  58. package/assets/subworkflows/vasp/kpoint_convergence.yml +89 -0
  59. package/assets/subworkflows/vasp/neb_subworkflow.yml +16 -0
  60. package/assets/subworkflows/vasp/prepare_images.yml +16 -0
  61. package/assets/subworkflows/vasp/recalculate_bands.yml +16 -0
  62. package/assets/subworkflows/vasp/surface_energy.yml +18 -0
  63. package/assets/subworkflows/vasp/total_energy.yml +16 -0
  64. package/assets/subworkflows/vasp/variable_cell_relaxation.yml +18 -0
  65. package/assets/subworkflows/vasp/zero_point_energy.yml +16 -0
  66. package/assets/workflows/deepmd/deepmd_md.yml +6 -0
  67. package/assets/workflows/espresso/band_gap.yml +4 -0
  68. package/assets/workflows/espresso/band_gap_dos_hse.yml +4 -0
  69. package/assets/workflows/espresso/band_structure.yml +4 -0
  70. package/assets/workflows/espresso/band_structure_dos.yml +4 -0
  71. package/assets/workflows/espresso/band_structure_hse.yml +14 -0
  72. package/assets/workflows/espresso/band_structure_magn.yml +7 -0
  73. package/assets/workflows/espresso/band_structure_soc.yml +7 -0
  74. package/assets/workflows/espresso/dielectric_tensor.yml +4 -0
  75. package/assets/workflows/espresso/dos.yml +4 -0
  76. package/assets/workflows/espresso/electronic_density_mesh.yml +4 -0
  77. package/assets/workflows/espresso/esm.yml +4 -0
  78. package/assets/workflows/espresso/esm_relax.yml +4 -0
  79. package/assets/workflows/espresso/fixed_cell_relaxation.yml +4 -0
  80. package/assets/workflows/espresso/gw_band_structure_band_gap_full_frequency.yml +4 -0
  81. package/assets/workflows/espresso/gw_band_structure_band_gap_plasmon_pole.yml +4 -0
  82. package/assets/workflows/espresso/hubbard_u_hp.yml +7 -0
  83. package/assets/workflows/espresso/kpoint_convergence.yml +4 -0
  84. package/assets/workflows/espresso/neb.yml +4 -0
  85. package/assets/workflows/espresso/phonon_dispersions.yml +4 -0
  86. package/assets/workflows/espresso/phonon_dos.yml +4 -0
  87. package/assets/workflows/espresso/phonon_dos_dispersion.yml +4 -0
  88. package/assets/workflows/espresso/phonon_map.yml +28 -0
  89. package/assets/workflows/espresso/recalculate_bands.yml +4 -0
  90. package/assets/workflows/espresso/surface_energy.yml +4 -0
  91. package/assets/workflows/espresso/total_energy.yml +4 -0
  92. package/assets/workflows/espresso/valence_band_offset.yml +171 -0
  93. package/assets/workflows/espresso/variable_cell_relaxation.yml +4 -0
  94. package/assets/workflows/espresso/zero_point_energy.yml +4 -0
  95. package/assets/workflows/jupyterLab/jupyter_notebook.yml +4 -0
  96. package/assets/workflows/nwchem/total_energy.yml +4 -0
  97. package/assets/workflows/python/ml/classification_workflow.yml +9 -0
  98. package/assets/workflows/python/ml/clustering_workflow.yml +9 -0
  99. package/assets/workflows/python/ml/regression_workflow.yml +9 -0
  100. package/assets/workflows/python/python_script.yml +4 -0
  101. package/assets/workflows/shell/batch_espresso_pwscf.yml +4 -0
  102. package/assets/workflows/shell/hello_world.yml +4 -0
  103. package/assets/workflows/vasp/band_gap.yml +4 -0
  104. package/assets/workflows/vasp/band_structure.yml +4 -0
  105. package/assets/workflows/vasp/band_structure_dos.yml +4 -0
  106. package/assets/workflows/vasp/dos.yml +4 -0
  107. package/assets/workflows/vasp/fixed_cell_relaxation.yml +4 -0
  108. package/assets/workflows/vasp/kpoint_convergence.yml +4 -0
  109. package/assets/workflows/vasp/neb.yml +8 -0
  110. package/assets/workflows/vasp/recalculate_bands.yml +4 -0
  111. package/assets/workflows/vasp/surface_energy.yml +4 -0
  112. package/assets/workflows/vasp/total_energy.yml +4 -0
  113. package/assets/workflows/vasp/variable_cell_relaxation.yml +4 -0
  114. package/assets/workflows/vasp/zero_point_energy.yml +4 -0
  115. package/build_workflows.js +65 -0
  116. package/dist/context/context.js +49 -0
  117. package/dist/context/mixins/ApplicationContextMixin.js +19 -0
  118. package/dist/context/mixins/JobContextMixin.js +39 -0
  119. package/dist/context/mixins/MaterialContextMixin.js +40 -0
  120. package/dist/context/mixins/MaterialsContextMixin.js +19 -0
  121. package/dist/context/mixins/MaterialsSetContextMixin.js +25 -0
  122. package/dist/context/mixins/MethodDataContextMixin.js +48 -0
  123. package/dist/context/mixins/WorkflowContextMixin.js +28 -0
  124. package/dist/context/providers/BoundaryConditionsFormDataProvider.js +86 -0
  125. package/dist/context/providers/CollinearMagnetizationContextProvider.js +113 -0
  126. package/dist/context/providers/HubbardContextProviderLegacy.js +81 -0
  127. package/dist/context/providers/HubbardJContextProvider.js +74 -0
  128. package/dist/context/providers/HubbardUContextProvider.js +77 -0
  129. package/dist/context/providers/HubbardVContextProvider.js +104 -0
  130. package/dist/context/providers/IonDynamicsContextProvider.js +62 -0
  131. package/dist/context/providers/MLSettingsContextProvider.js +52 -0
  132. package/dist/context/providers/MLTrainTestSplitContextProvider.js +48 -0
  133. package/dist/context/providers/NEBFormDataProvider.js +38 -0
  134. package/dist/context/providers/NonCollinearMagnetizationContextProvider.js +253 -0
  135. package/dist/context/providers/PlanewaveCutoffsContextProvider.js +67 -0
  136. package/dist/context/providers/PointsGridFormDataProvider.js +272 -0
  137. package/dist/context/providers/PointsPathFormDataProvider.js +155 -0
  138. package/dist/context/providers/by_application/ExecutableContextProvider.js +17 -0
  139. package/dist/context/providers/by_application/espresso/QENEBContextProvider.js +60 -0
  140. package/dist/context/providers/by_application/espresso/QEPWXContextProvider.js +149 -0
  141. package/dist/context/providers/by_application/nwchem/NWChemTotalEnergyContextProvider.js +84 -0
  142. package/dist/context/providers/by_application/vasp/VASPContextProvider.js +64 -0
  143. package/dist/context/providers/by_application/vasp/VASPNEBContextProvider.js +56 -0
  144. package/dist/context/providers/settings.js +37 -0
  145. package/dist/context/providers.js +199 -0
  146. package/dist/enums.js +65 -0
  147. package/dist/index.js +64 -0
  148. package/dist/patch.js +19 -0
  149. package/dist/subworkflows/convergence/factory.js +35 -0
  150. package/dist/subworkflows/convergence/non_uniform_kgrid.js +31 -0
  151. package/dist/subworkflows/convergence/parameter.js +70 -0
  152. package/dist/subworkflows/convergence/uniform_kgrid.js +26 -0
  153. package/dist/subworkflows/convergence.js +189 -0
  154. package/dist/subworkflows/create.js +285 -0
  155. package/dist/subworkflows/dynamic/espresso/getQpointIrrep.js +34 -0
  156. package/dist/subworkflows/dynamic/index.js +19 -0
  157. package/dist/subworkflows/dynamic/surfaceEnergy.js +67 -0
  158. package/dist/subworkflows/index.js +19 -0
  159. package/dist/subworkflows/subworkflow.js +279 -0
  160. package/dist/units/assertion.js +37 -0
  161. package/dist/units/assignment.js +42 -0
  162. package/dist/units/base.js +91 -0
  163. package/dist/units/builders/AssertionUnitConfigBuilder.js +34 -0
  164. package/dist/units/builders/AssignmentUnitConfigBuilder.js +41 -0
  165. package/dist/units/builders/ExecutionUnitConfigBuilder.js +67 -0
  166. package/dist/units/builders/IOUnitConfigBuilder.js +54 -0
  167. package/dist/units/builders/UnitConfigBuilder.js +79 -0
  168. package/dist/units/builders/index.js +18 -0
  169. package/dist/units/condition.js +52 -0
  170. package/dist/units/execution.js +222 -0
  171. package/dist/units/factory.js +53 -0
  172. package/dist/units/index.js +82 -0
  173. package/dist/units/io.js +148 -0
  174. package/dist/units/map.js +38 -0
  175. package/dist/units/processing.js +41 -0
  176. package/dist/units/reduce.js +24 -0
  177. package/dist/units/subworkflow.js +23 -0
  178. package/dist/utils.js +92 -0
  179. package/dist/workflows/create.js +312 -0
  180. package/dist/workflows/default.js +41 -0
  181. package/dist/workflows/index.js +108 -0
  182. package/dist/workflows/relaxation.js +37 -0
  183. package/dist/workflows/workflow.js +303 -0
  184. package/package.json +94 -0
  185. package/src/context/context.js +47 -0
  186. package/src/context/mixins/ApplicationContextMixin.js +19 -0
  187. package/src/context/mixins/JobContextMixin.js +36 -0
  188. package/src/context/mixins/MaterialContextMixin.js +41 -0
  189. package/src/context/mixins/MaterialsContextMixin.js +18 -0
  190. package/src/context/mixins/MaterialsSetContextMixin.js +24 -0
  191. package/src/context/mixins/MethodDataContextMixin.js +48 -0
  192. package/src/context/mixins/WorkflowContextMixin.js +25 -0
  193. package/src/context/providers/BoundaryConditionsFormDataProvider.js +80 -0
  194. package/src/context/providers/CollinearMagnetizationContextProvider.js +117 -0
  195. package/src/context/providers/HubbardContextProviderLegacy.js +75 -0
  196. package/src/context/providers/HubbardJContextProvider.js +73 -0
  197. package/src/context/providers/HubbardUContextProvider.js +100 -0
  198. package/src/context/providers/HubbardVContextProvider.js +111 -0
  199. package/src/context/providers/IonDynamicsContextProvider.js +56 -0
  200. package/src/context/providers/MLSettingsContextProvider.js +48 -0
  201. package/src/context/providers/MLTrainTestSplitContextProvider.js +45 -0
  202. package/src/context/providers/NEBFormDataProvider.js +32 -0
  203. package/src/context/providers/NonCollinearMagnetizationContextProvider.js +269 -0
  204. package/src/context/providers/PlanewaveCutoffsContextProvider.js +68 -0
  205. package/src/context/providers/PointsGridFormDataProvider.js +285 -0
  206. package/src/context/providers/PointsPathFormDataProvider.js +165 -0
  207. package/src/context/providers/by_application/ExecutableContextProvider.js +10 -0
  208. package/src/context/providers/by_application/espresso/QENEBContextProvider.js +56 -0
  209. package/src/context/providers/by_application/espresso/QEPWXContextProvider.js +166 -0
  210. package/src/context/providers/by_application/nwchem/NWChemTotalEnergyContextProvider.js +86 -0
  211. package/src/context/providers/by_application/vasp/VASPContextProvider.js +56 -0
  212. package/src/context/providers/by_application/vasp/VASPNEBContextProvider.js +46 -0
  213. package/src/context/providers/settings.js +38 -0
  214. package/src/context/providers.js +140 -0
  215. package/src/enums.js +65 -0
  216. package/src/index.js +17 -0
  217. package/src/patch.js +12 -0
  218. package/src/subworkflows/convergence/factory.js +14 -0
  219. package/src/subworkflows/convergence/non_uniform_kgrid.js +28 -0
  220. package/src/subworkflows/convergence/parameter.js +58 -0
  221. package/src/subworkflows/convergence/uniform_kgrid.js +22 -0
  222. package/src/subworkflows/convergence.js +196 -0
  223. package/src/subworkflows/create.js +201 -0
  224. package/src/subworkflows/dynamic/espresso/getQpointIrrep.js +35 -0
  225. package/src/subworkflows/dynamic/index.js +8 -0
  226. package/src/subworkflows/dynamic/surfaceEnergy.js +124 -0
  227. package/src/subworkflows/index.js +2 -0
  228. package/src/subworkflows/subworkflow.js +329 -0
  229. package/src/units/assertion.js +29 -0
  230. package/src/units/assignment.js +34 -0
  231. package/src/units/base.js +97 -0
  232. package/src/units/builders/AssertionUnitConfigBuilder.js +28 -0
  233. package/src/units/builders/AssignmentUnitConfigBuilder.js +36 -0
  234. package/src/units/builders/ExecutionUnitConfigBuilder.js +59 -0
  235. package/src/units/builders/IOUnitConfigBuilder.js +53 -0
  236. package/src/units/builders/UnitConfigBuilder.js +86 -0
  237. package/src/units/builders/index.js +15 -0
  238. package/src/units/condition.js +47 -0
  239. package/src/units/execution.js +263 -0
  240. package/src/units/factory.js +53 -0
  241. package/src/units/index.js +25 -0
  242. package/src/units/io.js +163 -0
  243. package/src/units/map.js +33 -0
  244. package/src/units/processing.js +39 -0
  245. package/src/units/reduce.js +17 -0
  246. package/src/units/subworkflow.js +15 -0
  247. package/src/utils.js +73 -0
  248. package/src/workflows/create.js +222 -0
  249. package/src/workflows/default.js +39 -0
  250. package/src/workflows/index.js +99 -0
  251. package/src/workflows/relaxation.js +41 -0
  252. package/src/workflows/workflow.js +351 -0
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.methodDataContextMixin = methodDataContextMixin;
7
+ var _cryptoJs = _interopRequireDefault(require("crypto-js"));
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
+ function methodDataContextMixin(item) {
10
+ const properties = {
11
+ _methodData: undefined,
12
+ isEdited: false,
13
+ methodDataHash: undefined,
14
+ extraData: undefined,
15
+ initMethodDataContextMixin() {
16
+ this._methodData = this.config.context && this.config.context.methodData || {};
17
+ this.isEdited = Boolean(this.config.isEdited);
18
+ },
19
+ /* @summary Replace the logic in constructor with this in order to enable passing `methodDataHash` between
20
+ * subsequent initializations of the derived class. Not used at present and kept for the record.
21
+ */
22
+ _initMethodDataHash() {
23
+ this.methodDataHash = _cryptoJs.default.MD5(JSON.stringify(this.methodData)).toString();
24
+ this.extraData = {
25
+ methodDataHash: this.methodDataHash
26
+ };
27
+ if (!this._methodData) {
28
+ this._methodData = {};
29
+ this.isEdited = false;
30
+ // Commented out to reduce effect on performance. Uncomment for debugging purposes.
31
+ // TODO: remove on next refactoring or convert to log
32
+ // console.warn("MethodDataContextMixin: methodData is undefined or null");
33
+ } else if (this.isMethodDataUpdated) {
34
+ this.isEdited = false;
35
+ } else {
36
+ // eslint-disable-next-line no-undef
37
+ this.isEdited = config.isEdited;
38
+ }
39
+ },
40
+ get methodData() {
41
+ return this._methodData;
42
+ },
43
+ get isMethodDataUpdated() {
44
+ return Boolean(this.extraData && this.extraData.methodDataHash !== this.methodDataHash);
45
+ }
46
+ };
47
+ Object.defineProperties(item, Object.getOwnPropertyDescriptors(properties));
48
+ }
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.workflowContextMixin = workflowContextMixin;
7
+ const defaultWorkflow = {
8
+ subworkflows: [],
9
+ units: [],
10
+ hasRelaxation: false
11
+ };
12
+ function workflowContextMixin(item) {
13
+ const properties = {
14
+ isEdited: false,
15
+ _workflow: defaultWorkflow,
16
+ get workflow() {
17
+ return this._workflow;
18
+ },
19
+ initWorkflowContextMixin() {
20
+ const {
21
+ config
22
+ } = this; // as WorkflowConfig;
23
+ this._workflow = config.context && config.context.workflow || defaultWorkflow;
24
+ this.isEdited = false; // we always get the `defaultData` (recalculated from scratch, not persistent)
25
+ }
26
+ };
27
+ Object.defineProperties(item, Object.getOwnPropertyDescriptors(properties));
28
+ }
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.BoundaryConditionsFormDataProvider = void 0;
7
+ var _JSONSchemaFormDataProvider = _interopRequireDefault(require("@exabyte-io/ade.js/dist/js/context/JSONSchemaFormDataProvider"));
8
+ var _made = require("@mat3ra/made");
9
+ var _utils = require("@mat3ra/utils");
10
+ var _MaterialContextMixin = require("../mixins/MaterialContextMixin");
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ class BoundaryConditionsFormDataProvider extends _JSONSchemaFormDataProvider.default {
13
+ constructor(config) {
14
+ super(config);
15
+ this.initMaterialContextMixin();
16
+ }
17
+ get boundaryConditions() {
18
+ return this.material.metadata.boundaryConditions || {};
19
+ }
20
+
21
+ // eslint-disable-next-line class-methods-use-this
22
+ get defaultData() {
23
+ return {
24
+ type: this.boundaryConditions.type || "pbc",
25
+ offset: this.boundaryConditions.offset || 0,
26
+ electricField: 0,
27
+ targetFermiEnergy: 0
28
+ };
29
+ }
30
+
31
+ // eslint-disable-next-line class-methods-use-this
32
+ get uiSchema() {
33
+ return {
34
+ type: {
35
+ "ui:disabled": true
36
+ },
37
+ offset: {
38
+ "ui:disabled": true
39
+ },
40
+ electricField: {},
41
+ targetFermiEnergy: {}
42
+ };
43
+ }
44
+
45
+ // eslint-disable-next-line class-methods-use-this
46
+ get humanName() {
47
+ return "Boundary Conditions";
48
+ }
49
+ yieldDataForRendering() {
50
+ const data = _utils.Utils.clone.deepClone(this.yieldData());
51
+ data.boundaryConditions.offset *= _made.Made.coefficients.ANGSTROM_TO_BOHR;
52
+ data.boundaryConditions.targetFermiEnergy *= _made.Made.coefficients.EV_TO_RY;
53
+ data.boundaryConditions.electricField *= _made.Made.coefficients.EV_A_TO_RY_BOHR;
54
+ return data;
55
+ }
56
+ get jsonSchema() {
57
+ return {
58
+ $schema: "http://json-schema.org/draft-07/schema#",
59
+ type: "object",
60
+ properties: {
61
+ type: {
62
+ type: "string",
63
+ title: "Type",
64
+ default: this.defaultData.type
65
+ },
66
+ offset: {
67
+ type: "number",
68
+ title: "Offset (A)",
69
+ default: this.defaultData.offset
70
+ },
71
+ electricField: {
72
+ type: "number",
73
+ title: "Electric Field (eV/A)",
74
+ default: this.defaultData.electricField
75
+ },
76
+ targetFermiEnergy: {
77
+ type: "number",
78
+ title: "Target Fermi Energy (eV)",
79
+ default: this.defaultData.targetFermiEnergy
80
+ }
81
+ }
82
+ };
83
+ }
84
+ }
85
+ exports.BoundaryConditionsFormDataProvider = BoundaryConditionsFormDataProvider;
86
+ (0, _MaterialContextMixin.materialContextMixin)(BoundaryConditionsFormDataProvider.prototype);
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.CollinearMagnetizationContextProvider = void 0;
7
+ var _JSONSchemaFormDataProvider = _interopRequireDefault(require("@exabyte-io/ade.js/dist/js/context/JSONSchemaFormDataProvider"));
8
+ var _lodash = _interopRequireDefault(require("lodash"));
9
+ var _MaterialContextMixin = require("../mixins/MaterialContextMixin");
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
12
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
13
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
14
+ class CollinearMagnetizationContextProvider extends _JSONSchemaFormDataProvider.default {
15
+ constructor(config) {
16
+ super(config);
17
+ _defineProperty(this, "indexOfElement", element => {
18
+ return this.uniqueElementsWithLabels.indexOf(element) + 1;
19
+ });
20
+ _defineProperty(this, "transformData", data => {
21
+ const startingMagnetizationWithIndex = data.startingMagnetization.map(row => ({
22
+ ...row,
23
+ index: this.indexOfElement(row.atomicSpecies)
24
+ }));
25
+ return {
26
+ ...data,
27
+ startingMagnetization: startingMagnetizationWithIndex
28
+ };
29
+ });
30
+ this.initMaterialContextMixin();
31
+ this.firstElement = this.uniqueElementsWithLabels?.length > 0 ? this.uniqueElementsWithLabels[0] : "";
32
+ this.isTotalMagnetization = _lodash.default.get(this.data, "isTotalMagnetization", false);
33
+ }
34
+ get uniqueElementsWithLabels() {
35
+ const elementsWithLabelsArray = this.material?.Basis?.elementsWithLabelsArray || [];
36
+ return [...new Set(elementsWithLabelsArray)];
37
+ }
38
+ get defaultData() {
39
+ return {
40
+ startingMagnetization: [{
41
+ index: 1,
42
+ atomicSpecies: this.firstElement,
43
+ value: 0.0
44
+ }],
45
+ isTotalMagnetization: false,
46
+ totalMagnetization: 0.0
47
+ };
48
+ }
49
+ get uiSchemaStyled() {
50
+ return {
51
+ startingMagnetization: {
52
+ items: {
53
+ atomicSpecies: {
54
+ "ui:classNames": "col-xs-3"
55
+ },
56
+ value: {
57
+ "ui:classNames": "col-xs-6"
58
+ }
59
+ },
60
+ "ui:readonly": this.isTotalMagnetization
61
+ },
62
+ isTotalMagnetization: {},
63
+ totalMagnetization: {
64
+ "ui:classNames": "col-xs-6",
65
+ "ui:readonly": !this.isTotalMagnetization
66
+ }
67
+ };
68
+ }
69
+ get jsonSchema() {
70
+ return {
71
+ $schema: "http://json-schema.org/draft-07/schema#",
72
+ title: "",
73
+ description: "Set starting magnetization, can have values in the range [-1, +1].",
74
+ type: "object",
75
+ properties: {
76
+ startingMagnetization: {
77
+ type: "array",
78
+ maxItems: this.uniqueElementsWithLabels.length,
79
+ items: {
80
+ type: "object",
81
+ properties: {
82
+ atomicSpecies: {
83
+ type: "string",
84
+ title: "Atomic species",
85
+ enum: this.uniqueElementsWithLabels,
86
+ default: this.firstElement
87
+ },
88
+ value: {
89
+ type: "number",
90
+ title: "Starting magnetization",
91
+ default: 0.0,
92
+ minimum: -1.0,
93
+ maximum: 1.0
94
+ }
95
+ }
96
+ }
97
+ },
98
+ isTotalMagnetization: {
99
+ type: "boolean",
100
+ title: "Set total magnetization instead",
101
+ default: false
102
+ },
103
+ totalMagnetization: {
104
+ type: "number",
105
+ title: "Total magnetization",
106
+ default: 0.0
107
+ }
108
+ }
109
+ };
110
+ }
111
+ }
112
+ exports.CollinearMagnetizationContextProvider = CollinearMagnetizationContextProvider;
113
+ (0, _MaterialContextMixin.materialContextMixin)(CollinearMagnetizationContextProvider.prototype);
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.HubbardContextProviderLegacy = void 0;
7
+ var _HubbardUContextProvider = require("./HubbardUContextProvider");
8
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
9
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
10
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
11
+ const defaultHubbardConfig = {
12
+ hubbardUValue: 1.0
13
+ };
14
+ class HubbardContextProviderLegacy extends _HubbardUContextProvider.HubbardUContextProvider {
15
+ constructor(...args) {
16
+ super(...args);
17
+ _defineProperty(this, "speciesIndexFromSpecies", species => {
18
+ return this.uniqueElementsWithLabels?.length > 0 ? this.uniqueElementsWithLabels.indexOf(species) + 1 : null;
19
+ });
20
+ _defineProperty(this, "transformData", data => {
21
+ return data.map(row => ({
22
+ ...row,
23
+ atomicSpeciesIndex: this.speciesIndexFromSpecies(row.atomicSpecies)
24
+ }));
25
+ });
26
+ }
27
+ get defaultData() {
28
+ return [{
29
+ ...defaultHubbardConfig,
30
+ atomicSpecies: this.firstElement,
31
+ atomicSpeciesIndex: this.uniqueElementsWithLabels?.length > 0 ? 1 : null
32
+ }];
33
+ }
34
+ get uiSchemaStyled() {
35
+ return {
36
+ "ui:options": {
37
+ addable: true,
38
+ orderable: false,
39
+ removable: true
40
+ },
41
+ items: {
42
+ atomicSpecies: this.defaultFieldStyles,
43
+ atomicSpeciesIndex: {
44
+ ...this.defaultFieldStyles,
45
+ "ui:readonly": true
46
+ },
47
+ hubbardUValue: this.defaultFieldStyles
48
+ }
49
+ };
50
+ }
51
+ get jsonSchema() {
52
+ return {
53
+ $schema: "http://json-schema.org/draft-07/schema#",
54
+ title: "",
55
+ description: "Hubbard parameters for DFT+U calculation.",
56
+ type: "array",
57
+ uniqueItems: true,
58
+ minItems: 1,
59
+ items: {
60
+ type: "object",
61
+ properties: {
62
+ atomicSpecies: {
63
+ type: "string",
64
+ title: "Atomic species",
65
+ enum: this.uniqueElementsWithLabels
66
+ },
67
+ atomicSpeciesIndex: {
68
+ type: "integer",
69
+ title: "Species index"
70
+ },
71
+ hubbardUValue: {
72
+ type: "number",
73
+ title: "Hubbard U (eV)",
74
+ default: defaultHubbardConfig.hubbardUValue
75
+ }
76
+ }
77
+ }
78
+ };
79
+ }
80
+ }
81
+ exports.HubbardContextProviderLegacy = HubbardContextProviderLegacy;
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.HubbardJContextProvider = void 0;
7
+ var _HubbardUContextProvider = require("./HubbardUContextProvider");
8
+ const defaultHubbardConfig = {
9
+ paramType: "U",
10
+ atomicSpecies: "",
11
+ atomicOrbital: "2p",
12
+ value: 1.0
13
+ };
14
+ class HubbardJContextProvider extends _HubbardUContextProvider.HubbardUContextProvider {
15
+ get defaultData() {
16
+ return [{
17
+ ...defaultHubbardConfig,
18
+ atomicSpecies: this.firstElement
19
+ }];
20
+ }
21
+ get uiSchemaStyled() {
22
+ return {
23
+ "ui:options": {
24
+ addable: true,
25
+ orderable: true,
26
+ removable: true
27
+ },
28
+ items: {
29
+ paramType: this.defaultFieldStyles,
30
+ atomicSpecies: this.defaultFieldStyles,
31
+ atomicOrbital: this.defaultFieldStyles,
32
+ value: this.defaultFieldStyles
33
+ }
34
+ };
35
+ }
36
+ get jsonSchema() {
37
+ return {
38
+ $schema: "http://json-schema.org/draft-07/schema#",
39
+ title: "",
40
+ description: "Hubbard parameters for DFT+U+J calculation.",
41
+ type: "array",
42
+ items: {
43
+ type: "object",
44
+ properties: {
45
+ paramType: {
46
+ type: "string",
47
+ title: "Species",
48
+ enum: ["U", "J", "B", "E2", "E3"],
49
+ default: defaultHubbardConfig.paramType
50
+ },
51
+ atomicSpecies: {
52
+ type: "string",
53
+ title: "Species",
54
+ enum: this.uniqueElementsWithLabels,
55
+ default: this.firstElement
56
+ },
57
+ atomicOrbital: {
58
+ type: "string",
59
+ title: "Orbital",
60
+ enum: this.orbitalList,
61
+ default: defaultHubbardConfig.atomicOrbital
62
+ },
63
+ value: {
64
+ type: "number",
65
+ title: "Value (eV)",
66
+ default: defaultHubbardConfig.value
67
+ }
68
+ }
69
+ },
70
+ minItems: 1
71
+ };
72
+ }
73
+ }
74
+ exports.HubbardJContextProvider = HubbardJContextProvider;
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.HubbardUContextProvider = void 0;
7
+ var _JSONSchemaFormDataProvider = _interopRequireDefault(require("@exabyte-io/ade.js/dist/js/context/JSONSchemaFormDataProvider"));
8
+ var _MaterialContextMixin = require("../mixins/MaterialContextMixin");
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ const defaultHubbardConfig = {
11
+ atomicSpecies: "",
12
+ atomicOrbital: "2p",
13
+ hubbardUValue: 1.0
14
+ };
15
+ class HubbardUContextProvider extends _JSONSchemaFormDataProvider.default {
16
+ constructor(config) {
17
+ super(config);
18
+ this.initMaterialContextMixin();
19
+ this.uniqueElements = this.material?.Basis?.uniqueElements || [];
20
+ this.orbitalList = ["2p", "3s", "3p", "3d", "4s", "4p", "4d", "4f", "5s", "5p", "5d", "5f", "6s", "6p", "6d", "7s", "7p", "7d"];
21
+ const _elementsWithLabels = this.material?.Basis?.elementsWithLabelsArray || [];
22
+ this.uniqueElementsWithLabels = [...new Set(_elementsWithLabels)];
23
+ this.firstElement = this.uniqueElementsWithLabels?.length > 0 ? this.uniqueElementsWithLabels[0] : "";
24
+ }
25
+ get defaultData() {
26
+ return [{
27
+ ...defaultHubbardConfig,
28
+ atomicSpecies: this.firstElement
29
+ }];
30
+ }
31
+ get uiSchemaStyled() {
32
+ return {
33
+ "ui:options": {
34
+ addable: true,
35
+ orderable: false,
36
+ removable: true
37
+ },
38
+ items: {
39
+ atomicSpecies: this.defaultFieldStyles,
40
+ atomicOrbital: this.defaultFieldStyles,
41
+ hubbardUValue: this.defaultFieldStyles
42
+ }
43
+ };
44
+ }
45
+ get jsonSchema() {
46
+ return {
47
+ $schema: "http://json-schema.org/draft-07/schema#",
48
+ title: "",
49
+ description: "Hubbard U parameters for DFT+U or DFT+U+V calculation.",
50
+ type: "array",
51
+ items: {
52
+ type: "object",
53
+ properties: {
54
+ atomicSpecies: {
55
+ type: "string",
56
+ title: "Atomic species",
57
+ enum: this.uniqueElementsWithLabels,
58
+ default: this.firstElement
59
+ },
60
+ atomicOrbital: {
61
+ type: "string",
62
+ title: "Atomic orbital",
63
+ enum: this.orbitalList,
64
+ default: defaultHubbardConfig.atomicOrbital
65
+ },
66
+ hubbardUValue: {
67
+ type: "number",
68
+ title: "Hubbard U (eV)",
69
+ default: defaultHubbardConfig.hubbardUValue
70
+ }
71
+ }
72
+ }
73
+ };
74
+ }
75
+ }
76
+ exports.HubbardUContextProvider = HubbardUContextProvider;
77
+ (0, _MaterialContextMixin.materialContextMixin)(HubbardUContextProvider.prototype);
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.HubbardVContextProvider = void 0;
7
+ var _HubbardUContextProvider = require("./HubbardUContextProvider");
8
+ const defaultHubbardConfig = {
9
+ atomicSpecies: "",
10
+ atomicOrbital: "2p",
11
+ atomicSpecies2: "",
12
+ atomicOrbital2: "2p",
13
+ siteIndex: 1,
14
+ siteIndex2: 1,
15
+ hubbardVValue: 1.0
16
+ };
17
+ class HubbardVContextProvider extends _HubbardUContextProvider.HubbardUContextProvider {
18
+ get defaultData() {
19
+ return [{
20
+ ...defaultHubbardConfig,
21
+ atomicSpecies: this.firstSpecies,
22
+ atomicSpecies2: this.secondSpecies,
23
+ siteIndex2: this.uniqueElementsWithLabels?.length > 1 ? 2 : defaultHubbardConfig.siteIndex2
24
+ }];
25
+ }
26
+ get firstSpecies() {
27
+ return this.firstElement;
28
+ }
29
+ get secondSpecies() {
30
+ return this.uniqueElementsWithLabels?.length > 1 ? this.uniqueElementsWithLabels[1] : this.firstSpecies;
31
+ }
32
+ get uiSchemaStyled() {
33
+ return {
34
+ "ui:options": {
35
+ addable: true,
36
+ orderable: true,
37
+ removable: true
38
+ },
39
+ items: {
40
+ atomicSpecies: this.defaultFieldStyles,
41
+ atomicOrbital: this.defaultFieldStyles,
42
+ atomicSpecies2: this.defaultFieldStyles,
43
+ atomicOrbital2: this.defaultFieldStyles,
44
+ siteIndex: this.defaultFieldStyles,
45
+ siteIndex2: this.defaultFieldStyles,
46
+ hubbardVValue: this.defaultFieldStyles
47
+ }
48
+ };
49
+ }
50
+ get jsonSchema() {
51
+ return {
52
+ $schema: "http://json-schema.org/draft-07/schema#",
53
+ title: "",
54
+ description: "Hubbard V parameters for DFT+U+V calculation.",
55
+ type: "array",
56
+ items: {
57
+ type: "object",
58
+ properties: {
59
+ atomicSpecies: {
60
+ type: "string",
61
+ title: "Species 1",
62
+ enum: this.uniqueElementsWithLabels,
63
+ default: this.firstSpecies
64
+ },
65
+ siteIndex: {
66
+ type: "integer",
67
+ title: "Site no 1",
68
+ default: defaultHubbardConfig.siteIndex
69
+ },
70
+ atomicOrbital: {
71
+ type: "string",
72
+ title: "Orbital 1",
73
+ enum: this.orbitalList,
74
+ default: defaultHubbardConfig.atomicOrbital
75
+ },
76
+ atomicSpecies2: {
77
+ type: "string",
78
+ title: "Species 2",
79
+ enum: this.uniqueElementsWithLabels,
80
+ default: this.secondSpecies
81
+ },
82
+ siteIndex2: {
83
+ type: "integer",
84
+ title: "Site no 2",
85
+ default: this.uniqueElementsWithLabels?.length > 1 ? 2 : defaultHubbardConfig.siteIndex2
86
+ },
87
+ atomicOrbital2: {
88
+ type: "string",
89
+ title: "Orbital 2",
90
+ enum: this.orbitalList,
91
+ default: defaultHubbardConfig.atomicOrbital
92
+ },
93
+ hubbardVValue: {
94
+ type: "number",
95
+ title: "V (eV)",
96
+ default: defaultHubbardConfig.hubbardVValue
97
+ }
98
+ }
99
+ },
100
+ minItems: 1
101
+ };
102
+ }
103
+ }
104
+ exports.HubbardVContextProvider = HubbardVContextProvider;
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.IonDynamicsContextProvider = void 0;
7
+ var _JSONSchemaFormDataProvider = _interopRequireDefault(require("@exabyte-io/ade.js/dist/js/context/JSONSchemaFormDataProvider"));
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
+ const defaultMDConfig = {
10
+ numberOfSteps: 100,
11
+ timeStep: 5.0,
12
+ electronMass: 100.0,
13
+ temperature: 300.0
14
+ };
15
+ class IonDynamicsContextProvider extends _JSONSchemaFormDataProvider.default {
16
+ // eslint-disable-next-line class-methods-use-this
17
+ get defaultData() {
18
+ return defaultMDConfig;
19
+ }
20
+
21
+ // eslint-disable-next-line class-methods-use-this
22
+ get uiSchema() {
23
+ return {
24
+ numberOfSteps: {},
25
+ timeStep: {},
26
+ electronMass: {},
27
+ temperature: {}
28
+ };
29
+ }
30
+
31
+ // eslint-disable-next-line class-methods-use-this
32
+ get jsonSchema() {
33
+ return {
34
+ $schema: "http://json-schema.org/draft-07/schema#",
35
+ type: "object",
36
+ description: "Important parameters for molecular dynamics calculation",
37
+ properties: {
38
+ numberOfSteps: {
39
+ type: "integer",
40
+ title: "numberOfSteps",
41
+ default: defaultMDConfig.numberOfSteps
42
+ },
43
+ timeStep: {
44
+ type: "number",
45
+ title: "timeStep (Hartree a.u.)",
46
+ default: defaultMDConfig.timeStep
47
+ },
48
+ electronMass: {
49
+ type: "number",
50
+ title: "Effective electron mass",
51
+ default: defaultMDConfig.electronMass
52
+ },
53
+ temperature: {
54
+ type: "number",
55
+ title: "Ionic temperature (K)",
56
+ default: defaultMDConfig.temperature
57
+ }
58
+ }
59
+ };
60
+ }
61
+ }
62
+ exports.IonDynamicsContextProvider = IonDynamicsContextProvider;