@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,61 @@
1
+ import JSONSchemasInterface from "@mat3ra/esse/dist/js/esse/JSONSchemasInterface";
2
+ import type { MlSettingsContextItemSchema } from "@mat3ra/esse/dist/js/types";
3
+ import type { JSONSchema7 } from "json-schema";
4
+
5
+ import { type UnitContext } from "./base/ContextProvider";
6
+ import JSONSchemaDataProvider, { type JinjaExternalContext } from "./base/JSONSchemaDataProvider";
7
+
8
+ type Schema = MlSettingsContextItemSchema;
9
+ type ExternalContext = JinjaExternalContext;
10
+
11
+ const jsonSchemaId = "context-providers-directory/ml-settings-context-provider";
12
+
13
+ const defaultData = {
14
+ target_column_name: "target",
15
+ problem_category: "regression" as const,
16
+ };
17
+
18
+ class MLSettingsDataManager extends JSONSchemaDataProvider<Schema, ExternalContext> {
19
+ readonly name = "mlSettings" as const;
20
+
21
+ readonly domain = "important" as const;
22
+
23
+ readonly entityName = "unit" as const;
24
+
25
+ static createFromUnitContext(unitContext: UnitContext, externalContext: ExternalContext) {
26
+ const contextItem = this.findContextItem<Schema>(unitContext, "mlSettings");
27
+
28
+ return new MLSettingsDataManager(contextItem, externalContext);
29
+ }
30
+
31
+ readonly jsonSchema: JSONSchema7;
32
+
33
+ readonly uiSchema = {
34
+ target_column_name: {},
35
+ problem_category: {},
36
+ } as const;
37
+
38
+ readonly extraData = {};
39
+
40
+ constructor(contextItem: Partial<Schema>, externalContext: ExternalContext) {
41
+ super(contextItem, externalContext);
42
+
43
+ const jsonSchema = JSONSchemasInterface.getPatchedSchemaById(jsonSchemaId, {
44
+ target_column_name: { default: defaultData.target_column_name },
45
+ problem_category: { default: defaultData.problem_category },
46
+ });
47
+
48
+ if (!jsonSchema) {
49
+ throw new Error("Failed to get patched JSON schema");
50
+ }
51
+
52
+ this.jsonSchema = jsonSchema;
53
+ }
54
+
55
+ // eslint-disable-next-line class-methods-use-this
56
+ getDefaultData() {
57
+ return defaultData;
58
+ }
59
+ }
60
+
61
+ export default MLSettingsDataManager;
@@ -0,0 +1,59 @@
1
+ import JSONSchemasInterface from "@mat3ra/esse/dist/js/esse/JSONSchemasInterface";
2
+ import type { MlTrainTestSplitContextItemSchema } from "@mat3ra/esse/dist/js/types";
3
+ import type { JSONSchema7 } from "json-schema";
4
+
5
+ import { type UnitContext } from "./base/ContextProvider";
6
+ import JSONSchemaDataProvider, { type JinjaExternalContext } from "./base/JSONSchemaDataProvider";
7
+
8
+ type Schema = MlTrainTestSplitContextItemSchema;
9
+ type ExternalContext = JinjaExternalContext;
10
+
11
+ const jsonSchemaId = "context-providers-directory/ml-train-test-split-context-provider";
12
+
13
+ const defaultData = {
14
+ fraction_held_as_test_set: 0.2,
15
+ };
16
+
17
+ class MLTrainTestSplitDataManager extends JSONSchemaDataProvider<Schema, ExternalContext> {
18
+ readonly name = "mlTrainTestSplit" as const;
19
+
20
+ readonly domain = "important" as const;
21
+
22
+ readonly entityName = "unit" as const;
23
+
24
+ static createFromUnitContext(unitContext: UnitContext, externalContext: ExternalContext) {
25
+ const contextItem = this.findContextItem<Schema>(unitContext, "mlTrainTestSplit");
26
+
27
+ return new MLTrainTestSplitDataManager(contextItem, externalContext);
28
+ }
29
+
30
+ readonly jsonSchema: JSONSchema7;
31
+
32
+ readonly uiSchema = {
33
+ target_column_name: {},
34
+ problem_category: {},
35
+ } as const;
36
+
37
+ readonly extraData = {};
38
+
39
+ constructor(contextItem: Partial<Schema>, externalContext: ExternalContext) {
40
+ super(contextItem, externalContext);
41
+
42
+ const jsonSchema = JSONSchemasInterface.getPatchedSchemaById(jsonSchemaId, {
43
+ fraction_held_as_test_set: { default: defaultData.fraction_held_as_test_set },
44
+ });
45
+
46
+ if (!jsonSchema) {
47
+ throw new Error("Failed to get patched JSON schema");
48
+ }
49
+
50
+ this.jsonSchema = jsonSchema;
51
+ }
52
+
53
+ // eslint-disable-next-line class-methods-use-this
54
+ getDefaultData() {
55
+ return defaultData;
56
+ }
57
+ }
58
+
59
+ export default MLTrainTestSplitDataManager;
@@ -0,0 +1,57 @@
1
+ import JSONSchemasInterface from "@mat3ra/esse/dist/js/esse/JSONSchemasInterface";
2
+ import type { NebContextItemSchema } from "@mat3ra/esse/dist/js/types";
3
+ import type { JSONSchema7 } from "json-schema";
4
+
5
+ import type { UnitContext } from "./base/ContextProvider";
6
+ import type { JinjaExternalContext } from "./base/JSONSchemaDataProvider";
7
+ import JSONSchemaFormDataProvider from "./base/JSONSchemaFormDataProvider";
8
+
9
+ type Schema = NebContextItemSchema;
10
+ type ExternalContext = JinjaExternalContext;
11
+
12
+ const jsonSchemaId = "context-providers-directory/neb-data-provider";
13
+
14
+ const defaultData = {
15
+ nImages: 1,
16
+ };
17
+
18
+ export default class NEBFormDataManager extends JSONSchemaFormDataProvider<Schema> {
19
+ readonly name = "neb" as const;
20
+
21
+ readonly domain = "important" as const;
22
+
23
+ readonly entityName = "unit" as const;
24
+
25
+ static createFromUnitContext(unitContext: UnitContext, externalContext: ExternalContext) {
26
+ const contextItem = this.findContextItem<Schema>(unitContext, "neb");
27
+
28
+ return new NEBFormDataManager(contextItem, externalContext);
29
+ }
30
+
31
+ readonly uiSchema = {
32
+ nImages: {},
33
+ } as const;
34
+
35
+ readonly jsonSchema: JSONSchema7;
36
+
37
+ readonly extraData = {};
38
+
39
+ constructor(contextItem: Partial<Schema>, externalContext: ExternalContext) {
40
+ super(contextItem, externalContext);
41
+
42
+ const jsonSchema = JSONSchemasInterface.getPatchedSchemaById(jsonSchemaId, {
43
+ nImages: { default: defaultData.nImages },
44
+ });
45
+
46
+ if (!jsonSchema) {
47
+ throw new Error("Failed to get patched JSON schema");
48
+ }
49
+
50
+ this.jsonSchema = jsonSchema;
51
+ }
52
+
53
+ // eslint-disable-next-line class-methods-use-this
54
+ getDefaultData() {
55
+ return defaultData;
56
+ }
57
+ }
@@ -0,0 +1,229 @@
1
+ import JSONSchemasInterface from "@mat3ra/esse/dist/js/esse/JSONSchemasInterface";
2
+ import type {
3
+ NonCollinearMagnetizationContextItemSchema,
4
+ NonCollinearMagnetizationContextProviderSchema,
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 = NonCollinearMagnetizationContextProviderSchema;
16
+ type Schema = NonCollinearMagnetizationContextItemSchema;
17
+ type ExternalContext = JinjaExternalContext & MaterialExternalContext;
18
+
19
+ // eslint-disable-next-line @typescript-eslint/no-empty-interface
20
+ interface NonCollinearMagnetizationDataManager extends MaterialContextMixin {}
21
+
22
+ const defaultData = {
23
+ isExistingChargeDensity: false,
24
+ isStartingMagnetization: true,
25
+ isConstrainedMagnetization: false,
26
+ isArbitrarySpinAngle: false,
27
+ isArbitrarySpinDirection: false,
28
+ isFixedMagnetization: false,
29
+ lforcet: true,
30
+ value: 0.0,
31
+ angle1: 0.0,
32
+ angle2: 0.0,
33
+ constrainType: "atomic direction" as const,
34
+ lambda: 0.0,
35
+ fixedMagnetizationX: 0.0,
36
+ fixedMagnetizationY: 0.0,
37
+ fixedMagnetizationZ: 0.0,
38
+ };
39
+
40
+ const jsonSchemaId = "context-providers-directory/non-collinear-magnetization-context-provider";
41
+
42
+ class NonCollinearMagnetizationDataManager extends JSONSchemaDataProvider<Schema, ExternalContext> {
43
+ readonly name = "nonCollinearMagnetization" as const;
44
+
45
+ readonly domain = "important" as const;
46
+
47
+ readonly entityName = "unit" as const;
48
+
49
+ static createFromUnitContext(unitContext: UnitContext, externalContext: ExternalContext) {
50
+ const contextItem = this.findContextItem<Schema>(unitContext, "nonCollinearMagnetization");
51
+
52
+ return new NonCollinearMagnetizationDataManager(contextItem, externalContext);
53
+ }
54
+
55
+ readonly isStartingMagnetization: boolean;
56
+
57
+ readonly isConstrainedMagnetization: boolean;
58
+
59
+ readonly isExistingChargeDensity: boolean;
60
+
61
+ readonly isArbitrarySpinDirection: boolean;
62
+
63
+ readonly isFixedMagnetization: boolean;
64
+
65
+ readonly constrainedMagnetization: Data["constrainedMagnetization"];
66
+
67
+ readonly jsonSchema: JSONSchema7;
68
+
69
+ private readonly uniqueElementsWithLabels: string[];
70
+
71
+ constructor(contextItem: Partial<Schema>, externalContext: ExternalContext) {
72
+ super(contextItem, externalContext);
73
+ this.initMaterialContextMixin(externalContext);
74
+
75
+ this.isStartingMagnetization = this.data?.isStartingMagnetization ?? true;
76
+ this.isConstrainedMagnetization = this.data?.isConstrainedMagnetization ?? false;
77
+ this.isExistingChargeDensity = this.data?.isExistingChargeDensity ?? false;
78
+ this.isArbitrarySpinDirection = this.data?.isArbitrarySpinDirection ?? false;
79
+ this.isFixedMagnetization = this.data?.isFixedMagnetization ?? false;
80
+ this.constrainedMagnetization = this.data?.constrainedMagnetization ?? {
81
+ lambda: 0.0,
82
+ constrainType: "atomic direction" as const,
83
+ };
84
+ this.uniqueElementsWithLabels = [
85
+ ...new Set(this.material?.Basis?.elementsWithLabelsArray || []),
86
+ ];
87
+
88
+ const jsonSchema = JSONSchemasInterface.getPatchedSchemaById(jsonSchemaId, {
89
+ isExistingChargeDensity: { default: defaultData.isExistingChargeDensity },
90
+ isStartingMagnetization: { default: defaultData.isStartingMagnetization },
91
+ isArbitrarySpinAngle: { default: defaultData.isArbitrarySpinAngle },
92
+ isConstrainedMagnetization: { default: defaultData.isConstrainedMagnetization },
93
+ isFixedMagnetization: { default: defaultData.isFixedMagnetization },
94
+ startingMagnetization: {
95
+ minItems: this.uniqueElementsWithLabels.length,
96
+ maxItems: this.uniqueElementsWithLabels.length,
97
+ },
98
+ "startingMagnetization.items.properties.value": {
99
+ default: defaultData.value,
100
+ minimum: -1.0,
101
+ maximum: 1.0,
102
+ },
103
+ spinAngles: {
104
+ minItems: this.uniqueElementsWithLabels.length,
105
+ maxItems: this.uniqueElementsWithLabels.length,
106
+ },
107
+ "spinAngles.items.properties.angle1": { default: defaultData.angle1 },
108
+ "spinAngles.items.properties.angle2": { default: defaultData.angle2 },
109
+ "constrainedMagnetization.properties.constrainType": {
110
+ default: defaultData.constrainType,
111
+ },
112
+ "constrainedMagnetization.properties.lambda": { default: defaultData.lambda },
113
+ "fixedMagnetization.properties.x": { default: defaultData.fixedMagnetizationX },
114
+ "fixedMagnetization.properties.y": { default: defaultData.fixedMagnetizationY },
115
+ "fixedMagnetization.properties.z": { default: defaultData.fixedMagnetizationZ },
116
+ });
117
+
118
+ if (!jsonSchema) {
119
+ throw new Error("Failed to get patched JSON schema");
120
+ }
121
+
122
+ this.jsonSchema = jsonSchema;
123
+ }
124
+
125
+ getDefaultData(): Data {
126
+ const startingMagnetization = this.uniqueElementsWithLabels.map((element, index) => {
127
+ return {
128
+ index: index + 1,
129
+ atomicSpecies: element,
130
+ value: defaultData.value,
131
+ };
132
+ });
133
+
134
+ const spinAngles = this.uniqueElementsWithLabels.map((element, index) => {
135
+ return {
136
+ index: index + 1,
137
+ atomicSpecies: element,
138
+ angle1: defaultData.angle1,
139
+ angle2: defaultData.angle2,
140
+ };
141
+ });
142
+
143
+ return {
144
+ isExistingChargeDensity: defaultData.isExistingChargeDensity,
145
+ isStartingMagnetization: defaultData.isStartingMagnetization,
146
+ isConstrainedMagnetization: defaultData.isConstrainedMagnetization,
147
+ isArbitrarySpinAngle: defaultData.isArbitrarySpinAngle,
148
+ isArbitrarySpinDirection: defaultData.isArbitrarySpinDirection,
149
+ isFixedMagnetization: defaultData.isFixedMagnetization,
150
+ lforcet: defaultData.lforcet,
151
+ spinAngles,
152
+ startingMagnetization,
153
+ constrainedMagnetization: {
154
+ lambda: defaultData.lambda,
155
+ constrainType: defaultData.constrainType,
156
+ },
157
+ fixedMagnetization: {
158
+ x: defaultData.fixedMagnetizationX,
159
+ y: defaultData.fixedMagnetizationY,
160
+ z: defaultData.fixedMagnetizationZ,
161
+ },
162
+ };
163
+ }
164
+
165
+ get uiSchemaStyled() {
166
+ return {
167
+ isExistingChargeDensity: {},
168
+ lforcet: {
169
+ "ui:readonly": !this.isExistingChargeDensity,
170
+ "ui:widget": "radio",
171
+ "ui:options": {
172
+ inline: true,
173
+ },
174
+ },
175
+ isArbitrarySpinDirection: {},
176
+ spinAngles: {
177
+ items: {
178
+ atomicSpecies: {
179
+ "ui:readonly": true,
180
+ },
181
+ },
182
+ "ui:readonly": !this.isArbitrarySpinDirection,
183
+ "ui:options": {
184
+ addable: false,
185
+ orderable: false,
186
+ removable: false,
187
+ },
188
+ },
189
+ isStartingMagnetization: {},
190
+ startingMagnetization: {
191
+ items: {
192
+ atomicSpecies: {
193
+ "ui:readonly": true,
194
+ },
195
+ value: {
196
+ "ui:classNames": "col-xs-6",
197
+ },
198
+ },
199
+ "ui:readonly": !this.isStartingMagnetization,
200
+ "ui:options": {
201
+ addable: false,
202
+ orderable: false,
203
+ removable: false,
204
+ },
205
+ },
206
+ isConstrainedMagnetization: {},
207
+ constrainedMagnetization: {
208
+ "ui:readonly": !this.isConstrainedMagnetization,
209
+ },
210
+ isFixedMagnetization: {
211
+ "ui:readonly": !(
212
+ this.isConstrainedMagnetization &&
213
+ this.constrainedMagnetization?.constrainType === "total"
214
+ ),
215
+ },
216
+ fixedMagnetization: {
217
+ "ui:readonly": !(
218
+ this.isFixedMagnetization &&
219
+ this.isConstrainedMagnetization &&
220
+ this.constrainedMagnetization?.constrainType === "total"
221
+ ),
222
+ },
223
+ };
224
+ }
225
+ }
226
+
227
+ materialContextMixin(NonCollinearMagnetizationDataManager.prototype);
228
+
229
+ export default NonCollinearMagnetizationDataManager;
@@ -0,0 +1,110 @@
1
+ import JSONSchemasInterface from "@mat3ra/esse/dist/js/esse/JSONSchemasInterface";
2
+ import type { CutoffsContextItemSchema } from "@mat3ra/esse/dist/js/types";
3
+ import type { JSONSchema7 } from "json-schema";
4
+
5
+ import applicationContextMixin, {
6
+ type ApplicationContextMixin,
7
+ type ApplicationExternalContext,
8
+ } from "../mixins/ApplicationContextMixin";
9
+ import ContextProvider, {
10
+ type BaseExternalContext,
11
+ type UnitContext,
12
+ } from "./base/ContextProvider";
13
+
14
+ type ApplicationName = "vasp" | "espresso";
15
+
16
+ type Schema = CutoffsContextItemSchema;
17
+ type PlanewaveExternalContext = BaseExternalContext & ApplicationExternalContext;
18
+
19
+ // eslint-disable-next-line @typescript-eslint/no-empty-interface
20
+ interface PlanewaveCutoffDataManager extends ApplicationContextMixin {}
21
+
22
+ // Type guard to check if a string is a valid ApplicationName
23
+ function isApplicationName(name: string): name is ApplicationName {
24
+ return name === "vasp" || name === "espresso";
25
+ }
26
+
27
+ // TODO: create a task to move this handling to standata
28
+ const cutoffConfig: Record<ApplicationName, { wavefunction?: number; density?: number }> = {
29
+ vasp: { wavefunction: undefined, density: undefined },
30
+ espresso: { wavefunction: 40, density: 200 },
31
+ };
32
+
33
+ const defaultData = {
34
+ wavefunction: undefined,
35
+ density: undefined,
36
+ };
37
+
38
+ const jsonSchemaId = "context-providers-directory/planewave-cutoffs-context-provider";
39
+
40
+ class PlanewaveCutoffDataManager extends ContextProvider<Schema, PlanewaveExternalContext> {
41
+ readonly name = "cutoffs" as const;
42
+
43
+ readonly domain = "important" as const;
44
+
45
+ readonly entityName = "subworkflow" as const;
46
+
47
+ readonly jsonSchema: JSONSchema7;
48
+
49
+ readonly uiSchema = {
50
+ wavefunction: {},
51
+ density: {},
52
+ } as const;
53
+
54
+ readonly extraData = {};
55
+
56
+ static createFromUnitContext(
57
+ unitContext: UnitContext,
58
+ externalContext: PlanewaveExternalContext,
59
+ ) {
60
+ const contextItem = this.findContextItem<Schema>(unitContext, "cutoffs");
61
+
62
+ return new PlanewaveCutoffDataManager(contextItem, externalContext);
63
+ }
64
+
65
+ constructor(contextItem: Partial<Schema>, externalContext: PlanewaveExternalContext) {
66
+ super(contextItem, externalContext);
67
+ this.initApplicationContextMixin(externalContext);
68
+
69
+ const { wavefunction, density } = this.getDefaultData();
70
+
71
+ const jsonSchema = JSONSchemasInterface.getPatchedSchemaById(jsonSchemaId, {
72
+ wavefunction: { default: wavefunction },
73
+ density: { default: density },
74
+ });
75
+
76
+ if (!jsonSchema) {
77
+ throw new Error("Failed to get patched JSON schema");
78
+ }
79
+
80
+ this.jsonSchema = jsonSchema;
81
+ }
82
+
83
+ getDefaultData() {
84
+ const applicationName = this.application.name;
85
+
86
+ // Type-safe check: ensure application name is valid and exists in config
87
+ if (!isApplicationName(applicationName)) {
88
+ // Fallback to default values if application is not supported
89
+ return defaultData;
90
+ }
91
+
92
+ const config = cutoffConfig[applicationName];
93
+
94
+ if (!config) {
95
+ // Fallback to default values if application is not in cutoffConfig
96
+ return defaultData;
97
+ }
98
+
99
+ const { wavefunction, density } = config;
100
+
101
+ return {
102
+ wavefunction: wavefunction ?? defaultData.wavefunction,
103
+ density: density ?? defaultData.density,
104
+ };
105
+ }
106
+ }
107
+
108
+ applicationContextMixin(PlanewaveCutoffDataManager.prototype);
109
+
110
+ export default PlanewaveCutoffDataManager;
@@ -0,0 +1,36 @@
1
+ import JSONSchemasInterface from "@mat3ra/esse/dist/js/esse/JSONSchemasInterface";
2
+ import type { GridContextItemSchema } from "@mat3ra/esse/dist/js/types";
3
+ import type { JSONSchema7 } from "json-schema";
4
+
5
+ import type { UnitContext } from "../base/ContextProvider";
6
+ import PointsGridFormDataProvider, { type ExternalContext } from "./PointsGridFormDataProvider";
7
+
8
+ type Name = "igrid";
9
+ type Schema = GridContextItemSchema;
10
+
11
+ export default class IGridFormDataManager extends PointsGridFormDataProvider<Name> {
12
+ readonly name = "igrid" as const;
13
+
14
+ readonly jsonSchema: JSONSchema7;
15
+
16
+ constructor(contextItem: Partial<Schema>, externalContext: ExternalContext) {
17
+ super(contextItem, externalContext, 0.2);
18
+
19
+ const jsonSchema = JSONSchemasInterface.getPatchedSchemaById(
20
+ this.jsonSchemaId,
21
+ this.jsonSchemaPatchConfig,
22
+ );
23
+
24
+ if (!jsonSchema) {
25
+ throw new Error("Failed to get patched JSON schema");
26
+ }
27
+
28
+ this.jsonSchema = jsonSchema;
29
+ }
30
+
31
+ static createFromUnitContext(unitContext: UnitContext, externalContext: ExternalContext) {
32
+ const contextItem = this.findContextItem<Schema>(unitContext, "igrid");
33
+
34
+ return new IGridFormDataManager(contextItem, externalContext);
35
+ }
36
+ }
@@ -0,0 +1,46 @@
1
+ import JSONSchemasInterface from "@mat3ra/esse/dist/js/esse/JSONSchemasInterface";
2
+ import type { GridContextItemSchema } from "@mat3ra/esse/dist/js/types";
3
+ import type { JSONSchema7 } from "json-schema";
4
+
5
+ import ConvergenceParameter from "../../../convergence/ConvergenceParameter";
6
+ import type { UnitContext } from "../base/ContextProvider";
7
+ import PointsGridFormDataProvider, { type ExternalContext } from "./PointsGridFormDataProvider";
8
+
9
+ type Name = "kgrid";
10
+ type Schema = GridContextItemSchema;
11
+
12
+ export default class KGridFormDataManager extends PointsGridFormDataProvider<Name> {
13
+ readonly name = "kgrid" as const;
14
+
15
+ readonly jsonSchema: JSONSchema7;
16
+
17
+ constructor(contextItem: Partial<Schema>, externalContext: ExternalContext) {
18
+ super(contextItem, externalContext, 1);
19
+
20
+ const jsonSchema = JSONSchemasInterface.getPatchedSchemaById(
21
+ this.jsonSchemaId,
22
+ this.jsonSchemaPatchConfig,
23
+ );
24
+
25
+ if (!jsonSchema) {
26
+ throw new Error("Failed to get patched JSON schema");
27
+ }
28
+
29
+ this.jsonSchema = jsonSchema;
30
+ }
31
+
32
+ static createFromUnitContext(unitContext: UnitContext, externalContext: ExternalContext) {
33
+ const contextItem = this.findContextItem<Schema>(unitContext, "kgrid");
34
+
35
+ return new KGridFormDataManager(contextItem, externalContext);
36
+ }
37
+
38
+ applyConvergenceParameter(parameter: ConvergenceParameter) {
39
+ this.setData({
40
+ ...this.getData(),
41
+ ...parameter.unitContext.data,
42
+ });
43
+
44
+ this.setIsEdited(true);
45
+ }
46
+ }