@mat3ra/wode 2026.4.9-0 → 2026.5.29-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (361) hide show
  1. package/.babelrc +1 -1
  2. package/dist/js/Subworkflow.d.ts +714 -0
  3. package/dist/js/Subworkflow.js +397 -0
  4. package/dist/js/Workflow.d.ts +82 -0
  5. package/dist/js/Workflow.js +286 -0
  6. package/dist/js/WorkflowDesignerMaterial.d.ts +21 -0
  7. package/dist/js/WorkflowDesignerMaterial.js +26 -0
  8. package/dist/js/context/mixins/ApplicationContextMixin.d.ts +10 -0
  9. package/dist/js/context/mixins/ApplicationContextMixin.js +10 -17
  10. package/dist/js/context/mixins/MaterialContextMixin.d.ts +18 -0
  11. package/dist/js/context/mixins/MaterialContextMixin.js +14 -38
  12. package/dist/js/context/mixins/MaterialsContextMixin.d.ts +10 -0
  13. package/dist/js/context/mixins/MaterialsContextMixin.js +11 -17
  14. package/dist/js/context/mixins/MaterialsSetContextMixin.d.ts +14 -0
  15. package/dist/js/context/mixins/MaterialsSetContextMixin.js +21 -23
  16. package/dist/js/context/providers/BoundaryConditionsFormDataManager.d.ts +30 -0
  17. package/dist/js/context/providers/BoundaryConditionsFormDataManager.js +62 -0
  18. package/dist/js/context/providers/CollinearMagnetizationDataManager.d.ts +42 -0
  19. package/dist/js/context/providers/CollinearMagnetizationDataManager.js +101 -0
  20. package/dist/js/context/providers/Hubbard/HubbardContextManagerLegacy.d.ts +29 -0
  21. package/dist/js/context/providers/Hubbard/HubbardContextManagerLegacy.js +69 -0
  22. package/dist/js/context/providers/Hubbard/HubbardContextProvider.d.ts +20 -0
  23. package/dist/js/context/providers/Hubbard/HubbardContextProvider.js +47 -0
  24. package/dist/js/context/providers/Hubbard/HubbardJContextManager.d.ts +22 -0
  25. package/dist/js/context/providers/Hubbard/HubbardJContextManager.js +61 -0
  26. package/dist/js/context/providers/Hubbard/HubbardUContextManager.d.ts +22 -0
  27. package/dist/js/context/providers/Hubbard/HubbardUContextManager.js +57 -0
  28. package/dist/js/context/providers/Hubbard/HubbardVContextManager.d.ts +22 -0
  29. package/dist/js/context/providers/Hubbard/HubbardVContextManager.js +79 -0
  30. package/dist/js/context/providers/IonDynamicsDataManager.d.ts +27 -0
  31. package/dist/js/context/providers/IonDynamicsDataManager.js +48 -0
  32. package/dist/js/context/providers/MLSettingsDataManager.d.ts +24 -0
  33. package/dist/js/context/providers/MLSettingsDataManager.js +42 -0
  34. package/dist/js/context/providers/MLTrainTestSplitDataManager.d.ts +23 -0
  35. package/dist/js/context/providers/MLTrainTestSplitDataManager.js +40 -0
  36. package/dist/js/context/providers/NEBFormDataManager.d.ts +23 -0
  37. package/dist/js/context/providers/NEBFormDataManager.js +39 -0
  38. package/dist/js/context/providers/NonCollinearMagnetizationDataManager.d.ts +78 -0
  39. package/dist/js/context/providers/NonCollinearMagnetizationDataManager.js +181 -0
  40. package/dist/js/context/providers/PlanewaveCutoffDataManager.d.ts +26 -0
  41. package/dist/js/context/providers/PlanewaveCutoffDataManager.js +69 -0
  42. package/dist/js/context/providers/PointsGrid/IGridFormDataManager.d.ts +13 -0
  43. package/dist/js/context/providers/PointsGrid/IGridFormDataManager.js +23 -0
  44. package/dist/js/context/providers/PointsGrid/KGridFormDataManager.d.ts +15 -0
  45. package/dist/js/context/providers/PointsGrid/KGridFormDataManager.js +30 -0
  46. package/dist/js/context/providers/PointsGrid/PointsGridFormDataProvider.d.ts +171 -0
  47. package/dist/js/context/providers/PointsGrid/PointsGridFormDataProvider.js +270 -0
  48. package/dist/js/context/providers/PointsGrid/QGridFormDataManager.d.ts +13 -0
  49. package/dist/js/context/providers/PointsGrid/QGridFormDataManager.js +23 -0
  50. package/dist/js/context/providers/PointsPath/ExplicitKPath2PIBAFormDataManager.d.ts +10 -0
  51. package/dist/js/context/providers/PointsPath/ExplicitKPath2PIBAFormDataManager.js +19 -0
  52. package/dist/js/context/providers/PointsPath/ExplicitKPathFormDataManager.d.ts +9 -0
  53. package/dist/js/context/providers/PointsPath/ExplicitKPathFormDataManager.js +18 -0
  54. package/dist/js/context/providers/PointsPath/IPathFormDataManager.d.ts +8 -0
  55. package/dist/js/context/providers/PointsPath/IPathFormDataManager.js +17 -0
  56. package/dist/js/context/providers/PointsPath/KPathFormDataManager.d.ts +8 -0
  57. package/dist/js/context/providers/PointsPath/KPathFormDataManager.js +17 -0
  58. package/dist/js/context/providers/PointsPath/PointsPathFormDataProvider.d.ts +40 -0
  59. package/dist/js/context/providers/PointsPath/PointsPathFormDataProvider.js +125 -0
  60. package/dist/js/context/providers/PointsPath/QPathFormDataManager.d.ts +8 -0
  61. package/dist/js/context/providers/PointsPath/QPathFormDataManager.js +17 -0
  62. package/dist/js/context/providers/base/ContextProvider.d.ts +75 -0
  63. package/dist/js/context/providers/base/ContextProvider.js +87 -0
  64. package/dist/js/context/providers/base/JSONSchemaDataProvider.d.ts +16 -0
  65. package/dist/js/context/providers/base/JSONSchemaDataProvider.js +17 -0
  66. package/dist/js/context/providers/base/JSONSchemaFormDataProvider.d.ts +19 -0
  67. package/dist/js/context/providers/base/JSONSchemaFormDataProvider.js +32 -0
  68. package/dist/js/context/providers/by_application/espresso/QENEBInputDataManager.d.ts +26 -0
  69. package/dist/js/context/providers/by_application/espresso/QENEBInputDataManager.js +54 -0
  70. package/dist/js/context/providers/by_application/espresso/QEPWXInputDataManager.d.ts +78 -0
  71. package/dist/js/context/providers/by_application/espresso/QEPWXInputDataManager.js +104 -0
  72. package/dist/js/context/providers/by_application/nwchem/NWChemInputDataManager.d.ts +36 -0
  73. package/dist/js/context/providers/by_application/nwchem/NWChemInputDataManager.js +58 -0
  74. package/dist/js/context/providers/by_application/vasp/VASPInputDataManager.d.ts +36 -0
  75. package/dist/js/context/providers/by_application/vasp/VASPInputDataManager.js +56 -0
  76. package/dist/js/context/providers/by_application/vasp/VASPNEBInputDataManager.d.ts +30 -0
  77. package/dist/js/context/providers/by_application/vasp/VASPNEBInputDataManager.js +50 -0
  78. package/dist/js/context/providers/index.d.ts +92 -0
  79. package/dist/js/context/providers/index.js +107 -0
  80. package/dist/js/context/providers/settings.d.ts +7 -0
  81. package/dist/js/context/providers/settings.js +11 -33
  82. package/dist/js/convergence/ConvergenceParameter.d.ts +26 -0
  83. package/dist/js/convergence/ConvergenceParameter.js +13 -0
  84. package/dist/js/convergence/NonUniformKGridConvergence.d.ts +12 -0
  85. package/dist/js/convergence/NonUniformKGridConvergence.js +31 -0
  86. package/dist/js/convergence/UniformKGridConvergence.d.ts +8 -0
  87. package/dist/js/convergence/UniformKGridConvergence.js +22 -0
  88. package/dist/js/convergence/factory.d.ts +8 -0
  89. package/dist/js/convergence/factory.js +18 -0
  90. package/dist/js/enums.d.ts +62 -0
  91. package/dist/js/enums.js +66 -61
  92. package/dist/js/generated/AssertionUnitSchemaMixin.d.ts +5 -0
  93. package/dist/js/generated/AssertionUnitSchemaMixin.js +27 -0
  94. package/dist/js/generated/AssignmentUnitSchemaMixin.d.ts +5 -0
  95. package/dist/js/generated/AssignmentUnitSchemaMixin.js +33 -0
  96. package/dist/js/generated/BaseUnitSchemaMixin.d.ts +5 -0
  97. package/dist/js/generated/BaseUnitSchemaMixin.js +57 -0
  98. package/dist/js/generated/ConditionUnitSchemaMixin.d.ts +5 -0
  99. package/dist/js/generated/ConditionUnitSchemaMixin.js +51 -0
  100. package/dist/js/generated/ExecutionUnitInputSchemaMixin.d.ts +5 -0
  101. package/dist/js/generated/ExecutionUnitInputSchemaMixin.js +27 -0
  102. package/dist/js/generated/ExecutionUnitSchemaMixin.d.ts +5 -0
  103. package/dist/js/generated/ExecutionUnitSchemaMixin.js +45 -0
  104. package/dist/js/generated/IOUnitSchemaMixin.d.ts +5 -0
  105. package/dist/js/generated/IOUnitSchemaMixin.js +33 -0
  106. package/dist/js/generated/MapUnitSchemaMixin.d.ts +5 -0
  107. package/dist/js/generated/MapUnitSchemaMixin.js +27 -0
  108. package/dist/js/generated/ReduceUnitSchemaMixin.d.ts +5 -0
  109. package/dist/js/generated/ReduceUnitSchemaMixin.js +27 -0
  110. package/dist/js/generated/StatusSchemaMixin.d.ts +5 -0
  111. package/dist/js/generated/StatusSchemaMixin.js +21 -0
  112. package/dist/js/generated/SubworkflowSchemaMixin.d.ts +5 -0
  113. package/dist/js/generated/SubworkflowSchemaMixin.js +51 -0
  114. package/dist/js/generated/SubworkflowUnitSchemaMixin.d.ts +5 -0
  115. package/dist/js/generated/SubworkflowUnitSchemaMixin.js +15 -0
  116. package/dist/js/generated/WorkflowSchemaMixin.d.ts +5 -0
  117. package/dist/js/generated/WorkflowSchemaMixin.js +51 -0
  118. package/dist/js/index.d.ts +13 -0
  119. package/dist/js/index.js +66 -176
  120. package/dist/js/units/AssertionUnit.d.ts +20 -0
  121. package/dist/js/units/AssertionUnit.js +33 -0
  122. package/dist/js/units/AssignmentUnit.d.ts +17 -0
  123. package/dist/js/units/AssignmentUnit.js +35 -0
  124. package/dist/js/units/BaseUnit.d.ts +39 -0
  125. package/dist/js/units/BaseUnit.js +70 -0
  126. package/dist/js/units/ConditionUnit.d.ts +17 -0
  127. package/dist/js/units/ConditionUnit.js +37 -0
  128. package/dist/js/units/ExecutionUnit.d.ts +115 -0
  129. package/dist/js/units/ExecutionUnit.js +181 -0
  130. package/dist/js/units/ExecutionUnitInput.d.ts +22 -0
  131. package/dist/js/units/ExecutionUnitInput.js +47 -0
  132. package/dist/js/units/IOUnit.d.ts +16 -0
  133. package/dist/js/units/IOUnit.js +31 -0
  134. package/dist/js/units/MapUnit.d.ts +34 -0
  135. package/dist/js/units/MapUnit.js +46 -0
  136. package/dist/js/units/ReduceUnit.d.ts +16 -0
  137. package/dist/js/units/ReduceUnit.js +30 -0
  138. package/dist/js/units/SubworkflowUnit.d.ts +16 -0
  139. package/dist/js/units/SubworkflowUnit.js +28 -0
  140. package/dist/js/units/factory.d.ts +31 -0
  141. package/dist/js/units/factory.js +65 -47
  142. package/dist/js/units/index.d.ts +14 -0
  143. package/dist/js/units/index.js +25 -81
  144. package/dist/js/units/mixins/RuntimeItemsUILogicMixin.d.ts +26 -0
  145. package/dist/js/units/mixins/RuntimeItemsUILogicMixin.js +50 -0
  146. package/dist/js/utils/baseUnits.d.ts +2 -0
  147. package/dist/js/utils/baseUnits.js +11 -0
  148. package/dist/js/utils/index.d.ts +3 -0
  149. package/dist/js/utils/index.js +39 -0
  150. package/dist/js/utils/subworkflow.d.ts +2 -0
  151. package/dist/js/utils/subworkflow.js +29 -0
  152. package/dist/js/utils/underscoreStringSlugify.d.ts +6 -0
  153. package/dist/js/utils/underscoreStringSlugify.js +32 -0
  154. package/dist/js/utils/units.d.ts +4 -0
  155. package/dist/js/utils/units.js +16 -0
  156. package/dist/js/utils/workflow.d.ts +9 -0
  157. package/dist/js/utils/workflow.js +67 -0
  158. package/dist/js/utils.js +2 -7
  159. package/dist/js/workflows/default.d.ts +3 -0
  160. package/dist/js/workflows/default.js +43 -39
  161. package/dist/js/workflows/workflow.d.ts +4404 -0
  162. package/dist/js/workflows/workflow.js +310 -306
  163. package/package.json +56 -44
  164. package/src/js/Subworkflow.ts +532 -0
  165. package/src/js/Workflow.ts +390 -0
  166. package/src/js/context/mixins/ApplicationContextMixin.ts +21 -0
  167. package/src/js/context/mixins/MaterialContextMixin.ts +35 -0
  168. package/src/js/context/mixins/MaterialsContextMixin.ts +24 -0
  169. package/src/js/context/mixins/MaterialsSetContextMixin.ts +42 -0
  170. package/src/js/context/providers/BoundaryConditionsFormDataManager.ts +88 -0
  171. package/src/js/context/providers/CollinearMagnetizationDataManager.ts +140 -0
  172. package/src/js/context/providers/Hubbard/HubbardContextManagerLegacy.ts +93 -0
  173. package/src/js/context/providers/Hubbard/HubbardContextProvider.ts +85 -0
  174. package/src/js/context/providers/Hubbard/HubbardJContextManager.ts +82 -0
  175. package/src/js/context/providers/Hubbard/HubbardUContextManager.ts +78 -0
  176. package/src/js/context/providers/Hubbard/HubbardVContextManager.ts +100 -0
  177. package/src/js/context/providers/IonDynamicsDataManager.ts +64 -0
  178. package/src/js/context/providers/MLSettingsDataManager.ts +61 -0
  179. package/src/js/context/providers/MLTrainTestSplitDataManager.ts +59 -0
  180. package/src/js/context/providers/NEBFormDataManager.ts +57 -0
  181. package/src/js/context/providers/NonCollinearMagnetizationDataManager.ts +229 -0
  182. package/src/js/context/providers/PlanewaveCutoffDataManager.ts +110 -0
  183. package/src/js/context/providers/PointsGrid/IGridFormDataManager.ts +36 -0
  184. package/src/js/context/providers/PointsGrid/KGridFormDataManager.ts +46 -0
  185. package/src/js/context/providers/PointsGrid/PointsGridFormDataProvider.ts +371 -0
  186. package/src/js/context/providers/PointsGrid/QGridFormDataManager.ts +36 -0
  187. package/src/js/context/providers/PointsPath/ExplicitKPath2PIBAFormDataManager.ts +26 -0
  188. package/src/js/context/providers/PointsPath/ExplicitKPathFormDataManager.ts +24 -0
  189. package/src/js/context/providers/PointsPath/IPathFormDataManager.ts +22 -0
  190. package/src/js/context/providers/PointsPath/KPathFormDataManager.ts +22 -0
  191. package/src/js/context/providers/PointsPath/PointsPathFormDataProvider.ts +192 -0
  192. package/src/js/context/providers/PointsPath/QPathFormDataManager.ts +22 -0
  193. package/src/js/context/providers/base/ContextProvider.ts +150 -0
  194. package/src/js/context/providers/base/JSONSchemaDataProvider.ts +31 -0
  195. package/src/js/context/providers/base/JSONSchemaFormDataProvider.ts +38 -0
  196. package/src/js/context/providers/by_application/espresso/QENEBInputDataManager.ts +107 -0
  197. package/src/js/context/providers/by_application/espresso/QEPWXInputDataManager.ts +178 -0
  198. package/src/js/context/providers/by_application/nwchem/NWChemInputDataManager.ts +93 -0
  199. package/src/js/context/providers/by_application/vasp/VASPInputDataManager.ts +89 -0
  200. package/src/js/context/providers/by_application/vasp/VASPNEBInputDataManager.ts +92 -0
  201. package/src/js/context/providers/index.ts +155 -0
  202. package/src/js/context/providers/settings.ts +13 -0
  203. package/src/js/convergence/ConvergenceParameter.ts +37 -0
  204. package/src/js/convergence/NonUniformKGridConvergence.ts +38 -0
  205. package/src/js/convergence/UniformKGridConvergence.ts +26 -0
  206. package/src/js/convergence/factory.ts +18 -0
  207. package/src/js/{enums.js → enums.ts} +27 -22
  208. package/src/js/generated/AssertionUnitSchemaMixin.ts +34 -0
  209. package/src/js/generated/AssignmentUnitSchemaMixin.ts +40 -0
  210. package/src/js/generated/BaseUnitSchemaMixin.ts +64 -0
  211. package/src/js/generated/ConditionUnitSchemaMixin.ts +58 -0
  212. package/src/js/generated/ExecutionUnitInputSchemaMixin.ts +36 -0
  213. package/src/js/generated/ExecutionUnitSchemaMixin.ts +52 -0
  214. package/src/js/generated/IOUnitSchemaMixin.ts +40 -0
  215. package/src/js/generated/MapUnitSchemaMixin.ts +34 -0
  216. package/src/js/generated/ReduceUnitSchemaMixin.ts +34 -0
  217. package/src/js/generated/StatusSchemaMixin.ts +28 -0
  218. package/src/js/generated/SubworkflowSchemaMixin.ts +58 -0
  219. package/src/js/generated/SubworkflowUnitSchemaMixin.ts +22 -0
  220. package/src/js/generated/WorkflowSchemaMixin.ts +58 -0
  221. package/src/js/index.ts +44 -0
  222. package/src/js/units/AssertionUnit.ts +49 -0
  223. package/src/js/units/AssignmentUnit.ts +49 -0
  224. package/src/js/units/BaseUnit.ts +117 -0
  225. package/src/js/units/ConditionUnit.ts +52 -0
  226. package/src/js/units/ExecutionUnit.ts +274 -0
  227. package/src/js/units/ExecutionUnitInput.ts +71 -0
  228. package/src/js/units/IOUnit.ts +43 -0
  229. package/src/js/units/MapUnit.ts +59 -0
  230. package/src/js/units/ReduceUnit.ts +46 -0
  231. package/src/js/units/SubworkflowUnit.ts +44 -0
  232. package/src/js/units/factory.ts +131 -0
  233. package/src/js/units/index.ts +27 -0
  234. package/src/js/units/mixins/RuntimeItemsUILogicMixin.ts +81 -0
  235. package/src/js/utils/baseUnits.ts +11 -0
  236. package/src/js/utils/index.ts +3 -0
  237. package/src/js/utils/units.ts +23 -0
  238. package/src/js/utils/workflow.ts +69 -0
  239. package/src/js/workflows/{default.js → default.ts} +8 -1
  240. package/build_workflows.js +0 -65
  241. package/dist/js/context/context.js +0 -49
  242. package/dist/js/context/mixins/JobContextMixin.js +0 -39
  243. package/dist/js/context/mixins/MethodDataContextMixin.js +0 -48
  244. package/dist/js/context/mixins/WorkflowContextMixin.js +0 -28
  245. package/dist/js/context/providers/BoundaryConditionsFormDataProvider.js +0 -84
  246. package/dist/js/context/providers/CollinearMagnetizationContextProvider.js +0 -96
  247. package/dist/js/context/providers/HubbardContextProviderLegacy.js +0 -68
  248. package/dist/js/context/providers/HubbardJContextProvider.js +0 -67
  249. package/dist/js/context/providers/HubbardUContextProvider.js +0 -70
  250. package/dist/js/context/providers/HubbardVContextProvider.js +0 -92
  251. package/dist/js/context/providers/IonDynamicsContextProvider.js +0 -58
  252. package/dist/js/context/providers/MLSettingsContextProvider.js +0 -51
  253. package/dist/js/context/providers/MLTrainTestSplitContextProvider.js +0 -47
  254. package/dist/js/context/providers/NEBFormDataProvider.js +0 -42
  255. package/dist/js/context/providers/NonCollinearMagnetizationContextProvider.js +0 -187
  256. package/dist/js/context/providers/PlanewaveCutoffsContextProvider.js +0 -67
  257. package/dist/js/context/providers/PointsGridFormDataProvider.js +0 -263
  258. package/dist/js/context/providers/PointsPathFormDataProvider.js +0 -147
  259. package/dist/js/context/providers/by_application/ExecutableContextProvider.js +0 -25
  260. package/dist/js/context/providers/by_application/espresso/QENEBContextProvider.js +0 -61
  261. package/dist/js/context/providers/by_application/espresso/QEPWXContextProvider.js +0 -150
  262. package/dist/js/context/providers/by_application/nwchem/NWChemTotalEnergyContextProvider.js +0 -85
  263. package/dist/js/context/providers/by_application/vasp/VASPContextProvider.js +0 -65
  264. package/dist/js/context/providers/by_application/vasp/VASPNEBContextProvider.js +0 -57
  265. package/dist/js/context/providers.js +0 -199
  266. package/dist/js/patch.js +0 -19
  267. package/dist/js/subworkflows/convergence/non_uniform_kgrid.js +0 -31
  268. package/dist/js/subworkflows/convergence/parameter.js +0 -70
  269. package/dist/js/subworkflows/convergence/uniform_kgrid.js +0 -26
  270. package/dist/js/subworkflows/convergence.js +0 -189
  271. package/dist/js/subworkflows/create.js +0 -293
  272. package/dist/js/subworkflows/dynamic/espresso/getQpointIrrep.js +0 -34
  273. package/dist/js/subworkflows/dynamic/index.js +0 -19
  274. package/dist/js/subworkflows/dynamic/surfaceEnergy.js +0 -67
  275. package/dist/js/subworkflows/index.js +0 -19
  276. package/dist/js/units/assertion.js +0 -37
  277. package/dist/js/units/assignment.js +0 -42
  278. package/dist/js/units/base.js +0 -91
  279. package/dist/js/units/builders/AssertionUnitConfigBuilder.js +0 -34
  280. package/dist/js/units/builders/AssignmentUnitConfigBuilder.js +0 -41
  281. package/dist/js/units/builders/ExecutionUnitConfigBuilder.js +0 -67
  282. package/dist/js/units/builders/IOUnitConfigBuilder.js +0 -54
  283. package/dist/js/units/builders/UnitConfigBuilder.js +0 -85
  284. package/dist/js/units/builders/index.js +0 -18
  285. package/dist/js/units/condition.js +0 -52
  286. package/dist/js/units/execution.js +0 -225
  287. package/dist/js/units/io.js +0 -148
  288. package/dist/js/units/map.js +0 -38
  289. package/dist/js/units/processing.js +0 -41
  290. package/dist/js/units/reduce.js +0 -24
  291. package/dist/js/units/subworkflow.js +0 -23
  292. package/dist/js/workflows/create.js +0 -318
  293. package/dist/js/workflows/index.js +0 -113
  294. package/dist/js/workflows/relaxation.js +0 -38
  295. package/src/js/context/context.js +0 -47
  296. package/src/js/context/mixins/ApplicationContextMixin.js +0 -19
  297. package/src/js/context/mixins/JobContextMixin.js +0 -36
  298. package/src/js/context/mixins/MaterialContextMixin.js +0 -41
  299. package/src/js/context/mixins/MaterialsContextMixin.js +0 -18
  300. package/src/js/context/mixins/MaterialsSetContextMixin.js +0 -24
  301. package/src/js/context/mixins/MethodDataContextMixin.js +0 -48
  302. package/src/js/context/mixins/WorkflowContextMixin.js +0 -25
  303. package/src/js/context/providers/BoundaryConditionsFormDataProvider.js +0 -72
  304. package/src/js/context/providers/CollinearMagnetizationContextProvider.js +0 -105
  305. package/src/js/context/providers/HubbardContextProviderLegacy.js +0 -67
  306. package/src/js/context/providers/HubbardJContextProvider.js +0 -65
  307. package/src/js/context/providers/HubbardUContextProvider.js +0 -95
  308. package/src/js/context/providers/HubbardVContextProvider.js +0 -96
  309. package/src/js/context/providers/IonDynamicsContextProvider.js +0 -44
  310. package/src/js/context/providers/MLSettingsContextProvider.js +0 -45
  311. package/src/js/context/providers/MLTrainTestSplitContextProvider.js +0 -43
  312. package/src/js/context/providers/NEBFormDataProvider.js +0 -33
  313. package/src/js/context/providers/NonCollinearMagnetizationContextProvider.js +0 -179
  314. package/src/js/context/providers/PlanewaveCutoffsContextProvider.js +0 -65
  315. package/src/js/context/providers/PointsGridFormDataProvider.js +0 -271
  316. package/src/js/context/providers/PointsPathFormDataProvider.js +0 -163
  317. package/src/js/context/providers/by_application/ExecutableContextProvider.js +0 -17
  318. package/src/js/context/providers/by_application/espresso/QENEBContextProvider.js +0 -58
  319. package/src/js/context/providers/by_application/espresso/QEPWXContextProvider.js +0 -168
  320. package/src/js/context/providers/by_application/nwchem/NWChemTotalEnergyContextProvider.js +0 -89
  321. package/src/js/context/providers/by_application/vasp/VASPContextProvider.js +0 -58
  322. package/src/js/context/providers/by_application/vasp/VASPNEBContextProvider.js +0 -48
  323. package/src/js/context/providers/settings.js +0 -38
  324. package/src/js/context/providers.js +0 -140
  325. package/src/js/index.js +0 -57
  326. package/src/js/patch.js +0 -12
  327. package/src/js/subworkflows/convergence/enums.js +0 -12
  328. package/src/js/subworkflows/convergence/factory.js +0 -15
  329. package/src/js/subworkflows/convergence/non_uniform_kgrid.js +0 -28
  330. package/src/js/subworkflows/convergence/parameter.js +0 -58
  331. package/src/js/subworkflows/convergence/uniform_kgrid.js +0 -22
  332. package/src/js/subworkflows/convergence.js +0 -196
  333. package/src/js/subworkflows/create.js +0 -220
  334. package/src/js/subworkflows/dynamic/espresso/getQpointIrrep.js +0 -35
  335. package/src/js/subworkflows/dynamic/index.js +0 -8
  336. package/src/js/subworkflows/dynamic/surfaceEnergy.js +0 -124
  337. package/src/js/subworkflows/index.js +0 -2
  338. package/src/js/subworkflows/subworkflow.js +0 -345
  339. package/src/js/units/assertion.js +0 -29
  340. package/src/js/units/assignment.js +0 -34
  341. package/src/js/units/base.js +0 -97
  342. package/src/js/units/builders/AssertionUnitConfigBuilder.js +0 -28
  343. package/src/js/units/builders/AssignmentUnitConfigBuilder.js +0 -36
  344. package/src/js/units/builders/ExecutionUnitConfigBuilder.js +0 -59
  345. package/src/js/units/builders/IOUnitConfigBuilder.js +0 -53
  346. package/src/js/units/builders/UnitConfigBuilder.js +0 -92
  347. package/src/js/units/builders/index.js +0 -15
  348. package/src/js/units/condition.js +0 -47
  349. package/src/js/units/execution.js +0 -267
  350. package/src/js/units/factory.js +0 -53
  351. package/src/js/units/index.js +0 -25
  352. package/src/js/units/io.js +0 -163
  353. package/src/js/units/map.js +0 -33
  354. package/src/js/units/processing.js +0 -39
  355. package/src/js/units/reduce.js +0 -17
  356. package/src/js/units/subworkflow.js +0 -15
  357. package/src/js/utils.js +0 -73
  358. package/src/js/workflows/create.js +0 -227
  359. package/src/js/workflows/index.js +0 -98
  360. package/src/js/workflows/relaxation.js +0 -42
  361. package/src/js/workflows/workflow.js +0 -388
