@mat3ra/wode 2026.4.9-0 → 2026.5.29-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 (361) hide show
  1. package/.babelrc +1 -1
  2. package/dist/js/Subworkflow.d.ts +714 -0
  3. package/dist/js/Subworkflow.js +397 -0
  4. package/dist/js/Workflow.d.ts +82 -0
  5. package/dist/js/Workflow.js +286 -0
  6. package/dist/js/WorkflowDesignerMaterial.d.ts +21 -0
  7. package/dist/js/WorkflowDesignerMaterial.js +26 -0
  8. package/dist/js/context/mixins/ApplicationContextMixin.d.ts +10 -0
  9. package/dist/js/context/mixins/ApplicationContextMixin.js +10 -17
  10. package/dist/js/context/mixins/MaterialContextMixin.d.ts +18 -0
  11. package/dist/js/context/mixins/MaterialContextMixin.js +14 -38
  12. package/dist/js/context/mixins/MaterialsContextMixin.d.ts +10 -0
  13. package/dist/js/context/mixins/MaterialsContextMixin.js +11 -17
  14. package/dist/js/context/mixins/MaterialsSetContextMixin.d.ts +14 -0
  15. package/dist/js/context/mixins/MaterialsSetContextMixin.js +21 -23
  16. package/dist/js/context/providers/BoundaryConditionsFormDataManager.d.ts +30 -0
  17. package/dist/js/context/providers/BoundaryConditionsFormDataManager.js +62 -0
  18. package/dist/js/context/providers/CollinearMagnetizationDataManager.d.ts +42 -0
  19. package/dist/js/context/providers/CollinearMagnetizationDataManager.js +101 -0
  20. package/dist/js/context/providers/Hubbard/HubbardContextManagerLegacy.d.ts +29 -0
  21. package/dist/js/context/providers/Hubbard/HubbardContextManagerLegacy.js +69 -0
  22. package/dist/js/context/providers/Hubbard/HubbardContextProvider.d.ts +20 -0
  23. package/dist/js/context/providers/Hubbard/HubbardContextProvider.js +47 -0
  24. package/dist/js/context/providers/Hubbard/HubbardJContextManager.d.ts +22 -0
  25. package/dist/js/context/providers/Hubbard/HubbardJContextManager.js +61 -0
  26. package/dist/js/context/providers/Hubbard/HubbardUContextManager.d.ts +22 -0
  27. package/dist/js/context/providers/Hubbard/HubbardUContextManager.js +57 -0
  28. package/dist/js/context/providers/Hubbard/HubbardVContextManager.d.ts +22 -0
  29. package/dist/js/context/providers/Hubbard/HubbardVContextManager.js +79 -0
  30. package/dist/js/context/providers/IonDynamicsDataManager.d.ts +27 -0
  31. package/dist/js/context/providers/IonDynamicsDataManager.js +48 -0
  32. package/dist/js/context/providers/MLSettingsDataManager.d.ts +24 -0
  33. package/dist/js/context/providers/MLSettingsDataManager.js +42 -0
  34. package/dist/js/context/providers/MLTrainTestSplitDataManager.d.ts +23 -0
  35. package/dist/js/context/providers/MLTrainTestSplitDataManager.js +40 -0
  36. package/dist/js/context/providers/NEBFormDataManager.d.ts +23 -0
  37. package/dist/js/context/providers/NEBFormDataManager.js +39 -0
  38. package/dist/js/context/providers/NonCollinearMagnetizationDataManager.d.ts +78 -0
  39. package/dist/js/context/providers/NonCollinearMagnetizationDataManager.js +181 -0
  40. package/dist/js/context/providers/PlanewaveCutoffDataManager.d.ts +26 -0
  41. package/dist/js/context/providers/PlanewaveCutoffDataManager.js +69 -0
  42. package/dist/js/context/providers/PointsGrid/IGridFormDataManager.d.ts +13 -0
  43. package/dist/js/context/providers/PointsGrid/IGridFormDataManager.js +23 -0
  44. package/dist/js/context/providers/PointsGrid/KGridFormDataManager.d.ts +15 -0
  45. package/dist/js/context/providers/PointsGrid/KGridFormDataManager.js +30 -0
  46. package/dist/js/context/providers/PointsGrid/PointsGridFormDataProvider.d.ts +171 -0
  47. package/dist/js/context/providers/PointsGrid/PointsGridFormDataProvider.js +270 -0
  48. package/dist/js/context/providers/PointsGrid/QGridFormDataManager.d.ts +13 -0
  49. package/dist/js/context/providers/PointsGrid/QGridFormDataManager.js +23 -0
  50. package/dist/js/context/providers/PointsPath/ExplicitKPath2PIBAFormDataManager.d.ts +10 -0
  51. package/dist/js/context/providers/PointsPath/ExplicitKPath2PIBAFormDataManager.js +19 -0
  52. package/dist/js/context/providers/PointsPath/ExplicitKPathFormDataManager.d.ts +9 -0
  53. package/dist/js/context/providers/PointsPath/ExplicitKPathFormDataManager.js +18 -0
  54. package/dist/js/context/providers/PointsPath/IPathFormDataManager.d.ts +8 -0
  55. package/dist/js/context/providers/PointsPath/IPathFormDataManager.js +17 -0
  56. package/dist/js/context/providers/PointsPath/KPathFormDataManager.d.ts +8 -0
  57. package/dist/js/context/providers/PointsPath/KPathFormDataManager.js +17 -0
  58. package/dist/js/context/providers/PointsPath/PointsPathFormDataProvider.d.ts +40 -0
  59. package/dist/js/context/providers/PointsPath/PointsPathFormDataProvider.js +125 -0
  60. package/dist/js/context/providers/PointsPath/QPathFormDataManager.d.ts +8 -0
  61. package/dist/js/context/providers/PointsPath/QPathFormDataManager.js +17 -0
  62. package/dist/js/context/providers/base/ContextProvider.d.ts +75 -0
  63. package/dist/js/context/providers/base/ContextProvider.js +87 -0
  64. package/dist/js/context/providers/base/JSONSchemaDataProvider.d.ts +16 -0
  65. package/dist/js/context/providers/base/JSONSchemaDataProvider.js +17 -0
  66. package/dist/js/context/providers/base/JSONSchemaFormDataProvider.d.ts +19 -0
  67. package/dist/js/context/providers/base/JSONSchemaFormDataProvider.js +32 -0
  68. package/dist/js/context/providers/by_application/espresso/QENEBInputDataManager.d.ts +26 -0
  69. package/dist/js/context/providers/by_application/espresso/QENEBInputDataManager.js +54 -0
  70. package/dist/js/context/providers/by_application/espresso/QEPWXInputDataManager.d.ts +78 -0
  71. package/dist/js/context/providers/by_application/espresso/QEPWXInputDataManager.js +104 -0
  72. package/dist/js/context/providers/by_application/nwchem/NWChemInputDataManager.d.ts +36 -0
  73. package/dist/js/context/providers/by_application/nwchem/NWChemInputDataManager.js +58 -0
  74. package/dist/js/context/providers/by_application/vasp/VASPInputDataManager.d.ts +36 -0
  75. package/dist/js/context/providers/by_application/vasp/VASPInputDataManager.js +56 -0
  76. package/dist/js/context/providers/by_application/vasp/VASPNEBInputDataManager.d.ts +30 -0
  77. package/dist/js/context/providers/by_application/vasp/VASPNEBInputDataManager.js +50 -0
  78. package/dist/js/context/providers/index.d.ts +92 -0
  79. package/dist/js/context/providers/index.js +107 -0
  80. package/dist/js/context/providers/settings.d.ts +7 -0
  81. package/dist/js/context/providers/settings.js +11 -33
  82. package/dist/js/convergence/ConvergenceParameter.d.ts +26 -0
  83. package/dist/js/convergence/ConvergenceParameter.js +13 -0
  84. package/dist/js/convergence/NonUniformKGridConvergence.d.ts +12 -0
  85. package/dist/js/convergence/NonUniformKGridConvergence.js +31 -0
  86. package/dist/js/convergence/UniformKGridConvergence.d.ts +8 -0
  87. package/dist/js/convergence/UniformKGridConvergence.js +22 -0
  88. package/dist/js/convergence/factory.d.ts +8 -0
  89. package/dist/js/convergence/factory.js +18 -0
  90. package/dist/js/enums.d.ts +62 -0
  91. package/dist/js/enums.js +66 -61
  92. package/dist/js/generated/AssertionUnitSchemaMixin.d.ts +5 -0
  93. package/dist/js/generated/AssertionUnitSchemaMixin.js +27 -0
  94. package/dist/js/generated/AssignmentUnitSchemaMixin.d.ts +5 -0
  95. package/dist/js/generated/AssignmentUnitSchemaMixin.js +33 -0
  96. package/dist/js/generated/BaseUnitSchemaMixin.d.ts +5 -0
  97. package/dist/js/generated/BaseUnitSchemaMixin.js +57 -0
  98. package/dist/js/generated/ConditionUnitSchemaMixin.d.ts +5 -0
  99. package/dist/js/generated/ConditionUnitSchemaMixin.js +51 -0
  100. package/dist/js/generated/ExecutionUnitInputSchemaMixin.d.ts +5 -0
  101. package/dist/js/generated/ExecutionUnitInputSchemaMixin.js +27 -0
  102. package/dist/js/generated/ExecutionUnitSchemaMixin.d.ts +5 -0
  103. package/dist/js/generated/ExecutionUnitSchemaMixin.js +45 -0
  104. package/dist/js/generated/IOUnitSchemaMixin.d.ts +5 -0
  105. package/dist/js/generated/IOUnitSchemaMixin.js +33 -0
  106. package/dist/js/generated/MapUnitSchemaMixin.d.ts +5 -0
  107. package/dist/js/generated/MapUnitSchemaMixin.js +27 -0
  108. package/dist/js/generated/ReduceUnitSchemaMixin.d.ts +5 -0
  109. package/dist/js/generated/ReduceUnitSchemaMixin.js +27 -0
  110. package/dist/js/generated/StatusSchemaMixin.d.ts +5 -0
  111. package/dist/js/generated/StatusSchemaMixin.js +21 -0
  112. package/dist/js/generated/SubworkflowSchemaMixin.d.ts +5 -0
  113. package/dist/js/generated/SubworkflowSchemaMixin.js +51 -0
  114. package/dist/js/generated/SubworkflowUnitSchemaMixin.d.ts +5 -0
  115. package/dist/js/generated/SubworkflowUnitSchemaMixin.js +15 -0
  116. package/dist/js/generated/WorkflowSchemaMixin.d.ts +5 -0
  117. package/dist/js/generated/WorkflowSchemaMixin.js +51 -0
  118. package/dist/js/index.d.ts +13 -0
  119. package/dist/js/index.js +66 -176
  120. package/dist/js/units/AssertionUnit.d.ts +20 -0
  121. package/dist/js/units/AssertionUnit.js +33 -0
  122. package/dist/js/units/AssignmentUnit.d.ts +17 -0
  123. package/dist/js/units/AssignmentUnit.js +35 -0
  124. package/dist/js/units/BaseUnit.d.ts +39 -0
  125. package/dist/js/units/BaseUnit.js +70 -0
  126. package/dist/js/units/ConditionUnit.d.ts +17 -0
  127. package/dist/js/units/ConditionUnit.js +37 -0
  128. package/dist/js/units/ExecutionUnit.d.ts +115 -0
  129. package/dist/js/units/ExecutionUnit.js +181 -0
  130. package/dist/js/units/ExecutionUnitInput.d.ts +22 -0
  131. package/dist/js/units/ExecutionUnitInput.js +47 -0
  132. package/dist/js/units/IOUnit.d.ts +16 -0
  133. package/dist/js/units/IOUnit.js +31 -0
  134. package/dist/js/units/MapUnit.d.ts +34 -0
  135. package/dist/js/units/MapUnit.js +46 -0
  136. package/dist/js/units/ReduceUnit.d.ts +16 -0
  137. package/dist/js/units/ReduceUnit.js +30 -0
  138. package/dist/js/units/SubworkflowUnit.d.ts +16 -0
  139. package/dist/js/units/SubworkflowUnit.js +28 -0
  140. package/dist/js/units/factory.d.ts +31 -0
  141. package/dist/js/units/factory.js +65 -47
  142. package/dist/js/units/index.d.ts +14 -0
  143. package/dist/js/units/index.js +25 -81
  144. package/dist/js/units/mixins/RuntimeItemsUILogicMixin.d.ts +26 -0
  145. package/dist/js/units/mixins/RuntimeItemsUILogicMixin.js +50 -0
  146. package/dist/js/utils/baseUnits.d.ts +2 -0
  147. package/dist/js/utils/baseUnits.js +11 -0
  148. package/dist/js/utils/index.d.ts +3 -0
  149. package/dist/js/utils/index.js +39 -0
  150. package/dist/js/utils/subworkflow.d.ts +2 -0
  151. package/dist/js/utils/subworkflow.js +29 -0
  152. package/dist/js/utils/underscoreStringSlugify.d.ts +6 -0
  153. package/dist/js/utils/underscoreStringSlugify.js +32 -0
  154. package/dist/js/utils/units.d.ts +4 -0
  155. package/dist/js/utils/units.js +16 -0
  156. package/dist/js/utils/workflow.d.ts +9 -0
  157. package/dist/js/utils/workflow.js +67 -0
  158. package/dist/js/utils.js +2 -7
  159. package/dist/js/workflows/default.d.ts +3 -0
  160. package/dist/js/workflows/default.js +43 -39
  161. package/dist/js/workflows/workflow.d.ts +4404 -0
  162. package/dist/js/workflows/workflow.js +310 -306
  163. package/package.json +56 -44
  164. package/src/js/Subworkflow.ts +532 -0
  165. package/src/js/Workflow.ts +390 -0
  166. package/src/js/context/mixins/ApplicationContextMixin.ts +21 -0
  167. package/src/js/context/mixins/MaterialContextMixin.ts +35 -0
  168. package/src/js/context/mixins/MaterialsContextMixin.ts +24 -0
  169. package/src/js/context/mixins/MaterialsSetContextMixin.ts +42 -0
  170. package/src/js/context/providers/BoundaryConditionsFormDataManager.ts +88 -0
  171. package/src/js/context/providers/CollinearMagnetizationDataManager.ts +140 -0
  172. package/src/js/context/providers/Hubbard/HubbardContextManagerLegacy.ts +93 -0
  173. package/src/js/context/providers/Hubbard/HubbardContextProvider.ts +85 -0
  174. package/src/js/context/providers/Hubbard/HubbardJContextManager.ts +82 -0
  175. package/src/js/context/providers/Hubbard/HubbardUContextManager.ts +78 -0
  176. package/src/js/context/providers/Hubbard/HubbardVContextManager.ts +100 -0
  177. package/src/js/context/providers/IonDynamicsDataManager.ts +64 -0
  178. package/src/js/context/providers/MLSettingsDataManager.ts +61 -0
  179. package/src/js/context/providers/MLTrainTestSplitDataManager.ts +59 -0
  180. package/src/js/context/providers/NEBFormDataManager.ts +57 -0
  181. package/src/js/context/providers/NonCollinearMagnetizationDataManager.ts +229 -0
  182. package/src/js/context/providers/PlanewaveCutoffDataManager.ts +110 -0
  183. package/src/js/context/providers/PointsGrid/IGridFormDataManager.ts +36 -0
  184. package/src/js/context/providers/PointsGrid/KGridFormDataManager.ts +46 -0
  185. package/src/js/context/providers/PointsGrid/PointsGridFormDataProvider.ts +371 -0
  186. package/src/js/context/providers/PointsGrid/QGridFormDataManager.ts +36 -0
  187. package/src/js/context/providers/PointsPath/ExplicitKPath2PIBAFormDataManager.ts +26 -0
  188. package/src/js/context/providers/PointsPath/ExplicitKPathFormDataManager.ts +24 -0
  189. package/src/js/context/providers/PointsPath/IPathFormDataManager.ts +22 -0
  190. package/src/js/context/providers/PointsPath/KPathFormDataManager.ts +22 -0
  191. package/src/js/context/providers/PointsPath/PointsPathFormDataProvider.ts +192 -0
  192. package/src/js/context/providers/PointsPath/QPathFormDataManager.ts +22 -0
  193. package/src/js/context/providers/base/ContextProvider.ts +150 -0
  194. package/src/js/context/providers/base/JSONSchemaDataProvider.ts +31 -0
  195. package/src/js/context/providers/base/JSONSchemaFormDataProvider.ts +38 -0
  196. package/src/js/context/providers/by_application/espresso/QENEBInputDataManager.ts +107 -0
  197. package/src/js/context/providers/by_application/espresso/QEPWXInputDataManager.ts +178 -0
  198. package/src/js/context/providers/by_application/nwchem/NWChemInputDataManager.ts +93 -0
  199. package/src/js/context/providers/by_application/vasp/VASPInputDataManager.ts +89 -0
  200. package/src/js/context/providers/by_application/vasp/VASPNEBInputDataManager.ts +92 -0
  201. package/src/js/context/providers/index.ts +155 -0
  202. package/src/js/context/providers/settings.ts +13 -0
  203. package/src/js/convergence/ConvergenceParameter.ts +37 -0
  204. package/src/js/convergence/NonUniformKGridConvergence.ts +38 -0
  205. package/src/js/convergence/UniformKGridConvergence.ts +26 -0
  206. package/src/js/convergence/factory.ts +18 -0
  207. package/src/js/{enums.js → enums.ts} +27 -22
  208. package/src/js/generated/AssertionUnitSchemaMixin.ts +34 -0
  209. package/src/js/generated/AssignmentUnitSchemaMixin.ts +40 -0
  210. package/src/js/generated/BaseUnitSchemaMixin.ts +64 -0
  211. package/src/js/generated/ConditionUnitSchemaMixin.ts +58 -0
  212. package/src/js/generated/ExecutionUnitInputSchemaMixin.ts +36 -0
  213. package/src/js/generated/ExecutionUnitSchemaMixin.ts +52 -0
  214. package/src/js/generated/IOUnitSchemaMixin.ts +40 -0
  215. package/src/js/generated/MapUnitSchemaMixin.ts +34 -0
  216. package/src/js/generated/ReduceUnitSchemaMixin.ts +34 -0
  217. package/src/js/generated/StatusSchemaMixin.ts +28 -0
  218. package/src/js/generated/SubworkflowSchemaMixin.ts +58 -0
  219. package/src/js/generated/SubworkflowUnitSchemaMixin.ts +22 -0
  220. package/src/js/generated/WorkflowSchemaMixin.ts +58 -0
  221. package/src/js/index.ts +44 -0
  222. package/src/js/units/AssertionUnit.ts +49 -0
  223. package/src/js/units/AssignmentUnit.ts +49 -0
  224. package/src/js/units/BaseUnit.ts +117 -0
  225. package/src/js/units/ConditionUnit.ts +52 -0
  226. package/src/js/units/ExecutionUnit.ts +274 -0
  227. package/src/js/units/ExecutionUnitInput.ts +71 -0
  228. package/src/js/units/IOUnit.ts +43 -0
  229. package/src/js/units/MapUnit.ts +59 -0
  230. package/src/js/units/ReduceUnit.ts +46 -0
  231. package/src/js/units/SubworkflowUnit.ts +44 -0
  232. package/src/js/units/factory.ts +131 -0
  233. package/src/js/units/index.ts +27 -0
  234. package/src/js/units/mixins/RuntimeItemsUILogicMixin.ts +81 -0
  235. package/src/js/utils/baseUnits.ts +11 -0
  236. package/src/js/utils/index.ts +3 -0
  237. package/src/js/utils/units.ts +23 -0
  238. package/src/js/utils/workflow.ts +69 -0
  239. package/src/js/workflows/{default.js → default.ts} +8 -1
  240. package/build_workflows.js +0 -65
  241. package/dist/js/context/context.js +0 -49
  242. package/dist/js/context/mixins/JobContextMixin.js +0 -39
  243. package/dist/js/context/mixins/MethodDataContextMixin.js +0 -48
  244. package/dist/js/context/mixins/WorkflowContextMixin.js +0 -28
  245. package/dist/js/context/providers/BoundaryConditionsFormDataProvider.js +0 -84
  246. package/dist/js/context/providers/CollinearMagnetizationContextProvider.js +0 -96
  247. package/dist/js/context/providers/HubbardContextProviderLegacy.js +0 -68
  248. package/dist/js/context/providers/HubbardJContextProvider.js +0 -67
  249. package/dist/js/context/providers/HubbardUContextProvider.js +0 -70
  250. package/dist/js/context/providers/HubbardVContextProvider.js +0 -92
  251. package/dist/js/context/providers/IonDynamicsContextProvider.js +0 -58
  252. package/dist/js/context/providers/MLSettingsContextProvider.js +0 -51
  253. package/dist/js/context/providers/MLTrainTestSplitContextProvider.js +0 -47
  254. package/dist/js/context/providers/NEBFormDataProvider.js +0 -42
  255. package/dist/js/context/providers/NonCollinearMagnetizationContextProvider.js +0 -187
  256. package/dist/js/context/providers/PlanewaveCutoffsContextProvider.js +0 -67
  257. package/dist/js/context/providers/PointsGridFormDataProvider.js +0 -263
  258. package/dist/js/context/providers/PointsPathFormDataProvider.js +0 -147
  259. package/dist/js/context/providers/by_application/ExecutableContextProvider.js +0 -25
  260. package/dist/js/context/providers/by_application/espresso/QENEBContextProvider.js +0 -61
  261. package/dist/js/context/providers/by_application/espresso/QEPWXContextProvider.js +0 -150
  262. package/dist/js/context/providers/by_application/nwchem/NWChemTotalEnergyContextProvider.js +0 -85
  263. package/dist/js/context/providers/by_application/vasp/VASPContextProvider.js +0 -65
  264. package/dist/js/context/providers/by_application/vasp/VASPNEBContextProvider.js +0 -57
  265. package/dist/js/context/providers.js +0 -199
  266. package/dist/js/patch.js +0 -19
  267. package/dist/js/subworkflows/convergence/non_uniform_kgrid.js +0 -31
  268. package/dist/js/subworkflows/convergence/parameter.js +0 -70
  269. package/dist/js/subworkflows/convergence/uniform_kgrid.js +0 -26
  270. package/dist/js/subworkflows/convergence.js +0 -189
  271. package/dist/js/subworkflows/create.js +0 -293
  272. package/dist/js/subworkflows/dynamic/espresso/getQpointIrrep.js +0 -34
  273. package/dist/js/subworkflows/dynamic/index.js +0 -19
  274. package/dist/js/subworkflows/dynamic/surfaceEnergy.js +0 -67
  275. package/dist/js/subworkflows/index.js +0 -19
  276. package/dist/js/units/assertion.js +0 -37
  277. package/dist/js/units/assignment.js +0 -42
  278. package/dist/js/units/base.js +0 -91
  279. package/dist/js/units/builders/AssertionUnitConfigBuilder.js +0 -34
  280. package/dist/js/units/builders/AssignmentUnitConfigBuilder.js +0 -41
  281. package/dist/js/units/builders/ExecutionUnitConfigBuilder.js +0 -67
  282. package/dist/js/units/builders/IOUnitConfigBuilder.js +0 -54
  283. package/dist/js/units/builders/UnitConfigBuilder.js +0 -85
  284. package/dist/js/units/builders/index.js +0 -18
  285. package/dist/js/units/condition.js +0 -52
  286. package/dist/js/units/execution.js +0 -225
  287. package/dist/js/units/io.js +0 -148
  288. package/dist/js/units/map.js +0 -38
  289. package/dist/js/units/processing.js +0 -41
  290. package/dist/js/units/reduce.js +0 -24
  291. package/dist/js/units/subworkflow.js +0 -23
  292. package/dist/js/workflows/create.js +0 -318
  293. package/dist/js/workflows/index.js +0 -113
  294. package/dist/js/workflows/relaxation.js +0 -38
  295. package/src/js/context/context.js +0 -47
  296. package/src/js/context/mixins/ApplicationContextMixin.js +0 -19
  297. package/src/js/context/mixins/JobContextMixin.js +0 -36
  298. package/src/js/context/mixins/MaterialContextMixin.js +0 -41
  299. package/src/js/context/mixins/MaterialsContextMixin.js +0 -18
  300. package/src/js/context/mixins/MaterialsSetContextMixin.js +0 -24
  301. package/src/js/context/mixins/MethodDataContextMixin.js +0 -48
  302. package/src/js/context/mixins/WorkflowContextMixin.js +0 -25
  303. package/src/js/context/providers/BoundaryConditionsFormDataProvider.js +0 -72
  304. package/src/js/context/providers/CollinearMagnetizationContextProvider.js +0 -105
  305. package/src/js/context/providers/HubbardContextProviderLegacy.js +0 -67
  306. package/src/js/context/providers/HubbardJContextProvider.js +0 -65
  307. package/src/js/context/providers/HubbardUContextProvider.js +0 -95
  308. package/src/js/context/providers/HubbardVContextProvider.js +0 -96
  309. package/src/js/context/providers/IonDynamicsContextProvider.js +0 -44
  310. package/src/js/context/providers/MLSettingsContextProvider.js +0 -45
  311. package/src/js/context/providers/MLTrainTestSplitContextProvider.js +0 -43
  312. package/src/js/context/providers/NEBFormDataProvider.js +0 -33
  313. package/src/js/context/providers/NonCollinearMagnetizationContextProvider.js +0 -179
  314. package/src/js/context/providers/PlanewaveCutoffsContextProvider.js +0 -65
  315. package/src/js/context/providers/PointsGridFormDataProvider.js +0 -271
  316. package/src/js/context/providers/PointsPathFormDataProvider.js +0 -163
  317. package/src/js/context/providers/by_application/ExecutableContextProvider.js +0 -17
  318. package/src/js/context/providers/by_application/espresso/QENEBContextProvider.js +0 -58
  319. package/src/js/context/providers/by_application/espresso/QEPWXContextProvider.js +0 -168
  320. package/src/js/context/providers/by_application/nwchem/NWChemTotalEnergyContextProvider.js +0 -89
  321. package/src/js/context/providers/by_application/vasp/VASPContextProvider.js +0 -58
  322. package/src/js/context/providers/by_application/vasp/VASPNEBContextProvider.js +0 -48
  323. package/src/js/context/providers/settings.js +0 -38
  324. package/src/js/context/providers.js +0 -140
  325. package/src/js/index.js +0 -57
  326. package/src/js/patch.js +0 -12
  327. package/src/js/subworkflows/convergence/enums.js +0 -12
  328. package/src/js/subworkflows/convergence/factory.js +0 -15
  329. package/src/js/subworkflows/convergence/non_uniform_kgrid.js +0 -28
  330. package/src/js/subworkflows/convergence/parameter.js +0 -58
  331. package/src/js/subworkflows/convergence/uniform_kgrid.js +0 -22
  332. package/src/js/subworkflows/convergence.js +0 -196
  333. package/src/js/subworkflows/create.js +0 -220
  334. package/src/js/subworkflows/dynamic/espresso/getQpointIrrep.js +0 -35
  335. package/src/js/subworkflows/dynamic/index.js +0 -8
  336. package/src/js/subworkflows/dynamic/surfaceEnergy.js +0 -124
  337. package/src/js/subworkflows/index.js +0 -2
  338. package/src/js/subworkflows/subworkflow.js +0 -345
  339. package/src/js/units/assertion.js +0 -29
  340. package/src/js/units/assignment.js +0 -34
  341. package/src/js/units/base.js +0 -97
  342. package/src/js/units/builders/AssertionUnitConfigBuilder.js +0 -28
  343. package/src/js/units/builders/AssignmentUnitConfigBuilder.js +0 -36
  344. package/src/js/units/builders/ExecutionUnitConfigBuilder.js +0 -59
  345. package/src/js/units/builders/IOUnitConfigBuilder.js +0 -53
  346. package/src/js/units/builders/UnitConfigBuilder.js +0 -92
  347. package/src/js/units/builders/index.js +0 -15
  348. package/src/js/units/condition.js +0 -47
  349. package/src/js/units/execution.js +0 -267
  350. package/src/js/units/factory.js +0 -53
  351. package/src/js/units/index.js +0 -25
  352. package/src/js/units/io.js +0 -163
  353. package/src/js/units/map.js +0 -33
  354. package/src/js/units/processing.js +0 -39
  355. package/src/js/units/reduce.js +0 -17
  356. package/src/js/units/subworkflow.js +0 -15
  357. package/src/js/utils.js +0 -73
  358. package/src/js/workflows/create.js +0 -227
  359. package/src/js/workflows/index.js +0 -98
  360. package/src/js/workflows/relaxation.js +0 -42
  361. package/src/js/workflows/workflow.js +0 -388
