@mat3ra/wode 2026.5.23-0 → 2026.6.5-0

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