@@ -0,0 +1,140 @@
1
+ import JSONSchemasInterface from "@mat3ra/esse/dist/js/esse/JSONSchemasInterface";
2
+ import type {
3
+ CollinearMagnetizationContextItemSchema,
4
+ CollinearMagnetizationContextProviderSchema,
5
+ } from "@mat3ra/esse/dist/js/types";
6
+ import type { JSONSchema7 } from "json-schema";
7
+
8
+ import materialContextMixin, {
9
+ type MaterialContextMixin,
10
+ type MaterialExternalContext,
11
+ } from "../mixins/MaterialContextMixin";
12
+ import type { UnitContext } from "./base/ContextProvider";
13
+ import JSONSchemaDataProvider, { type JinjaExternalContext } from "./base/JSONSchemaDataProvider";
14
+
15
+ type Data = CollinearMagnetizationContextProviderSchema;
16
+ type Schema = CollinearMagnetizationContextItemSchema;
17
+ type ExternalContext = JinjaExternalContext & MaterialExternalContext;
18
+
19
+ // eslint-disable-next-line @typescript-eslint/no-empty-interface
20
+ interface CollinearMagnetizationDataManager extends MaterialContextMixin {}
21
+
22
+ const defaultData = {
23
+ value: 0.0,
24
+ isTotalMagnetization: false,
25
+ totalMagnetization: 0.0,
26
+ };
27
+
28
+ const jsonSchemaId = "context-providers-directory/collinear-magnetization-context-provider";
29
+
30
+ class CollinearMagnetizationDataManager extends JSONSchemaDataProvider<Schema, ExternalContext> {
31
+ readonly name = "collinearMagnetization" as const;
32
+
33
+ readonly domain = "important" as const;
34
+
35
+ readonly entityName = "unit" as const;
36
+
37
+ static createFromUnitContext(unitContext: UnitContext, externalContext: ExternalContext) {
38
+ const contextItem = this.findContextItem<Schema>(unitContext, "collinearMagnetization");
39
+
40
+ return new CollinearMagnetizationDataManager(contextItem, externalContext);
41
+ }
42
+
43
+ readonly jsonSchema: JSONSchema7;
44
+
45
+ private readonly isTotalMagnetization: boolean;
46
+
47
+ private readonly firstElement: string;
48
+
49
+ private readonly uniqueElementsWithLabels: string[];
50
+
51
+ constructor(contextItem: Partial<Schema>, externalContext: ExternalContext) {
52
+ super(contextItem, externalContext);
53
+ this.initMaterialContextMixin(externalContext);
54
+
55
+ this.uniqueElementsWithLabels = [
56
+ ...new Set(this.material?.Basis?.elementsWithLabelsArray || []),
57
+ ];
58
+
59
+ this.firstElement =
60
+ this.uniqueElementsWithLabels?.length > 0 ? this.uniqueElementsWithLabels[0] : "";
61
+
62
+ this.isTotalMagnetization = this.data?.isTotalMagnetization || false;
63
+
64
+ const jsonSchema = JSONSchemasInterface.getPatchedSchemaById(jsonSchemaId, {
65
+ "properties.startingMagnetization": {
66
+ maxItems: this.uniqueElementsWithLabels.length,
67
+ },
68
+ "properties.startingMagnetization.items.properties.atomicSpecies": {
69
+ enum: this.uniqueElementsWithLabels,
70
+ default: this.firstElement,
71
+ },
72
+ "properties.startingMagnetization.items.properties.value": {
73
+ default: defaultData.value,
74
+ },
75
+ "properties.isTotalMagnetization": {
76
+ default: defaultData.isTotalMagnetization,
77
+ },
78
+ "properties.totalMagnetization": {
79
+ default: defaultData.totalMagnetization,
80
+ },
81
+ });
82
+
83
+ if (!jsonSchema) {
84
+ throw new Error("Failed to get patched JSON schema");
85
+ }
86
+
87
+ this.jsonSchema = jsonSchema;
88
+ }
89
+
90
+ getDefaultData(): Data {
91
+ return {
92
+ startingMagnetization: [
93
+ {
94
+ index: 1,
95
+ atomicSpecies: this.firstElement,
96
+ value: defaultData.value,
97
+ },
98
+ ],
99
+ isTotalMagnetization: defaultData.isTotalMagnetization,
100
+ totalMagnetization: defaultData.totalMagnetization,
101
+ };
102
+ }
103
+
104
+ setData(data: Data) {
105
+ const startingMagnetization = data.startingMagnetization.map((row) => ({
106
+ ...row,
107
+ index: this.uniqueElementsWithLabels.indexOf(row.atomicSpecies) + 1,
108
+ }));
109
+
110
+ super.setData({
111
+ ...data,
112
+ startingMagnetization,
113
+ });
114
+ }
115
+
116
+ get uiSchemaStyled() {
117
+ return {
118
+ startingMagnetization: {
119
+ items: {
120
+ atomicSpecies: {
121
+ "ui:classNames": "col-xs-3",
122
+ },
123
+ value: {
124
+ "ui:classNames": "col-xs-6",
125
+ },
126
+ },
127
+ "ui:readonly": this.isTotalMagnetization,
128
+ },
129
+ isTotalMagnetization: {},
130
+ totalMagnetization: {
131
+ "ui:classNames": "col-xs-6",
132
+ "ui:readonly": !this.isTotalMagnetization,
133
+ },
134
+ };
135
+ }
136
+ }
137
+
138
+ materialContextMixin(CollinearMagnetizationDataManager.prototype);
139
+
140
+ export default CollinearMagnetizationDataManager;
@@ -0,0 +1,93 @@
1
+ import JSONSchemasInterface from "@mat3ra/esse/dist/js/esse/JSONSchemasInterface";
2
+ import type {
3
+ HubbardLegacyContextItemSchema,
4
+ HubbardLegacyContextProviderSchema,
5
+ } from "@mat3ra/esse/dist/js/types";
6
+ import type { JSONSchema7 } from "json-schema";
7
+
8
+ import type { UnitContext } from "../base/ContextProvider";
9
+ import HubbardContextProvider, { type HubbardExternalContext } from "./HubbardContextProvider";
10
+
11
+ type Schema = HubbardLegacyContextItemSchema;
12
+ type Data = HubbardLegacyContextProviderSchema;
13
+
14
+ const defaultHubbardConfig = {
15
+ hubbardUValue: 1.0,
16
+ };
17
+
18
+ const jsonSchemaId = "context-providers-directory/hubbard-legacy-context-provider";
19
+
20
+ export default class HubbardContextManagerLegacy extends HubbardContextProvider<Schema> {
21
+ readonly name = "hubbard_legacy" as const;
22
+
23
+ readonly domain = "important" as const;
24
+
25
+ readonly entityName = "unit" as const;
26
+
27
+ static createFromUnitContext(
28
+ unitContext: UnitContext,
29
+ externalContext: HubbardExternalContext,
30
+ ) {
31
+ const contextItem = this.findContextItem<Schema>(unitContext, "hubbard_legacy");
32
+
33
+ return new HubbardContextManagerLegacy(contextItem, externalContext);
34
+ }
35
+
36
+ readonly jsonSchema: JSONSchema7;
37
+
38
+ readonly uiSchemaStyled = {
39
+ "ui:options": {
40
+ addable: true,
41
+ orderable: false,
42
+ removable: true,
43
+ },
44
+ items: {
45
+ atomicSpeciesIndex: { "ui:readonly": true },
46
+ },
47
+ } as const;
48
+
49
+ constructor(contextItem: Partial<Schema>, externalContext: HubbardExternalContext) {
50
+ super(contextItem, externalContext);
51
+
52
+ const jsonSchema = JSONSchemasInterface.getPatchedSchemaById(jsonSchemaId, {
53
+ "items.properties.atomicSpecies": {
54
+ enum: this.uniqueElementsWithLabels,
55
+ },
56
+ "items.properties.hubbardUValue": {
57
+ default: defaultHubbardConfig.hubbardUValue,
58
+ },
59
+ });
60
+
61
+ if (!jsonSchema) {
62
+ throw new Error("Failed to get patched JSON schema");
63
+ }
64
+
65
+ this.jsonSchema = jsonSchema;
66
+ }
67
+
68
+ getDefaultData(): Data {
69
+ return [
70
+ {
71
+ ...defaultHubbardConfig,
72
+ atomicSpecies: this.firstElement,
73
+ atomicSpeciesIndex: this.uniqueElementsWithLabels?.length > 0 ? 1 : undefined,
74
+ },
75
+ ];
76
+ }
77
+
78
+ setData(data: Data) {
79
+ const hubbardUValues = data.map((row) => {
80
+ const atomicSpeciesIndex =
81
+ this.uniqueElementsWithLabels?.length > 0
82
+ ? this.uniqueElementsWithLabels.indexOf(row.atomicSpecies || "") + 1
83
+ : undefined;
84
+
85
+ return {
86
+ ...row,
87
+ atomicSpeciesIndex,
88
+ };
89
+ }) as Data;
90
+
91
+ super.setData(hubbardUValues);
92
+ }
93
+ }
@@ -0,0 +1,85 @@
1
+ import type { Constructor } from "@mat3ra/code/dist/js/utils/types";
2
+ import type {
3
+ HubbardJContextItemSchema,
4
+ HubbardLegacyContextItemSchema,
5
+ HubbardUContextItemSchema,
6
+ HubbardVContextItemSchema,
7
+ } from "@mat3ra/esse/dist/js/types";
8
+
9
+ import materialContextMixin, {
10
+ type MaterialContextMixin,
11
+ type MaterialExternalContext,
12
+ } from "../../mixins/MaterialContextMixin";
13
+ import JSONSchemaDataProvider, { type JinjaExternalContext } from "../base/JSONSchemaDataProvider";
14
+
15
+ type Schema =
16
+ | HubbardJContextItemSchema
17
+ | HubbardUContextItemSchema
18
+ | HubbardVContextItemSchema
19
+ | HubbardLegacyContextItemSchema;
20
+
21
+ export type HubbardExternalContext = JinjaExternalContext & MaterialExternalContext;
22
+
23
+ type Base = typeof JSONSchemaDataProvider<Schema, HubbardExternalContext> &
24
+ Constructor<MaterialContextMixin>;
25
+
26
+ abstract class HubbardContextProvider<
27
+ S extends Schema,
28
+ EC extends HubbardExternalContext = HubbardExternalContext,
29
+ > extends (JSONSchemaDataProvider as Base) {
30
+ abstract readonly name: S["name"];
31
+
32
+ abstract getDefaultData(): S["data"];
33
+
34
+ readonly domain = "important" as const;
35
+
36
+ readonly entityName = "unit" as const;
37
+
38
+ protected readonly uniqueElementsWithLabels: string[];
39
+
40
+ protected readonly firstElement: string;
41
+
42
+ protected readonly secondSpecies: string;
43
+
44
+ protected readonly orbitalList = [
45
+ "2p",
46
+ "3s",
47
+ "3p",
48
+ "3d",
49
+ "4s",
50
+ "4p",
51
+ "4d",
52
+ "4f",
53
+ "5s",
54
+ "5p",
55
+ "5d",
56
+ "5f",
57
+ "6s",
58
+ "6p",
59
+ "6d",
60
+ "7s",
61
+ "7p",
62
+ "7d",
63
+ ];
64
+
65
+ constructor(contextItem: Partial<S>, externalContext: EC) {
66
+ super(contextItem, externalContext);
67
+ this.initMaterialContextMixin(externalContext);
68
+
69
+ this.uniqueElementsWithLabels = [
70
+ ...new Set(this.material.Basis?.elementsWithLabelsArray || []),
71
+ ];
72
+
73
+ this.firstElement =
74
+ this.uniqueElementsWithLabels?.length > 0 ? this.uniqueElementsWithLabels[0] : "";
75
+
76
+ this.secondSpecies =
77
+ this.uniqueElementsWithLabels?.length > 1
78
+ ? this.uniqueElementsWithLabels[1]
79
+ : this.firstElement;
80
+ }
81
+ }
82
+
83
+ materialContextMixin(HubbardContextProvider.prototype);
84
+
85
+ export default HubbardContextProvider;
@@ -0,0 +1,82 @@
1
+ import JSONSchemasInterface from "@mat3ra/esse/dist/js/esse/JSONSchemasInterface";
2
+ import type {
3
+ HubbardJContextItemSchema,
4
+ HubbardJContextProviderSchema,
5
+ } from "@mat3ra/esse/dist/js/types";
6
+ import type { JSONSchema7 } from "json-schema";
7
+
8
+ import type { UnitContext } from "../base/ContextProvider";
9
+ import HubbardContextProvider, { type HubbardExternalContext } from "./HubbardContextProvider";
10
+
11
+ type Schema = HubbardJContextItemSchema;
12
+ type Data = HubbardJContextProviderSchema;
13
+
14
+ const defaultHubbardConfig = {
15
+ paramType: "J" as const,
16
+ atomicSpecies: "",
17
+ atomicOrbital: "2p",
18
+ value: 1.0,
19
+ };
20
+
21
+ const jsonSchemaId = "context-providers-directory/hubbard-j-context-provider";
22
+
23
+ export default class HubbardJContextManager extends HubbardContextProvider<Schema> {
24
+ readonly name = "hubbard_j" as const;
25
+
26
+ readonly entityName = "unit" as const;
27
+
28
+ static createFromUnitContext(
29
+ unitContext: UnitContext,
30
+ externalContext: HubbardExternalContext,
31
+ ) {
32
+ const contextItem = this.findContextItem<Schema>(unitContext, "hubbard_j");
33
+
34
+ return new HubbardJContextManager(contextItem, externalContext);
35
+ }
36
+
37
+ readonly uiSchemaStyled = {
38
+ "ui:options": {
39
+ addable: true,
40
+ orderable: true,
41
+ removable: true,
42
+ },
43
+ } as const;
44
+
45
+ readonly jsonSchema: JSONSchema7;
46
+
47
+ constructor(contextItem: Partial<Schema>, externalContext: HubbardExternalContext) {
48
+ super(contextItem, externalContext);
49
+
50
+ const jsonSchema = JSONSchemasInterface.getPatchedSchemaById(jsonSchemaId, {
51
+ "items.properties.paramType": {
52
+ default: defaultHubbardConfig.paramType,
53
+ },
54
+ "items.properties.atomicSpecies": {
55
+ enum: this.uniqueElementsWithLabels,
56
+ default: this.firstElement,
57
+ },
58
+ "items.properties.atomicOrbital": {
59
+ enum: this.orbitalList,
60
+ default: defaultHubbardConfig.atomicOrbital,
61
+ },
62
+ "items.properties.value": {
63
+ default: defaultHubbardConfig.value,
64
+ },
65
+ });
66
+
67
+ if (!jsonSchema) {
68
+ throw new Error("Failed to get patched JSON schema");
69
+ }
70
+
71
+ this.jsonSchema = jsonSchema;
72
+ }
73
+
74
+ getDefaultData(): Data {
75
+ return [
76
+ {
77
+ ...defaultHubbardConfig,
78
+ atomicSpecies: this.firstElement,
79
+ },
80
+ ];
81
+ }
82
+ }
@@ -0,0 +1,78 @@
1
+ import JSONSchemasInterface from "@mat3ra/esse/dist/js/esse/JSONSchemasInterface";
2
+ import type {
3
+ HubbardUContextItemSchema,
4
+ HubbardUContextProviderSchema,
5
+ } from "@mat3ra/esse/dist/js/types";
6
+ import type { JSONSchema7 } from "json-schema";
7
+
8
+ import type { UnitContext } from "../base/ContextProvider";
9
+ import HubbardContextProvider, { type HubbardExternalContext } from "./HubbardContextProvider";
10
+
11
+ type Schema = HubbardUContextItemSchema;
12
+ type Data = HubbardUContextProviderSchema;
13
+
14
+ const defaultHubbardConfig = {
15
+ atomicSpecies: "",
16
+ atomicOrbital: "2p",
17
+ hubbardUValue: 1.0,
18
+ };
19
+
20
+ const jsonSchemaId = "context-providers-directory/hubbard-u-context-provider";
21
+
22
+ export default class HubbardUContextManager extends HubbardContextProvider<Schema> {
23
+ readonly name = "hubbard_u" as const;
24
+
25
+ readonly entityName = "unit" as const;
26
+
27
+ static createFromUnitContext(
28
+ unitContext: UnitContext,
29
+ externalContext: HubbardExternalContext,
30
+ ) {
31
+ const contextItem = this.findContextItem<Schema>(unitContext, "hubbard_u");
32
+
33
+ return new HubbardUContextManager(contextItem, externalContext);
34
+ }
35
+
36
+ readonly uiSchemaStyled = {
37
+ "ui:options": {
38
+ addable: true,
39
+ orderable: false,
40
+ removable: true,
41
+ },
42
+ } as const;
43
+
44
+ readonly jsonSchema: JSONSchema7;
45
+
46
+ constructor(contextItem: Partial<Schema>, externalContext: HubbardExternalContext) {
47
+ super(contextItem, externalContext);
48
+
49
+ const jsonSchema = JSONSchemasInterface.getPatchedSchemaById(jsonSchemaId, {
50
+ "items.properties.atomicSpecies": {
51
+ enum: this.uniqueElementsWithLabels,
52
+ default: this.firstElement,
53
+ },
54
+ "items.properties.atomicOrbital": {
55
+ enum: this.orbitalList,
56
+ default: defaultHubbardConfig.atomicOrbital,
57
+ },
58
+ "items.properties.hubbardUValue": {
59
+ default: defaultHubbardConfig.hubbardUValue,
60
+ },
61
+ });
62
+
63
+ if (!jsonSchema) {
64
+ throw new Error("Failed to get patched JSON schema");
65
+ }
66
+
67
+ this.jsonSchema = jsonSchema;
68
+ }
69
+
70
+ getDefaultData(): Data {
71
+ return [
72
+ {
73
+ ...defaultHubbardConfig,
74
+ atomicSpecies: this.firstElement,
75
+ },
76
+ ];
77
+ }
78
+ }
@@ -0,0 +1,100 @@
1
+ import JSONSchemasInterface from "@mat3ra/esse/dist/js/esse/JSONSchemasInterface";
2
+ import type {
3
+ HubbardVContextItemSchema,
4
+ HubbardVContextProviderSchema,
5
+ } from "@mat3ra/esse/dist/js/types";
6
+ import type { JSONSchema7 } from "json-schema";
7
+
8
+ import type { UnitContext } from "../base/ContextProvider";
9
+ import HubbardContextProvider, { type HubbardExternalContext } from "./HubbardContextProvider";
10
+
11
+ type Schema = HubbardVContextItemSchema;
12
+ type Data = HubbardVContextProviderSchema;
13
+
14
+ const defaultHubbardConfig = {
15
+ atomicSpecies: "",
16
+ atomicOrbital: "2p",
17
+ atomicSpecies2: "",
18
+ atomicOrbital2: "2p",
19
+ siteIndex: 1,
20
+ siteIndex2: 1,
21
+ hubbardVValue: 1.0,
22
+ };
23
+
24
+ const jsonSchemaId = "context-providers-directory/hubbard-v-context-provider";
25
+
26
+ export default class HubbardVContextManager extends HubbardContextProvider<Schema> {
27
+ readonly name = "hubbard_v" as const;
28
+
29
+ readonly entityName = "unit" as const;
30
+
31
+ static createFromUnitContext(
32
+ unitContext: UnitContext,
33
+ externalContext: HubbardExternalContext,
34
+ ) {
35
+ const contextItem = this.findContextItem<Schema>(unitContext, "hubbard_v");
36
+
37
+ return new HubbardVContextManager(contextItem, externalContext);
38
+ }
39
+
40
+ readonly uiSchemaStyled = {
41
+ "ui:options": {
42
+ addable: true,
43
+ orderable: true,
44
+ removable: true,
45
+ },
46
+ } as const;
47
+
48
+ readonly jsonSchema: JSONSchema7;
49
+
50
+ constructor(contextItem: Partial<Schema>, externalContext: HubbardExternalContext) {
51
+ super(contextItem, externalContext);
52
+
53
+ const jsonSchema = JSONSchemasInterface.getPatchedSchemaById(jsonSchemaId, {
54
+ "items.properties.atomicSpecies": {
55
+ enum: this.uniqueElementsWithLabels,
56
+ default: this.firstElement,
57
+ },
58
+ "items.properties.siteIndex": {
59
+ default: defaultHubbardConfig.siteIndex,
60
+ },
61
+ "items.properties.atomicOrbital": {
62
+ enum: this.orbitalList,
63
+ default: defaultHubbardConfig.atomicOrbital,
64
+ },
65
+ "items.properties.atomicSpecies2": {
66
+ enum: this.uniqueElementsWithLabels,
67
+ default: this.secondSpecies,
68
+ },
69
+ "items.properties.siteIndex2": {
70
+ default:
71
+ this.uniqueElementsWithLabels?.length > 1 ? 2 : defaultHubbardConfig.siteIndex2,
72
+ },
73
+ "items.properties.atomicOrbital2": {
74
+ enum: this.orbitalList,
75
+ default: defaultHubbardConfig.atomicOrbital,
76
+ },
77
+ "items.properties.hubbardVValue": {
78
+ default: defaultHubbardConfig.hubbardVValue,
79
+ },
80
+ });
81
+
82
+ if (!jsonSchema) {
83
+ throw new Error("Failed to get patched JSON schema");
84
+ }
85
+
86
+ this.jsonSchema = jsonSchema;
87
+ }
88
+
89
+ getDefaultData(): Data {
90
+ return [
91
+ {
92
+ ...defaultHubbardConfig,
93
+ atomicSpecies: this.firstElement,
94
+ atomicSpecies2: this.secondSpecies,
95
+ siteIndex2:
96
+ this.uniqueElementsWithLabels?.length > 1 ? 2 : defaultHubbardConfig.siteIndex2,
97
+ },
98
+ ];
99
+ }
100
+ }
@@ -0,0 +1,64 @@
1
+ import JSONSchemasInterface from "@mat3ra/esse/dist/js/esse/JSONSchemasInterface";
2
+ import type { DynamicsContextItemSchema } from "@mat3ra/esse/dist/js/types";
3
+ import type { JSONSchema7 } from "json-schema";
4
+
5
+ import type { BaseExternalContext, UnitContext } from "./base/ContextProvider";
6
+ import JSONSchemaFormDataProvider from "./base/JSONSchemaFormDataProvider";
7
+
8
+ type Schema = DynamicsContextItemSchema;
9
+
10
+ const jsonSchemaId = "context-providers-directory/ion-dynamics-context-provider";
11
+
12
+ const defaultData = {
13
+ numberOfSteps: 100,
14
+ timeStep: 5.0,
15
+ electronMass: 100.0,
16
+ temperature: 300.0,
17
+ };
18
+
19
+ export default class IonDynamicsDataManager extends JSONSchemaFormDataProvider<Schema> {
20
+ readonly name = "dynamics" as const;
21
+
22
+ readonly domain = "important" as const;
23
+
24
+ readonly entityName = "unit" as const;
25
+
26
+ static createFromUnitContext(unitContext: UnitContext, externalContext: BaseExternalContext) {
27
+ const contextItem = this.findContextItem<Schema>(unitContext, "dynamics");
28
+
29
+ return new IonDynamicsDataManager(contextItem, externalContext);
30
+ }
31
+
32
+ readonly uiSchema = {
33
+ numberOfSteps: {},
34
+ timeStep: {},
35
+ electronMass: {},
36
+ temperature: {},
37
+ } as const;
38
+
39
+ readonly extraData = {};
40
+
41
+ readonly jsonSchema: JSONSchema7;
42
+
43
+ constructor(contextItem: Partial<Schema>, externalContext: BaseExternalContext) {
44
+ super(contextItem, externalContext);
45
+
46
+ const jsonSchema = JSONSchemasInterface.getPatchedSchemaById(jsonSchemaId, {
47
+ numberOfSteps: { default: defaultData.numberOfSteps },
48
+ timeStep: { default: defaultData.timeStep },
49
+ electronMass: { default: defaultData.electronMass },
50
+ temperature: { default: defaultData.temperature },
51
+ });
52
+
53
+ if (!jsonSchema) {
54
+ throw new Error("Failed to get patched JSON schema");
55
+ }
56
+
57
+ this.jsonSchema = jsonSchema;
58
+ }
59
+
60
+ // eslint-disable-next-line class-methods-use-this
61
+ getDefaultData() {
62
+ return defaultData;
63
+ }
64
+ }