@@ -1,163 +0,0 @@
1
- /* eslint-disable max-classes-per-file */
2
- /* eslint react/prop-types: 0 */
3
- import { JSONSchemaFormDataProvider } from "@mat3ra/ade";
4
- import { math as codeJSMath } from "@mat3ra/code/dist/js/math";
5
- import JSONSchemasInterface from "@mat3ra/esse/dist/js/esse/JSONSchemasInterface";
6
- import { Made } from "@mat3ra/made";
7
- import s from "underscore.string";
8
-
9
- import { applicationContextMixin } from "../mixins/ApplicationContextMixin";
10
- import { materialContextMixin } from "../mixins/MaterialContextMixin";
11
-
12
- const defaultPoint = "Г";
13
- const defaultSteps = 10;
14
-
15
- export class PointsPathFormDataProvider extends JSONSchemaFormDataProvider {
16
- jsonSchemaId = "context-providers-directory/points-path-data-provider";
17
-
18
- constructor(config) {
19
- super(config);
20
- this.initMaterialContextMixin();
21
- this.initApplicationContextMixin();
22
- this.reciprocalLattice = new Made.ReciprocalLattice(this.material.lattice);
23
- this.symmetryPoints = this.symmetryPointsFromMaterial;
24
- }
25
-
26
- get isEditedIsSetToFalseOnMaterialUpdate() {
27
- return this.isMaterialUpdated || this.isMaterialCreatedDefault;
28
- }
29
-
30
- get defaultData() {
31
- return this.reciprocalLattice.defaultKpointPath;
32
- }
33
-
34
- get symmetryPointsFromMaterial() {
35
- return this.reciprocalLattice.symmetryPoints;
36
- }
37
-
38
- get jsonSchemaPatchConfig() {
39
- const points = [].concat(this.symmetryPoints).map((x) => x.point);
40
-
41
- return {
42
- "items.properties.point": {
43
- default: defaultPoint,
44
- enum: points,
45
- },
46
- "items.properties.steps": {
47
- default: defaultSteps,
48
- },
49
- };
50
- }
51
-
52
- get jsonSchema() {
53
- return JSONSchemasInterface.getPatchedSchemaById(
54
- this.jsonSchemaId,
55
- this.jsonSchemaPatchConfig,
56
- );
57
- }
58
-
59
- // eslint-disable-next-line class-methods-use-this
60
- get uiSchema() {
61
- return {
62
- items: {},
63
- };
64
- }
65
-
66
- get uiSchemaStyled() {
67
- return {
68
- items: {
69
- point: this.defaultFieldStyles,
70
- steps: this.defaultFieldStyles,
71
- },
72
- };
73
- }
74
-
75
- // eslint-disable-next-line class-methods-use-this
76
- get templates() {
77
- return {};
78
- }
79
-
80
- getBrillouinZoneImageComponent(title) {
81
- const hasRequiredFn = typeof this.material.getBrillouinZoneImageComponent === "function";
82
- if (!hasRequiredFn) {
83
- console.log(
84
- "PointsPathFormDataProvider: Material class has no function" +
85
- " 'getBrillouinZoneImageComponent'! Returning empty Object instead.",
86
- );
87
- return null;
88
- }
89
- return this.material.getBrillouinZoneImageComponent(title);
90
- }
91
-
92
- get useExplicitPath() {
93
- return this.application.name === "vasp";
94
- }
95
-
96
- // override yieldData to avoid storing explicit path in saved context
97
- yieldDataForRendering() {
98
- return this.yieldData(this.useExplicitPath);
99
- }
100
-
101
- transformData(path = [], useExplicitPath = false) {
102
- const rawData = path.map((p) => {
103
- const point = this.symmetryPoints.find((sp) => sp.point === p.point);
104
- return { ...p, coordinates: point.coordinates };
105
- });
106
- const processedData = useExplicitPath ? this._convertToExplicitPath(rawData) : rawData;
107
- // make coordinates into string and add formatting
108
- return processedData.map((p) => {
109
- const coordinates = this.is2PIBA
110
- ? this.get2PIBACoordinates(p.coordinates)
111
- : p.coordinates;
112
- p.coordinates = coordinates.map((c) => s.sprintf("%14.9f", c));
113
- return p;
114
- });
115
- }
116
-
117
- get2PIBACoordinates(point) {
118
- return this.reciprocalLattice.getCartesianCoordinates(point);
119
- }
120
-
121
- // Initially, path contains symmetry points with steps counts.
122
- // This function explicitly calculates each point between symmetry points by step counts.
123
- // eslint-disable-next-line class-methods-use-this
124
- _convertToExplicitPath(path) {
125
- const points = [];
126
- for (let i = 0; i < path.length - 1; i++) {
127
- const startPoint = path[i];
128
- const endPoint = path[i + 1];
129
- const middlePoints = codeJSMath.calculateSegmentsBetweenPoints3D(
130
- startPoint.coordinates,
131
- endPoint.coordinates,
132
- startPoint.steps,
133
- );
134
- points.push(startPoint.coordinates);
135
- points.push(...middlePoints);
136
- // Include endPoint into path for the last section, otherwise it will be included by next loop iteration
137
- if (path.length - 2 === i) points.push(endPoint.coordinates);
138
- }
139
- return points.map((x) => {
140
- return {
141
- coordinates: x,
142
- steps: 1,
143
- };
144
- });
145
- }
146
- }
147
-
148
- export class ExplicitPointsPathFormDataProvider extends PointsPathFormDataProvider {
149
- // eslint-disable-next-line class-methods-use-this
150
- get useExplicitPath() {
151
- return true;
152
- }
153
- }
154
-
155
- export class ExplicitPointsPath2PIBAFormDataProvider extends ExplicitPointsPathFormDataProvider {
156
- // eslint-disable-next-line class-methods-use-this
157
- get is2PIBA() {
158
- return true;
159
- }
160
- }
161
-
162
- materialContextMixin(PointsPathFormDataProvider.prototype);
163
- applicationContextMixin(PointsPathFormDataProvider.prototype);
@@ -1,17 +0,0 @@
1
- import { ContextProvider } from "@mat3ra/ade";
2
- import JSONSchemasInterface from "@mat3ra/esse/dist/js/esse/JSONSchemasInterface";
3
-
4
- export default class ExecutableContextProvider extends ContextProvider {
5
- jsonSchemaId = "context-provider";
6
-
7
- constructor(config) {
8
- super({
9
- ...config,
10
- domain: "executable",
11
- });
12
- }
13
-
14
- get jsonSchema() {
15
- return JSONSchemasInterface.getSchemaById(this.jsonSchemaId);
16
- }
17
- }
@@ -1,58 +0,0 @@
1
- import lodash from "lodash";
2
-
3
- import { jobContextMixin } from "../../../mixins/JobContextMixin";
4
- import { materialContextMixin } from "../../../mixins/MaterialContextMixin";
5
- import { materialsContextMixin } from "../../../mixins/MaterialsContextMixin";
6
- import { materialsSetContextMixin } from "../../../mixins/MaterialsSetContextMixin";
7
- import { methodDataContextMixin } from "../../../mixins/MethodDataContextMixin";
8
- import { workflowContextMixin } from "../../../mixins/WorkflowContextMixin";
9
- import ExecutableContextProvider from "../ExecutableContextProvider";
10
- import QEPWXContextProvider from "./QEPWXContextProvider";
11
-
12
- export default class QENEBContextProvider extends ExecutableContextProvider {
13
- jsonSchemaId = "context-providers-directory/by-application/qe-neb-context-provider";
14
-
15
- _material = undefined;
16
-
17
- _materials = [];
18
-
19
- _materialsSet = undefined;
20
-
21
- constructor(config) {
22
- super(config);
23
- this.initJobContextMixin();
24
- this.initMaterialsContextMixin();
25
- this.initMethodDataContextMixin();
26
- this.initWorkflowContextMixin();
27
- this.initMaterialContextMixin();
28
- this.initMaterialsSetContextMixin();
29
- }
30
-
31
- getData() {
32
- const sortedMaterials = this.sortMaterialsByIndexInSet(this.materials);
33
- const PWXContexts = sortedMaterials.map((material) => {
34
- const context = { ...this.config.context, material };
35
- const config = { ...this.config, context };
36
- return new QEPWXContextProvider(config).getData();
37
- });
38
-
39
- return {
40
- ...lodash.omit(PWXContexts[0], [
41
- "ATOMIC_POSITIONS",
42
- "ATOMIC_POSITIONS_WITHOUT_CONSTRAINTS",
43
- ]),
44
- FIRST_IMAGE: PWXContexts[0].ATOMIC_POSITIONS,
45
- LAST_IMAGE: PWXContexts[PWXContexts.length - 1].ATOMIC_POSITIONS,
46
- INTERMEDIATE_IMAGES: PWXContexts.slice(1, PWXContexts.length - 1).map(
47
- (data) => data.ATOMIC_POSITIONS,
48
- ),
49
- };
50
- }
51
- }
52
-
53
- materialContextMixin(QENEBContextProvider.prototype);
54
- materialsContextMixin(QENEBContextProvider.prototype);
55
- methodDataContextMixin(QENEBContextProvider.prototype);
56
- workflowContextMixin(QENEBContextProvider.prototype);
57
- jobContextMixin(QENEBContextProvider.prototype);
58
- materialsSetContextMixin(QENEBContextProvider.prototype);
@@ -1,168 +0,0 @@
1
- import { PERIODIC_TABLE } from "@exabyte-io/periodic-table.js";
2
- import path from "path";
3
- import s from "underscore.string";
4
-
5
- import { jobContextMixin } from "../../../mixins/JobContextMixin";
6
- import { materialContextMixin } from "../../../mixins/MaterialContextMixin";
7
- import { materialsContextMixin } from "../../../mixins/MaterialsContextMixin";
8
- import { methodDataContextMixin } from "../../../mixins/MethodDataContextMixin";
9
- import { workflowContextMixin } from "../../../mixins/WorkflowContextMixin";
10
- import ExecutableContextProvider from "../ExecutableContextProvider";
11
-
12
- export default class QEPWXContextProvider extends ExecutableContextProvider {
13
- jsonSchemaId = "context-providers-directory/by-application/qe-pwx-context-provider";
14
-
15
- _material = undefined;
16
-
17
- _materials = [];
18
-
19
- constructor(config) {
20
- super(config);
21
- this.initMaterialsContextMixin();
22
- this.initMethodDataContextMixin();
23
- this.initWorkflowContextMixin();
24
- this.initJobContextMixin();
25
- this.initMaterialContextMixin();
26
- }
27
-
28
- static atomSymbols(material) {
29
- return material.Basis.uniqueElements;
30
- }
31
-
32
- static uniqueElementsWithLabels(material) {
33
- // return unique items
34
- return [...new Set(material.Basis.elementsWithLabelsArray)];
35
- }
36
-
37
- /** Returns the input text block for atomic positions WITH constraints.
38
- */
39
- static atomicPositionsWithConstraints(material) {
40
- return material.Basis.getAtomicPositionsWithConstraintsAsStrings().join("\n");
41
- }
42
-
43
- /** Returns the input text block for atomic positions
44
- * Note: does NOT include constraints
45
- */
46
- static atomicPositions(material) {
47
- return material.Basis.atomicPositions.join("\n");
48
- }
49
-
50
- static NAT(material) {
51
- return material.Basis.atomicPositions.length;
52
- }
53
-
54
- static NTYP(material) {
55
- return material.Basis.uniqueElements.length;
56
- }
57
-
58
- static NTYP_WITH_LABELS(material) {
59
- return this.uniqueElementsWithLabels(material).length;
60
- }
61
-
62
- buildQEPWXContext(material) {
63
- const IBRAV = 0; // use CELL_PARAMETERS to define Bravais lattice
64
-
65
- return {
66
- IBRAV,
67
- RESTART_MODE: this.RESTART_MODE,
68
- ATOMIC_SPECIES: this.ATOMIC_SPECIES(material),
69
- ATOMIC_SPECIES_WITH_LABELS: this.ATOMIC_SPECIES_WITH_LABELS(material),
70
- NAT: QEPWXContextProvider.NAT(material),
71
- NTYP: QEPWXContextProvider.NTYP(material),
72
- NTYP_WITH_LABELS: QEPWXContextProvider.NTYP_WITH_LABELS(material),
73
- ATOMIC_POSITIONS: QEPWXContextProvider.atomicPositionsWithConstraints(material),
74
- ATOMIC_POSITIONS_WITHOUT_CONSTRAINTS: QEPWXContextProvider.atomicPositions(material),
75
- CELL_PARAMETERS: QEPWXContextProvider.CELL_PARAMETERS(material),
76
- };
77
- }
78
-
79
- getDataPerMaterial() {
80
- if (!this.materials || this.materials.length <= 1) return {};
81
- return { perMaterial: this.materials.map((material) => this.buildQEPWXContext(material)) };
82
- }
83
-
84
- /*
85
- * @NOTE: Overriding getData makes this provider "stateless", ie. delivering data from scratch each time and not
86
- * considering the content of `this.data`, and `this.isEdited` field(s).
87
- */
88
- getData() {
89
- // the below values are read from PlanewaveDataManager instead
90
- // ECUTWFC = 40;
91
- // ECUTRHO = 200;
92
-
93
- return {
94
- ...this.buildQEPWXContext(this.material),
95
- ...this.getDataPerMaterial(),
96
- };
97
- }
98
-
99
- get RESTART_MODE() {
100
- return this.job.parentJob || this.workflow.hasRelaxation ? "restart" : "from_scratch";
101
- }
102
-
103
- getPseudoBySymbol(symbol) {
104
- return (this.methodData.pseudo || []).find((p) => p.element === symbol);
105
- }
106
-
107
- /** Builds ATOMIC SPECIES block of pw.x input in the format
108
- * X Mass_X PseudoPot_X
109
- * where X is the atom label
110
- * Mass_X is the mass of element X [amu]
111
- * PseudoPot_X is the pseudopotential filename associated with element X
112
- *
113
- * Note: assumes this.methodData is defined
114
- */
115
- ATOMIC_SPECIES(material) {
116
- return QEPWXContextProvider.atomSymbols(material)
117
- .map((symbol) => {
118
- const pseudo = this.getPseudoBySymbol(symbol);
119
- return QEPWXContextProvider.symbolToAtomicSpecie(symbol, pseudo);
120
- })
121
- .join("\n");
122
- }
123
-
124
- ATOMIC_SPECIES_WITH_LABELS(material) {
125
- return QEPWXContextProvider.uniqueElementsWithLabels(material)
126
- .map((symbol) => {
127
- const symbolWithoutLabel = symbol.replace(/\d$/, "");
128
- const label = symbol.match(/\d$/g) ? symbol.match(/\d$/g)?.[0] : "";
129
- const pseudo = this.getPseudoBySymbol(symbolWithoutLabel);
130
- return QEPWXContextProvider.elementAndPseudoToAtomicSpecieWithLabels(
131
- symbolWithoutLabel,
132
- pseudo,
133
- label,
134
- );
135
- })
136
- .join("\n");
137
- }
138
-
139
- static CELL_PARAMETERS(material) {
140
- return material.Lattice.vectorArrays
141
- .map((x) => {
142
- return x
143
- .map((y) => {
144
- return s.sprintf("%14.9f", y).trim();
145
- })
146
- .join(" ");
147
- })
148
- .join("\n");
149
- }
150
-
151
- static symbolToAtomicSpecie(symbol, pseudo) {
152
- const el = PERIODIC_TABLE[symbol];
153
- const filename = pseudo?.filename || path.basename(pseudo?.path || "");
154
- return s.sprintf("%s %f %s", symbol, el.atomic_mass, filename) || "";
155
- }
156
-
157
- static elementAndPseudoToAtomicSpecieWithLabels(symbol, pseudo, label = "") {
158
- const el = PERIODIC_TABLE[symbol];
159
- const filename = pseudo?.filename || path.basename(pseudo?.path || "");
160
- return s.sprintf("%s%s %f %s", symbol, label, el.atomic_mass, filename) || "";
161
- }
162
- }
163
-
164
- materialContextMixin(QEPWXContextProvider.prototype);
165
- materialsContextMixin(QEPWXContextProvider.prototype);
166
- methodDataContextMixin(QEPWXContextProvider.prototype);
167
- workflowContextMixin(QEPWXContextProvider.prototype);
168
- jobContextMixin(QEPWXContextProvider.prototype);
@@ -1,89 +0,0 @@
1
- import { PERIODIC_TABLE } from "@exabyte-io/periodic-table.js";
2
- import lodash from "lodash";
3
- import _ from "underscore";
4
- import s from "underscore.string";
5
-
6
- import { jobContextMixin } from "../../../mixins/JobContextMixin";
7
- import { materialContextMixin } from "../../../mixins/MaterialContextMixin";
8
- import { methodDataContextMixin } from "../../../mixins/MethodDataContextMixin";
9
- import { workflowContextMixin } from "../../../mixins/WorkflowContextMixin";
10
- import ExecutableContextProvider from "../ExecutableContextProvider";
11
-
12
- export default class NWChemTotalEnergyContextProvider extends ExecutableContextProvider {
13
- jsonSchemaId =
14
- "context-providers-directory/by-application/nwchem-total-energy-context-provider";
15
-
16
- _material = undefined;
17
-
18
- constructor(config) {
19
- super(config);
20
- this.initMethodDataContextMixin();
21
- this.initWorkflowContextMixin();
22
- this.initJobContextMixin();
23
- this.initMaterialContextMixin();
24
- }
25
-
26
- get atomicPositionsWithoutConstraints() {
27
- return this.material.Basis.atomicPositions;
28
- }
29
-
30
- get atomicPositions() {
31
- const basis = this.material.Basis;
32
- basis.toCartesian();
33
- return basis.getAtomicPositionsWithConstraintsAsStrings();
34
- }
35
-
36
- get atomSymbols() {
37
- return this.material.Basis.uniqueElements;
38
- }
39
-
40
- get cartesianAtomicPositions() {
41
- return this.material.Basis.toCartesian !== undefined;
42
- }
43
-
44
- get ATOMIC_SPECIES() {
45
- return _.map(this.atomSymbols, (symbol) => {
46
- return NWChemTotalEnergyContextProvider.symbolToAtomicSpecies(symbol);
47
- }).join("\n");
48
- }
49
-
50
- /*
51
- * @NOTE: Overriding getData makes this provider "stateless", ie. delivering data from scratch each time and not
52
- * considering the content of `this.data`, and `this.isEdited` field(s).
53
- */
54
- getData() {
55
- /*
56
- TODO: Create ability for user to define CHARGE, MULT, BASIS and FUNCTIONAL parameters.
57
- */
58
- const CHARGE = 0;
59
- const MULT = 1;
60
- const BASIS = "6-31G";
61
- const FUNCTIONAL = "B3LYP";
62
-
63
- return {
64
- CHARGE,
65
- MULT,
66
- BASIS,
67
- NAT: this.atomicPositions.length,
68
- NTYP: this.atomSymbols.length,
69
- ATOMIC_POSITIONS: this.atomicPositions.join("\n"),
70
- ATOMIC_POSITIONS_WITHOUT_CONSTRAINTS: this.atomicPositionsWithoutConstraints.join("\n"),
71
- ATOMIC_SPECIES: this.ATOMIC_SPECIES,
72
- FUNCTIONAL,
73
- CARTESIAN: this.cartesianAtomicPositions,
74
- };
75
- }
76
-
77
- static symbolToAtomicSpecies(symbol, pseudo) {
78
- const el = PERIODIC_TABLE[symbol];
79
- const filename = pseudo
80
- ? lodash.get(pseudo, "filename", s.strRightBack(pseudo.path || "", "/"))
81
- : "";
82
- return el ? s.sprintf("%s %f %s", symbol, el.atomic_mass, filename) : undefined;
83
- }
84
- }
85
-
86
- materialContextMixin(NWChemTotalEnergyContextProvider.prototype);
87
- methodDataContextMixin(NWChemTotalEnergyContextProvider.prototype);
88
- workflowContextMixin(NWChemTotalEnergyContextProvider.prototype);
89
- jobContextMixin(NWChemTotalEnergyContextProvider.prototype);
@@ -1,58 +0,0 @@
1
- import { jobContextMixin } from "../../../mixins/JobContextMixin";
2
- import { materialContextMixin } from "../../../mixins/MaterialContextMixin";
3
- import { materialsContextMixin } from "../../../mixins/MaterialsContextMixin";
4
- import { methodDataContextMixin } from "../../../mixins/MethodDataContextMixin";
5
- import { workflowContextMixin } from "../../../mixins/WorkflowContextMixin";
6
- import ExecutableContextProvider from "../ExecutableContextProvider";
7
-
8
- export default class VASPContextProvider extends ExecutableContextProvider {
9
- jsonSchemaId = "context-providers-directory/by-application/vasp-context-provider";
10
-
11
- _material = undefined;
12
-
13
- _materials = [];
14
-
15
- constructor(config) {
16
- super(config);
17
- this.initJobContextMixin();
18
- this.initMaterialsContextMixin();
19
- this.initMethodDataContextMixin();
20
- this.initWorkflowContextMixin();
21
- this.initMaterialContextMixin();
22
- }
23
-
24
- // eslint-disable-next-line class-methods-use-this
25
- buildVASPContext(material) {
26
- return {
27
- // TODO: figure out whether we need two separate POSCARS, maybe one is enough
28
- POSCAR: material.getAsPOSCAR(true, true),
29
- POSCAR_WITH_CONSTRAINTS: material.getAsPOSCAR(true),
30
- };
31
- }
32
-
33
- getDataPerMaterial() {
34
- if (!this.materials || this.materials.length <= 1) return {};
35
- return { perMaterial: this.materials.map((material) => this.buildVASPContext(material)) };
36
- }
37
-
38
- /*
39
- * @NOTE: Overriding getData makes this provider "stateless", ie. delivering data from scratch each time and not
40
- * considering the content of `this.data`, and `this.isEdited` field(s).
41
- */
42
- getData() {
43
- // consider adjusting so that below values are read from PlanewaveDataManager
44
- // ECUTWFC;
45
- // ECUTRHO;
46
-
47
- return {
48
- ...this.buildVASPContext(this.material),
49
- ...this.getDataPerMaterial(),
50
- };
51
- }
52
- }
53
-
54
- materialContextMixin(VASPContextProvider.prototype);
55
- materialsContextMixin(VASPContextProvider.prototype);
56
- methodDataContextMixin(VASPContextProvider.prototype);
57
- workflowContextMixin(VASPContextProvider.prototype);
58
- jobContextMixin(VASPContextProvider.prototype);
@@ -1,48 +0,0 @@
1
- import { jobContextMixin } from "../../../mixins/JobContextMixin";
2
- import { materialContextMixin } from "../../../mixins/MaterialContextMixin";
3
- import { materialsContextMixin } from "../../../mixins/MaterialsContextMixin";
4
- import { materialsSetContextMixin } from "../../../mixins/MaterialsSetContextMixin";
5
- import { methodDataContextMixin } from "../../../mixins/MethodDataContextMixin";
6
- import { workflowContextMixin } from "../../../mixins/WorkflowContextMixin";
7
- import ExecutableContextProvider from "../ExecutableContextProvider";
8
- import VASPContextProvider from "./VASPContextProvider";
9
-
10
- export default class VASPNEBContextProvider extends ExecutableContextProvider {
11
- jsonSchemaId = "context-providers-directory/by-application/vasp-neb-context-provider";
12
-
13
- _materials = [];
14
-
15
- constructor(config) {
16
- super(config);
17
- this.initMaterialContextMixin();
18
- this.initMaterialsContextMixin();
19
- this.initMaterialsSetContextMixin();
20
- this.initMethodDataContextMixin();
21
- this.initWorkflowContextMixin();
22
- this.initJobContextMixin();
23
- }
24
-
25
- getData() {
26
- const sortedMaterials = this.sortMaterialsByIndexInSet(this.materials);
27
- const VASPContexts = sortedMaterials.map((material) => {
28
- const context = { ...this.config.context, material };
29
- const config = { ...this.config, context };
30
- return new VASPContextProvider(config).getData();
31
- });
32
-
33
- return {
34
- FIRST_IMAGE: VASPContexts[0].POSCAR_WITH_CONSTRAINTS,
35
- LAST_IMAGE: VASPContexts[VASPContexts.length - 1].POSCAR_WITH_CONSTRAINTS,
36
- INTERMEDIATE_IMAGES: VASPContexts.slice(1, VASPContexts.length - 1).map(
37
- (data) => data.POSCAR_WITH_CONSTRAINTS,
38
- ),
39
- };
40
- }
41
- }
42
-
43
- materialContextMixin(VASPNEBContextProvider.prototype);
44
- materialsContextMixin(VASPNEBContextProvider.prototype);
45
- materialsSetContextMixin(VASPNEBContextProvider.prototype);
46
- methodDataContextMixin(VASPNEBContextProvider.prototype);
47
- workflowContextMixin(VASPNEBContextProvider.prototype);
48
- jobContextMixin(VASPNEBContextProvider.prototype);
@@ -1,38 +0,0 @@
1
- import { Application } from "@mat3ra/ade";
2
- import { Made } from "@mat3ra/made";
3
-
4
- class GlobalSettings {
5
- "PointsGridFormDataProvider.defaultKPPRA" = 5;
6
-
7
- Material = Made.Material;
8
-
9
- Application = Application;
10
-
11
- constructor() {
12
- this.resetDefaults();
13
- }
14
-
15
- get defaultKPPRA() {
16
- return this["PointsGridFormDataProvider.defaultKPPRA"];
17
- }
18
-
19
- setApplication(application) {
20
- this.Application = application;
21
- }
22
-
23
- setMaterial(material) {
24
- this.Material = material;
25
- }
26
-
27
- setDefaultKPPRA(kppra) {
28
- this["PointsGridFormDataProvider.defaultKPPRA"] = kppra;
29
- }
30
-
31
- resetDefaults() {
32
- this.Material = Made.Material;
33
- this.Application = Application;
34
- this["PointsGridFormDataProvider.defaultKPPRA"] = 5;
35
- }
36
- }
37
-
38
- export const globalSettings = new GlobalSettings();