@mat3ra/wode 2026.5.23-0 → 2026.6.5-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (360) 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/workflows/default.d.ts +3 -0
  159. package/dist/js/workflows/default.js +43 -39
  160. package/dist/js/workflows/workflow.d.ts +4404 -0
  161. package/dist/js/workflows/workflow.js +310 -306
  162. package/package.json +56 -44
  163. package/src/js/Subworkflow.ts +532 -0
  164. package/src/js/Workflow.ts +390 -0
  165. package/src/js/context/mixins/ApplicationContextMixin.ts +21 -0
  166. package/src/js/context/mixins/MaterialContextMixin.ts +35 -0
  167. package/src/js/context/mixins/MaterialsContextMixin.ts +24 -0
  168. package/src/js/context/mixins/MaterialsSetContextMixin.ts +42 -0
  169. package/src/js/context/providers/BoundaryConditionsFormDataManager.ts +88 -0
  170. package/src/js/context/providers/CollinearMagnetizationDataManager.ts +140 -0
  171. package/src/js/context/providers/Hubbard/HubbardContextManagerLegacy.ts +93 -0
  172. package/src/js/context/providers/Hubbard/HubbardContextProvider.ts +85 -0
  173. package/src/js/context/providers/Hubbard/HubbardJContextManager.ts +82 -0
  174. package/src/js/context/providers/Hubbard/HubbardUContextManager.ts +78 -0
  175. package/src/js/context/providers/Hubbard/HubbardVContextManager.ts +100 -0
  176. package/src/js/context/providers/IonDynamicsDataManager.ts +64 -0
  177. package/src/js/context/providers/MLSettingsDataManager.ts +61 -0
  178. package/src/js/context/providers/MLTrainTestSplitDataManager.ts +59 -0
  179. package/src/js/context/providers/NEBFormDataManager.ts +57 -0
  180. package/src/js/context/providers/NonCollinearMagnetizationDataManager.ts +229 -0
  181. package/src/js/context/providers/PlanewaveCutoffDataManager.ts +110 -0
  182. package/src/js/context/providers/PointsGrid/IGridFormDataManager.ts +36 -0
  183. package/src/js/context/providers/PointsGrid/KGridFormDataManager.ts +46 -0
  184. package/src/js/context/providers/PointsGrid/PointsGridFormDataProvider.ts +371 -0
  185. package/src/js/context/providers/PointsGrid/QGridFormDataManager.ts +36 -0
  186. package/src/js/context/providers/PointsPath/ExplicitKPath2PIBAFormDataManager.ts +26 -0
  187. package/src/js/context/providers/PointsPath/ExplicitKPathFormDataManager.ts +24 -0
  188. package/src/js/context/providers/PointsPath/IPathFormDataManager.ts +22 -0
  189. package/src/js/context/providers/PointsPath/KPathFormDataManager.ts +22 -0
  190. package/src/js/context/providers/PointsPath/PointsPathFormDataProvider.ts +192 -0
  191. package/src/js/context/providers/PointsPath/QPathFormDataManager.ts +22 -0
  192. package/src/js/context/providers/base/ContextProvider.ts +150 -0
  193. package/src/js/context/providers/base/JSONSchemaDataProvider.ts +31 -0
  194. package/src/js/context/providers/base/JSONSchemaFormDataProvider.ts +38 -0
  195. package/src/js/context/providers/by_application/espresso/QENEBInputDataManager.ts +107 -0
  196. package/src/js/context/providers/by_application/espresso/QEPWXInputDataManager.ts +178 -0
  197. package/src/js/context/providers/by_application/nwchem/NWChemInputDataManager.ts +93 -0
  198. package/src/js/context/providers/by_application/vasp/VASPInputDataManager.ts +89 -0
  199. package/src/js/context/providers/by_application/vasp/VASPNEBInputDataManager.ts +92 -0
  200. package/src/js/context/providers/index.ts +155 -0
  201. package/src/js/context/providers/settings.ts +13 -0
  202. package/src/js/convergence/ConvergenceParameter.ts +37 -0
  203. package/src/js/convergence/NonUniformKGridConvergence.ts +38 -0
  204. package/src/js/convergence/UniformKGridConvergence.ts +26 -0
  205. package/src/js/convergence/factory.ts +18 -0
  206. package/src/js/{enums.js → enums.ts} +27 -22
  207. package/src/js/generated/AssertionUnitSchemaMixin.ts +34 -0
  208. package/src/js/generated/AssignmentUnitSchemaMixin.ts +40 -0
  209. package/src/js/generated/BaseUnitSchemaMixin.ts +64 -0
  210. package/src/js/generated/ConditionUnitSchemaMixin.ts +58 -0
  211. package/src/js/generated/ExecutionUnitInputSchemaMixin.ts +36 -0
  212. package/src/js/generated/ExecutionUnitSchemaMixin.ts +52 -0
  213. package/src/js/generated/IOUnitSchemaMixin.ts +40 -0
  214. package/src/js/generated/MapUnitSchemaMixin.ts +34 -0
  215. package/src/js/generated/ReduceUnitSchemaMixin.ts +34 -0
  216. package/src/js/generated/StatusSchemaMixin.ts +28 -0
  217. package/src/js/generated/SubworkflowSchemaMixin.ts +58 -0
  218. package/src/js/generated/SubworkflowUnitSchemaMixin.ts +22 -0
  219. package/src/js/generated/WorkflowSchemaMixin.ts +58 -0
  220. package/src/js/index.ts +44 -0
  221. package/src/js/units/AssertionUnit.ts +49 -0
  222. package/src/js/units/AssignmentUnit.ts +49 -0
  223. package/src/js/units/BaseUnit.ts +117 -0
  224. package/src/js/units/ConditionUnit.ts +52 -0
  225. package/src/js/units/ExecutionUnit.ts +274 -0
  226. package/src/js/units/ExecutionUnitInput.ts +71 -0
  227. package/src/js/units/IOUnit.ts +43 -0
  228. package/src/js/units/MapUnit.ts +59 -0
  229. package/src/js/units/ReduceUnit.ts +46 -0
  230. package/src/js/units/SubworkflowUnit.ts +44 -0
  231. package/src/js/units/factory.ts +131 -0
  232. package/src/js/units/index.ts +27 -0
  233. package/src/js/units/mixins/RuntimeItemsUILogicMixin.ts +81 -0
  234. package/src/js/utils/baseUnits.ts +11 -0
  235. package/src/js/utils/index.ts +3 -0
  236. package/src/js/utils/units.ts +23 -0
  237. package/src/js/utils/workflow.ts +69 -0
  238. package/src/js/workflows/{default.js → default.ts} +8 -1
  239. package/build_workflows.js +0 -65
  240. package/dist/js/context/context.js +0 -49
  241. package/dist/js/context/mixins/JobContextMixin.js +0 -39
  242. package/dist/js/context/mixins/MethodDataContextMixin.js +0 -48
  243. package/dist/js/context/mixins/WorkflowContextMixin.js +0 -28
  244. package/dist/js/context/providers/BoundaryConditionsFormDataProvider.js +0 -84
  245. package/dist/js/context/providers/CollinearMagnetizationContextProvider.js +0 -96
  246. package/dist/js/context/providers/HubbardContextProviderLegacy.js +0 -68
  247. package/dist/js/context/providers/HubbardJContextProvider.js +0 -67
  248. package/dist/js/context/providers/HubbardUContextProvider.js +0 -70
  249. package/dist/js/context/providers/HubbardVContextProvider.js +0 -92
  250. package/dist/js/context/providers/IonDynamicsContextProvider.js +0 -58
  251. package/dist/js/context/providers/MLSettingsContextProvider.js +0 -51
  252. package/dist/js/context/providers/MLTrainTestSplitContextProvider.js +0 -47
  253. package/dist/js/context/providers/NEBFormDataProvider.js +0 -42
  254. package/dist/js/context/providers/NonCollinearMagnetizationContextProvider.js +0 -187
  255. package/dist/js/context/providers/PlanewaveCutoffsContextProvider.js +0 -67
  256. package/dist/js/context/providers/PointsGridFormDataProvider.js +0 -263
  257. package/dist/js/context/providers/PointsPathFormDataProvider.js +0 -147
  258. package/dist/js/context/providers/by_application/ExecutableContextProvider.js +0 -25
  259. package/dist/js/context/providers/by_application/espresso/QENEBContextProvider.js +0 -61
  260. package/dist/js/context/providers/by_application/espresso/QEPWXContextProvider.js +0 -150
  261. package/dist/js/context/providers/by_application/nwchem/NWChemTotalEnergyContextProvider.js +0 -85
  262. package/dist/js/context/providers/by_application/vasp/VASPContextProvider.js +0 -65
  263. package/dist/js/context/providers/by_application/vasp/VASPNEBContextProvider.js +0 -57
  264. package/dist/js/context/providers.js +0 -199
  265. package/dist/js/patch.js +0 -19
  266. package/dist/js/subworkflows/convergence/non_uniform_kgrid.js +0 -31
  267. package/dist/js/subworkflows/convergence/parameter.js +0 -70
  268. package/dist/js/subworkflows/convergence/uniform_kgrid.js +0 -26
  269. package/dist/js/subworkflows/convergence.js +0 -189
  270. package/dist/js/subworkflows/create.js +0 -293
  271. package/dist/js/subworkflows/dynamic/espresso/getQpointIrrep.js +0 -34
  272. package/dist/js/subworkflows/dynamic/index.js +0 -19
  273. package/dist/js/subworkflows/dynamic/surfaceEnergy.js +0 -67
  274. package/dist/js/subworkflows/index.js +0 -19
  275. package/dist/js/units/assertion.js +0 -37
  276. package/dist/js/units/assignment.js +0 -42
  277. package/dist/js/units/base.js +0 -91
  278. package/dist/js/units/builders/AssertionUnitConfigBuilder.js +0 -34
  279. package/dist/js/units/builders/AssignmentUnitConfigBuilder.js +0 -41
  280. package/dist/js/units/builders/ExecutionUnitConfigBuilder.js +0 -67
  281. package/dist/js/units/builders/IOUnitConfigBuilder.js +0 -54
  282. package/dist/js/units/builders/UnitConfigBuilder.js +0 -85
  283. package/dist/js/units/builders/index.js +0 -18
  284. package/dist/js/units/condition.js +0 -52
  285. package/dist/js/units/execution.js +0 -225
  286. package/dist/js/units/io.js +0 -148
  287. package/dist/js/units/map.js +0 -38
  288. package/dist/js/units/processing.js +0 -41
  289. package/dist/js/units/reduce.js +0 -24
  290. package/dist/js/units/subworkflow.js +0 -23
  291. package/dist/js/workflows/create.js +0 -318
  292. package/dist/js/workflows/index.js +0 -113
  293. package/dist/js/workflows/relaxation.js +0 -38
  294. package/src/js/context/context.js +0 -47
  295. package/src/js/context/mixins/ApplicationContextMixin.js +0 -19
  296. package/src/js/context/mixins/JobContextMixin.js +0 -36
  297. package/src/js/context/mixins/MaterialContextMixin.js +0 -41
  298. package/src/js/context/mixins/MaterialsContextMixin.js +0 -18
  299. package/src/js/context/mixins/MaterialsSetContextMixin.js +0 -24
  300. package/src/js/context/mixins/MethodDataContextMixin.js +0 -48
  301. package/src/js/context/mixins/WorkflowContextMixin.js +0 -25
  302. package/src/js/context/providers/BoundaryConditionsFormDataProvider.js +0 -72
  303. package/src/js/context/providers/CollinearMagnetizationContextProvider.js +0 -105
  304. package/src/js/context/providers/HubbardContextProviderLegacy.js +0 -67
  305. package/src/js/context/providers/HubbardJContextProvider.js +0 -65
  306. package/src/js/context/providers/HubbardUContextProvider.js +0 -95
  307. package/src/js/context/providers/HubbardVContextProvider.js +0 -96
  308. package/src/js/context/providers/IonDynamicsContextProvider.js +0 -44
  309. package/src/js/context/providers/MLSettingsContextProvider.js +0 -45
  310. package/src/js/context/providers/MLTrainTestSplitContextProvider.js +0 -43
  311. package/src/js/context/providers/NEBFormDataProvider.js +0 -33
  312. package/src/js/context/providers/NonCollinearMagnetizationContextProvider.js +0 -179
  313. package/src/js/context/providers/PlanewaveCutoffsContextProvider.js +0 -65
  314. package/src/js/context/providers/PointsGridFormDataProvider.js +0 -271
  315. package/src/js/context/providers/PointsPathFormDataProvider.js +0 -163
  316. package/src/js/context/providers/by_application/ExecutableContextProvider.js +0 -17
  317. package/src/js/context/providers/by_application/espresso/QENEBContextProvider.js +0 -58
  318. package/src/js/context/providers/by_application/espresso/QEPWXContextProvider.js +0 -168
  319. package/src/js/context/providers/by_application/nwchem/NWChemTotalEnergyContextProvider.js +0 -89
  320. package/src/js/context/providers/by_application/vasp/VASPContextProvider.js +0 -58
  321. package/src/js/context/providers/by_application/vasp/VASPNEBContextProvider.js +0 -48
  322. package/src/js/context/providers/settings.js +0 -38
  323. package/src/js/context/providers.js +0 -140
  324. package/src/js/index.js +0 -57
  325. package/src/js/patch.js +0 -12
  326. package/src/js/subworkflows/convergence/enums.js +0 -12
  327. package/src/js/subworkflows/convergence/factory.js +0 -15
  328. package/src/js/subworkflows/convergence/non_uniform_kgrid.js +0 -28
  329. package/src/js/subworkflows/convergence/parameter.js +0 -58
  330. package/src/js/subworkflows/convergence/uniform_kgrid.js +0 -22
  331. package/src/js/subworkflows/convergence.js +0 -196
  332. package/src/js/subworkflows/create.js +0 -220
  333. package/src/js/subworkflows/dynamic/espresso/getQpointIrrep.js +0 -35
  334. package/src/js/subworkflows/dynamic/index.js +0 -8
  335. package/src/js/subworkflows/dynamic/surfaceEnergy.js +0 -124
  336. package/src/js/subworkflows/index.js +0 -2
  337. package/src/js/subworkflows/subworkflow.js +0 -345
  338. package/src/js/units/assertion.js +0 -29
  339. package/src/js/units/assignment.js +0 -34
  340. package/src/js/units/base.js +0 -97
  341. package/src/js/units/builders/AssertionUnitConfigBuilder.js +0 -28
  342. package/src/js/units/builders/AssignmentUnitConfigBuilder.js +0 -36
  343. package/src/js/units/builders/ExecutionUnitConfigBuilder.js +0 -59
  344. package/src/js/units/builders/IOUnitConfigBuilder.js +0 -53
  345. package/src/js/units/builders/UnitConfigBuilder.js +0 -92
  346. package/src/js/units/builders/index.js +0 -15
  347. package/src/js/units/condition.js +0 -47
  348. package/src/js/units/execution.js +0 -267
  349. package/src/js/units/factory.js +0 -53
  350. package/src/js/units/index.js +0 -25
  351. package/src/js/units/io.js +0 -163
  352. package/src/js/units/map.js +0 -33
  353. package/src/js/units/processing.js +0 -39
  354. package/src/js/units/reduce.js +0 -17
  355. package/src/js/units/subworkflow.js +0 -15
  356. package/src/js/utils.js +0 -73
  357. package/src/js/workflows/create.js +0 -227
  358. package/src/js/workflows/index.js +0 -98
  359. package/src/js/workflows/relaxation.js +0 -42
  360. 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();