@mat3ra/wode 2026.5.23-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 (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
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const math_1 = require("@mat3ra/code/dist/js/math");
7
+ const JSONSchemasInterface_1 = __importDefault(require("@mat3ra/esse/dist/js/esse/JSONSchemasInterface"));
8
+ const made_1 = require("@mat3ra/made");
9
+ const ApplicationContextMixin_1 = __importDefault(require("../../mixins/ApplicationContextMixin"));
10
+ const MaterialContextMixin_1 = __importDefault(require("../../mixins/MaterialContextMixin"));
11
+ const JSONSchemaDataProvider_1 = __importDefault(require("../base/JSONSchemaDataProvider"));
12
+ const defaultPoint = "Г";
13
+ const defaultSteps = 10;
14
+ const jsonSchemaId = "context-providers-directory/points-path-data-provider";
15
+ class MixinsContextProvider extends JSONSchemaDataProvider_1.default {
16
+ constructor(contextItem, externalContext) {
17
+ super(contextItem, externalContext);
18
+ this.initMaterialContextMixin(externalContext);
19
+ this.initApplicationContextMixin(externalContext);
20
+ }
21
+ }
22
+ (0, MaterialContextMixin_1.default)(MixinsContextProvider.prototype);
23
+ (0, ApplicationContextMixin_1.default)(MixinsContextProvider.prototype);
24
+ class PointsPathFormDataProvider extends MixinsContextProvider {
25
+ constructor(config, externalContext) {
26
+ super(config, externalContext);
27
+ this.domain = "important";
28
+ this.entityName = "unit";
29
+ this.is2PIBA = false;
30
+ this.uiSchemaStyled = {
31
+ items: {
32
+ point: {},
33
+ steps: {},
34
+ },
35
+ };
36
+ this.reciprocalLattice = new made_1.Made.ReciprocalLattice(this.material.lattice);
37
+ this.useExplicitPath = this.application.name === "vasp";
38
+ }
39
+ getDefaultData() {
40
+ return this.reciprocalLattice.defaultKpointPath;
41
+ }
42
+ updateMaterialHash() {
43
+ var _a;
44
+ const previousMaterialHash = (_a = this.extraData) === null || _a === void 0 ? void 0 : _a.materialHash;
45
+ super.updateMaterialHash();
46
+ // Reset path only when the material actually changed (hash). Do not clear `isEdited` just
47
+ // because the material has no id (common default material in designers): that ran every
48
+ // render, wiped isEdited, and savePersistentContext dropped k-path/Q-path from `unit.context`.
49
+ if (previousMaterialHash && previousMaterialHash !== this.material.hash) {
50
+ this.isEdited = false;
51
+ }
52
+ }
53
+ get jsonSchema() {
54
+ const jsonSchema = JSONSchemasInterface_1.default.getPatchedSchemaById(jsonSchemaId, {
55
+ "items.properties.point": {
56
+ default: defaultPoint,
57
+ enum: this.reciprocalLattice.symmetryPoints.map((x) => x.point),
58
+ },
59
+ "items.properties.steps": {
60
+ default: defaultSteps,
61
+ },
62
+ });
63
+ if (!jsonSchema) {
64
+ throw new Error("Failed to get patched JSON schema");
65
+ }
66
+ return jsonSchema;
67
+ }
68
+ patchForRendering(data) {
69
+ return this.addCoordinates(data);
70
+ }
71
+ addCoordinates(path) {
72
+ const rawData = path.map((pathItem) => {
73
+ const point = this.reciprocalLattice.symmetryPoints.find((sp) => {
74
+ return sp.point === pathItem.point;
75
+ });
76
+ if (!point) {
77
+ throw new Error(`Point ${pathItem.point} not found in reciprocal lattice`);
78
+ }
79
+ return { ...pathItem, coordinates: point.coordinates };
80
+ });
81
+ const processedData = this.useExplicitPath ? this.convertToExplicitPath(rawData) : rawData;
82
+ const mapped = processedData.map((p) => {
83
+ const coordinates = this.is2PIBA
84
+ ? this.reciprocalLattice.getCartesianCoordinates(p.coordinates)
85
+ : p.coordinates;
86
+ return {
87
+ ...p,
88
+ coordinates: coordinates.map((c) => Number(c.toFixed(9))),
89
+ };
90
+ });
91
+ return mapped;
92
+ }
93
+ // Initially, path contains symmetry points with steps counts.
94
+ // This function explicitly calculates each point between symmetry points by step counts.
95
+ // eslint-disable-next-line class-methods-use-this
96
+ convertToExplicitPath(path) {
97
+ return path.reduce((acc, startPoint, index) => {
98
+ const nextPoint = path[index + 1];
99
+ if (!nextPoint) {
100
+ return acc;
101
+ }
102
+ const middlePoints = math_1.math.calculateSegmentsBetweenPoints3D(startPoint.coordinates, nextPoint.coordinates, startPoint.steps);
103
+ const steps = 1;
104
+ acc.push({
105
+ steps,
106
+ coordinates: startPoint.coordinates,
107
+ point: startPoint.point,
108
+ }, ...middlePoints.map((coordinates) => ({
109
+ steps,
110
+ coordinates,
111
+ point: startPoint.point,
112
+ })));
113
+ // nextPoint is the last point in the path
114
+ if (path.length - 2 === index) {
115
+ acc.push({
116
+ steps,
117
+ coordinates: nextPoint.coordinates,
118
+ point: nextPoint.point,
119
+ });
120
+ }
121
+ return acc;
122
+ }, []);
123
+ }
124
+ }
125
+ exports.default = PointsPathFormDataProvider;
@@ -0,0 +1,8 @@
1
+ import type { UnitContext } from "../base/ContextProvider";
2
+ import PointsPathFormDataProvider, { type PointsPathFormDataProviderExternalContext } from "./PointsPathFormDataProvider";
3
+ type Name = "qpath";
4
+ export default class QPathFormDataManager extends PointsPathFormDataProvider<Name> {
5
+ readonly name: "qpath";
6
+ static createFromUnitContext(unitContext: UnitContext, externalContext: PointsPathFormDataProviderExternalContext): QPathFormDataManager;
7
+ }
8
+ export {};
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const PointsPathFormDataProvider_1 = __importDefault(require("./PointsPathFormDataProvider"));
7
+ class QPathFormDataManager extends PointsPathFormDataProvider_1.default {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.name = "qpath";
11
+ }
12
+ static createFromUnitContext(unitContext, externalContext) {
13
+ const contextItem = this.findContextItem(unitContext, "qpath");
14
+ return new QPathFormDataManager(contextItem, externalContext);
15
+ }
16
+ }
17
+ exports.default = QPathFormDataManager;
@@ -0,0 +1,75 @@
1
+ import { type ContextItemSchema } from "@mat3ra/esse/dist/js/types";
2
+ export type UnitContext = ContextItemSchema[];
3
+ export type ContextName = ContextItemSchema["name"];
4
+ export type ContextExtraData = ContextItemSchema["extraData"];
5
+ export type ContextData = ContextItemSchema["data"];
6
+ export type ContextItem<D extends ContextData = ContextData, ED extends ContextExtraData = ContextExtraData> = {
7
+ data?: D;
8
+ extraData?: ED;
9
+ isEdited?: boolean;
10
+ };
11
+ /** Context item with template-facing `data` (may be a superset of persisted `S["data"]`). */
12
+ export type ContextItemForRendering<S extends ContextItemSchema = ContextItemSchema, R = S["data"]> = Omit<S, "data"> & {
13
+ data: R;
14
+ };
15
+ export type Domain = "executable" | "important";
16
+ export type EntityName = "unit" | "subworkflow";
17
+ /** Minimal bound for provider external context; the full contract is ExternalContext in context/providers/index.ts */
18
+ export type BaseExternalContext = object;
19
+ /**
20
+ * Context providers expose three data layers. Keep them separate.
21
+ *
22
+ * 1. Persistent data — user input / defaults. Stored in the DB as the context item's `data`,
23
+ * and bound to RJSForm as `formData`.
24
+ * API: `getData()` / `setData(data)` / `getContextItemData()`
25
+ *
26
+ * 2. Patched persistent (rendering) data — persistent data plus fields derived from external
27
+ * context (material, application, …) that must NOT be stored or shown in the form.
28
+ * Default = identity, override `patchForRendering` when the template needs extra fields.
29
+ * API: `getDataForRendering()` / `getContextItemDataForRendering()`
30
+ * If the rendering shape is a proper superset of the persistent shape, declare it via the
31
+ * third generic `DataForRendering` and pair with a dedicated ESSE schema (see
32
+ * `PointsPathFormDataProvider` + `points_path_data_provider_rendering.json`).
33
+ *
34
+ * 3. Full rendering context — `{ ...patchedItemByName, ...externalContext }` fed to Jinja.
35
+ * Built by `ExecutionUnit.render` from `getContextItemDataForRendering()` results.
36
+ *
37
+ * Rules:
38
+ * - Never bake derived fields into `setData`/`getDefaultData` just to reach templates.
39
+ * - `setData` may normalize legacy payloads to the current persistent schema.
40
+ * - `ExecutionUnit.render` MUST call `getContextItemData()` for `this.context` (DB) and
41
+ * `getContextItemDataForRendering()` for `this.renderingContext` (Jinja) separately.
42
+ *
43
+ * See `.cursor/rules/context-provider-data-layers.mdc` for the full guidance.
44
+ */
45
+ declare abstract class ContextProvider<S extends ContextItemSchema = ContextItemSchema, EC extends BaseExternalContext = BaseExternalContext,
46
+ /** Data passed to templates; defaults to persisted `S["data"]` (identity `patchForRendering`). */
47
+ DataForRendering = S["data"]> {
48
+ abstract name: S["name"];
49
+ abstract readonly domain: Domain;
50
+ abstract readonly entityName: EntityName;
51
+ protected abstract getDefaultData(): S["data"];
52
+ protected data?: S["data"];
53
+ /** Seeded from persisted context; material providers refresh via `updateMaterialHash()`. */
54
+ extraData?: S["extraData"];
55
+ readonly externalContext: EC;
56
+ isEdited: boolean;
57
+ constructor(contextItem: Partial<S>, externalContext: EC);
58
+ setIsEdited(isEdited: boolean): void;
59
+ getData(): S["data"];
60
+ setData(data: S["data"]): void;
61
+ /**
62
+ * Derive template-facing `data` from persisted `data`. Override when the template needs fields
63
+ * that must not be stored (e.g. coordinates from symmetry point names + lattice).
64
+ */
65
+ protected patchForRendering(data: S["data"]): DataForRendering;
66
+ getDataForRendering(): DataForRendering;
67
+ getContextItemData(): S;
68
+ getContextItemDataForRendering(): ContextItemForRendering<S, DataForRendering>;
69
+ /**
70
+ * Helper method to find a context item from a unit context array by name.
71
+ * Returns a partial schema object that can be safely passed to constructors.
72
+ */
73
+ protected static findContextItem<S extends ContextItemSchema>(unitContext: UnitContext, contextName: ContextName): Partial<S>;
74
+ }
75
+ export default ContextProvider;
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const utils_1 = require("@mat3ra/utils");
4
+ /**
5
+ * Context providers expose three data layers. Keep them separate.
6
+ *
7
+ * 1. Persistent data — user input / defaults. Stored in the DB as the context item's `data`,
8
+ * and bound to RJSForm as `formData`.
9
+ * API: `getData()` / `setData(data)` / `getContextItemData()`
10
+ *
11
+ * 2. Patched persistent (rendering) data — persistent data plus fields derived from external
12
+ * context (material, application, …) that must NOT be stored or shown in the form.
13
+ * Default = identity, override `patchForRendering` when the template needs extra fields.
14
+ * API: `getDataForRendering()` / `getContextItemDataForRendering()`
15
+ * If the rendering shape is a proper superset of the persistent shape, declare it via the
16
+ * third generic `DataForRendering` and pair with a dedicated ESSE schema (see
17
+ * `PointsPathFormDataProvider` + `points_path_data_provider_rendering.json`).
18
+ *
19
+ * 3. Full rendering context — `{ ...patchedItemByName, ...externalContext }` fed to Jinja.
20
+ * Built by `ExecutionUnit.render` from `getContextItemDataForRendering()` results.
21
+ *
22
+ * Rules:
23
+ * - Never bake derived fields into `setData`/`getDefaultData` just to reach templates.
24
+ * - `setData` may normalize legacy payloads to the current persistent schema.
25
+ * - `ExecutionUnit.render` MUST call `getContextItemData()` for `this.context` (DB) and
26
+ * `getContextItemDataForRendering()` for `this.renderingContext` (Jinja) separately.
27
+ *
28
+ * See `.cursor/rules/context-provider-data-layers.mdc` for the full guidance.
29
+ */
30
+ class ContextProvider {
31
+ constructor(contextItem, externalContext) {
32
+ this.externalContext = externalContext;
33
+ this.isEdited = contextItem.isEdited || false;
34
+ if (contextItem.data !== undefined) {
35
+ this.data = utils_1.Utils.clone.deepClone(contextItem.data);
36
+ }
37
+ if (contextItem.extraData !== undefined) {
38
+ this.extraData = utils_1.Utils.clone.deepClone(contextItem.extraData);
39
+ }
40
+ }
41
+ setIsEdited(isEdited) {
42
+ this.isEdited = isEdited;
43
+ }
44
+ getData() {
45
+ if (this.data !== undefined) {
46
+ return utils_1.Utils.clone.deepClone(this.data);
47
+ }
48
+ return this.getDefaultData();
49
+ }
50
+ setData(data) {
51
+ this.data = utils_1.Utils.clone.deepClone(data);
52
+ }
53
+ /**
54
+ * Derive template-facing `data` from persisted `data`. Override when the template needs fields
55
+ * that must not be stored (e.g. coordinates from symmetry point names + lattice).
56
+ */
57
+ // eslint-disable-next-line class-methods-use-this
58
+ patchForRendering(data) {
59
+ return data;
60
+ }
61
+ getDataForRendering() {
62
+ return this.patchForRendering(this.getData());
63
+ }
64
+ getContextItemData() {
65
+ return {
66
+ name: this.name,
67
+ isEdited: this.isEdited,
68
+ data: this.getData(),
69
+ extraData: this.extraData,
70
+ };
71
+ }
72
+ getContextItemDataForRendering() {
73
+ return {
74
+ ...this.getContextItemData(),
75
+ data: this.getDataForRendering(),
76
+ };
77
+ }
78
+ /**
79
+ * Helper method to find a context item from a unit context array by name.
80
+ * Returns a partial schema object that can be safely passed to constructors.
81
+ */
82
+ static findContextItem(unitContext, contextName) {
83
+ const item = unitContext.find((item) => item.name === contextName);
84
+ return item || {};
85
+ }
86
+ }
87
+ exports.default = ContextProvider;
@@ -0,0 +1,16 @@
1
+ import type { JSONSchema } from "@mat3ra/esse/dist/js/esse/utils";
2
+ import type { ContextItemSchema } from "@mat3ra/esse/dist/js/types";
3
+ import ContextProvider from "./ContextProvider";
4
+ export interface JinjaExternalContext {
5
+ isUsingJinjaVariables?: boolean;
6
+ }
7
+ /**
8
+ * @summary Provides jsonSchema only.
9
+ */
10
+ declare abstract class JSONSchemaDataProvider<S extends ContextItemSchema = ContextItemSchema, EC extends JinjaExternalContext = JinjaExternalContext, DataForRendering = S["data"]> extends ContextProvider<S, EC, DataForRendering> {
11
+ abstract readonly jsonSchema: JSONSchema;
12
+ readonly entityName: "unit";
13
+ isUsingJinjaVariables: boolean;
14
+ constructor(contextItem: Partial<S>, externalContext: EC);
15
+ }
16
+ export default JSONSchemaDataProvider;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const ContextProvider_1 = __importDefault(require("./ContextProvider"));
7
+ /**
8
+ * @summary Provides jsonSchema only.
9
+ */
10
+ class JSONSchemaDataProvider extends ContextProvider_1.default {
11
+ constructor(contextItem, externalContext) {
12
+ super(contextItem, externalContext);
13
+ this.entityName = "unit";
14
+ this.isUsingJinjaVariables = Boolean(externalContext === null || externalContext === void 0 ? void 0 : externalContext.isUsingJinjaVariables);
15
+ }
16
+ }
17
+ exports.default = JSONSchemaDataProvider;
@@ -0,0 +1,19 @@
1
+ import type { ContextItemSchema } from "@mat3ra/esse/dist/js/types";
2
+ import type { UiSchema } from "react-jsonschema-form";
3
+ import JSONSchemaDataProvider, { type JinjaExternalContext } from "./JSONSchemaDataProvider";
4
+ /**
5
+ * @summary Provides jsonSchema and uiSchema for generating react-jsonschema-form
6
+ * See https://github.com/mozilla-services/react-jsonschema-form for Form UI.
7
+ * Form generation example:
8
+ * ```
9
+ * <Form schema={provider.jsonSchema}
10
+ * uiSchema={provider.uiSchema}
11
+ * formData={provider.getData(unit.important)} />
12
+ * ```
13
+ */
14
+ declare abstract class JSONSchemaFormDataProvider<S extends ContextItemSchema = ContextItemSchema, EC extends JinjaExternalContext = JinjaExternalContext, DataForRendering = S["data"]> extends JSONSchemaDataProvider<S, EC, DataForRendering> {
15
+ fields: object;
16
+ protected abstract uiSchema: UiSchema;
17
+ get uiSchemaStyled(): UiSchema;
18
+ }
19
+ export default JSONSchemaFormDataProvider;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const JSONSchemaDataProvider_1 = __importDefault(require("./JSONSchemaDataProvider"));
7
+ /**
8
+ * @summary Provides jsonSchema and uiSchema for generating react-jsonschema-form
9
+ * See https://github.com/mozilla-services/react-jsonschema-form for Form UI.
10
+ * Form generation example:
11
+ * ```
12
+ * <Form schema={provider.jsonSchema}
13
+ * uiSchema={provider.uiSchema}
14
+ * formData={provider.getData(unit.important)} />
15
+ * ```
16
+ */
17
+ class JSONSchemaFormDataProvider extends JSONSchemaDataProvider_1.default {
18
+ constructor() {
19
+ super(...arguments);
20
+ this.fields = {};
21
+ }
22
+ get uiSchemaStyled() {
23
+ return Object.fromEntries(Object.entries(this.uiSchema).map(([key, value]) => [
24
+ key,
25
+ {
26
+ ...value,
27
+ classNames: `${value.classNames || ""}`,
28
+ },
29
+ ]));
30
+ }
31
+ }
32
+ exports.default = JSONSchemaFormDataProvider;
@@ -0,0 +1,26 @@
1
+ import type { InputContextItemSchema, QENEBContextProviderSchema } from "@mat3ra/esse/dist/js/types";
2
+ import type { JSONSchema7 } from "json-schema";
3
+ import { type MaterialContextMixin, type MaterialExternalContext } from "../../../mixins/MaterialContextMixin";
4
+ import { type MaterialsContextMixin, type MaterialsExternalContext } from "../../../mixins/MaterialsContextMixin";
5
+ import { type MaterialsSetContextMixin, type MaterialsSetExternalContext } from "../../../mixins/MaterialsSetContextMixin";
6
+ import type { UnitContext } from "../../base/ContextProvider";
7
+ import JSONSchemaDataProvider, { type JinjaExternalContext } from "../../base/JSONSchemaDataProvider";
8
+ import { type JobExternalContext, type MethodDataExternalContext, type WorkflowExternalContext } from "./QEPWXInputDataManager";
9
+ type Data = QENEBContextProviderSchema;
10
+ type Schema = InputContextItemSchema & {
11
+ data: Data;
12
+ };
13
+ type ExternalContext = JinjaExternalContext & WorkflowExternalContext & JobExternalContext & MaterialsExternalContext & MethodDataExternalContext & MaterialsSetExternalContext & MaterialExternalContext;
14
+ interface QENEBInputDataManager extends MaterialContextMixin, MaterialsContextMixin, MaterialsSetContextMixin {
15
+ }
16
+ declare class QENEBInputDataManager extends JSONSchemaDataProvider<Schema, ExternalContext> {
17
+ readonly name: "input";
18
+ readonly domain: "executable";
19
+ readonly entityName: "unit";
20
+ isEdited: boolean;
21
+ static createFromUnitContext(unitContext: UnitContext, externalContext: ExternalContext): QENEBInputDataManager;
22
+ readonly jsonSchema: JSONSchema7;
23
+ constructor(config: Partial<Schema>, externalContext: ExternalContext);
24
+ getDefaultData(): Data;
25
+ }
26
+ export default QENEBInputDataManager;
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const JSONSchemasInterface_1 = __importDefault(require("@mat3ra/esse/dist/js/esse/JSONSchemasInterface"));
7
+ const MaterialContextMixin_1 = __importDefault(require("../../../mixins/MaterialContextMixin"));
8
+ const MaterialsContextMixin_1 = __importDefault(require("../../../mixins/MaterialsContextMixin"));
9
+ const MaterialsSetContextMixin_1 = __importDefault(require("../../../mixins/MaterialsSetContextMixin"));
10
+ const JSONSchemaDataProvider_1 = __importDefault(require("../../base/JSONSchemaDataProvider"));
11
+ const QEPWXInputDataManager_1 = __importDefault(require("./QEPWXInputDataManager"));
12
+ const jsonSchemaId = "context-providers-directory/by-application/qe-neb-context-provider";
13
+ class QENEBInputDataManager extends JSONSchemaDataProvider_1.default {
14
+ static createFromUnitContext(unitContext, externalContext) {
15
+ const contextItem = this.findContextItem(unitContext, "input");
16
+ return new QENEBInputDataManager(contextItem, externalContext);
17
+ }
18
+ constructor(config, externalContext) {
19
+ super(config, externalContext);
20
+ this.name = "input";
21
+ this.domain = "executable";
22
+ this.entityName = "unit";
23
+ this.isEdited = false;
24
+ this.initMaterialsContextMixin(externalContext);
25
+ this.initMaterialContextMixin(externalContext);
26
+ this.initMaterialsSetContextMixin(externalContext);
27
+ const jsonSchema = JSONSchemasInterface_1.default.getSchemaById(jsonSchemaId);
28
+ if (!jsonSchema) {
29
+ throw new Error("Failed to get JSON schema");
30
+ }
31
+ this.jsonSchema = jsonSchema;
32
+ }
33
+ getDefaultData() {
34
+ const PWXContexts = this.sortMaterialsByIndexInSet(this.materials).map((material) => {
35
+ return new QEPWXInputDataManager_1.default({}, { ...this.externalContext, material }).getData();
36
+ });
37
+ const { ATOMIC_POSITIONS,
38
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
39
+ ATOMIC_POSITIONS_WITHOUT_CONSTRAINTS: _, ...rest } = PWXContexts[0];
40
+ return {
41
+ ...rest,
42
+ FIRST_IMAGE: ATOMIC_POSITIONS,
43
+ LAST_IMAGE: PWXContexts[PWXContexts.length - 1].ATOMIC_POSITIONS,
44
+ INTERMEDIATE_IMAGES: PWXContexts.slice(1, PWXContexts.length - 1).map((data) => {
45
+ return data.ATOMIC_POSITIONS;
46
+ }),
47
+ contextProviderName: "qe-neb",
48
+ };
49
+ }
50
+ }
51
+ (0, MaterialContextMixin_1.default)(QENEBInputDataManager.prototype);
52
+ (0, MaterialsContextMixin_1.default)(QENEBInputDataManager.prototype);
53
+ (0, MaterialsSetContextMixin_1.default)(QENEBInputDataManager.prototype);
54
+ exports.default = QENEBInputDataManager;
@@ -0,0 +1,78 @@
1
+ import type { BaseMethod, InputContextItemSchema, QEPwxContextProviderSchema } from "@mat3ra/esse/dist/js/types";
2
+ import type { AtomicElementValue } from "@mat3ra/made/dist/js/basis/elements";
3
+ import type { JSONSchema7 } from "json-schema";
4
+ import { type MaterialContextMixin, type MaterialExternalContext } from "../../../mixins/MaterialContextMixin";
5
+ import { type MaterialsContextMixin, type MaterialsExternalContext } from "../../../mixins/MaterialsContextMixin";
6
+ import type { UnitContext } from "../../base/ContextProvider";
7
+ import JSONSchemaDataProvider, { type JinjaExternalContext } from "../../base/JSONSchemaDataProvider";
8
+ type MethodData = BaseMethod["data"] & {
9
+ pseudo?: {
10
+ element: AtomicElementValue;
11
+ filename?: string;
12
+ path?: string;
13
+ }[];
14
+ };
15
+ export type MethodDataExternalContext = {
16
+ methodData?: MethodData;
17
+ };
18
+ export type JobExternalContext = {
19
+ jobHasParent: boolean;
20
+ };
21
+ export type WorkflowExternalContext = {
22
+ workflowHasRelaxation: boolean;
23
+ };
24
+ type Data = QEPwxContextProviderSchema;
25
+ type Schema = InputContextItemSchema & {
26
+ data: Data;
27
+ };
28
+ type ExternalContext = JinjaExternalContext & WorkflowExternalContext & MaterialExternalContext & JobExternalContext & MethodDataExternalContext & MaterialsExternalContext;
29
+ interface QEPWXInputDataManager extends MaterialContextMixin, MaterialsContextMixin {
30
+ }
31
+ declare class QEPWXInputDataManager extends JSONSchemaDataProvider<Schema, ExternalContext> {
32
+ readonly name: "input";
33
+ readonly domain: "executable";
34
+ readonly entityName: "unit";
35
+ isEdited: boolean;
36
+ methodData?: MethodData;
37
+ jobHasParent: boolean;
38
+ workflowHasRelaxation: boolean;
39
+ static createFromUnitContext(unitContext: UnitContext, externalContext: ExternalContext): QEPWXInputDataManager;
40
+ readonly jsonSchema: JSONSchema7;
41
+ constructor(config: Partial<Schema>, externalContext: ExternalContext);
42
+ private buildQEPWXContext;
43
+ getDefaultData(): {
44
+ perMaterial: QEPwxContextProviderSchema[];
45
+ IBRAV: number;
46
+ RESTART_MODE: "from_scratch" | "restart";
47
+ ATOMIC_SPECIES: {
48
+ X: string;
49
+ Mass_X: number;
50
+ PseudoPot_X: string;
51
+ }[];
52
+ ATOMIC_SPECIES_WITH_LABELS: {
53
+ X: string;
54
+ Mass_X: number;
55
+ PseudoPot_X: string;
56
+ }[];
57
+ NAT: number;
58
+ NTYP: number;
59
+ NTYP_WITH_LABELS: number;
60
+ ATOMIC_POSITIONS: {
61
+ X?: string;
62
+ x: number;
63
+ y: number;
64
+ z: number;
65
+ "if_pos(1)"?: number;
66
+ "if_pos(2)"?: number;
67
+ "if_pos(3)"?: number;
68
+ }[];
69
+ ATOMIC_POSITIONS_WITHOUT_CONSTRAINTS: string;
70
+ CELL_PARAMETERS: {
71
+ v1?: [number, number, number];
72
+ v2?: [number, number, number];
73
+ v3?: [number, number, number];
74
+ };
75
+ contextProviderName: "qe-pwx";
76
+ };
77
+ }
78
+ export default QEPWXInputDataManager;