@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.
- package/.babelrc +1 -1
- package/dist/js/Subworkflow.d.ts +714 -0
- package/dist/js/Subworkflow.js +397 -0
- package/dist/js/Workflow.d.ts +82 -0
- package/dist/js/Workflow.js +286 -0
- package/dist/js/WorkflowDesignerMaterial.d.ts +21 -0
- package/dist/js/WorkflowDesignerMaterial.js +26 -0
- package/dist/js/context/mixins/ApplicationContextMixin.d.ts +10 -0
- package/dist/js/context/mixins/ApplicationContextMixin.js +10 -17
- package/dist/js/context/mixins/MaterialContextMixin.d.ts +18 -0
- package/dist/js/context/mixins/MaterialContextMixin.js +14 -38
- package/dist/js/context/mixins/MaterialsContextMixin.d.ts +10 -0
- package/dist/js/context/mixins/MaterialsContextMixin.js +11 -17
- package/dist/js/context/mixins/MaterialsSetContextMixin.d.ts +14 -0
- package/dist/js/context/mixins/MaterialsSetContextMixin.js +21 -23
- package/dist/js/context/providers/BoundaryConditionsFormDataManager.d.ts +30 -0
- package/dist/js/context/providers/BoundaryConditionsFormDataManager.js +62 -0
- package/dist/js/context/providers/CollinearMagnetizationDataManager.d.ts +42 -0
- package/dist/js/context/providers/CollinearMagnetizationDataManager.js +101 -0
- package/dist/js/context/providers/Hubbard/HubbardContextManagerLegacy.d.ts +29 -0
- package/dist/js/context/providers/Hubbard/HubbardContextManagerLegacy.js +69 -0
- package/dist/js/context/providers/Hubbard/HubbardContextProvider.d.ts +20 -0
- package/dist/js/context/providers/Hubbard/HubbardContextProvider.js +47 -0
- package/dist/js/context/providers/Hubbard/HubbardJContextManager.d.ts +22 -0
- package/dist/js/context/providers/Hubbard/HubbardJContextManager.js +61 -0
- package/dist/js/context/providers/Hubbard/HubbardUContextManager.d.ts +22 -0
- package/dist/js/context/providers/Hubbard/HubbardUContextManager.js +57 -0
- package/dist/js/context/providers/Hubbard/HubbardVContextManager.d.ts +22 -0
- package/dist/js/context/providers/Hubbard/HubbardVContextManager.js +79 -0
- package/dist/js/context/providers/IonDynamicsDataManager.d.ts +27 -0
- package/dist/js/context/providers/IonDynamicsDataManager.js +48 -0
- package/dist/js/context/providers/MLSettingsDataManager.d.ts +24 -0
- package/dist/js/context/providers/MLSettingsDataManager.js +42 -0
- package/dist/js/context/providers/MLTrainTestSplitDataManager.d.ts +23 -0
- package/dist/js/context/providers/MLTrainTestSplitDataManager.js +40 -0
- package/dist/js/context/providers/NEBFormDataManager.d.ts +23 -0
- package/dist/js/context/providers/NEBFormDataManager.js +39 -0
- package/dist/js/context/providers/NonCollinearMagnetizationDataManager.d.ts +78 -0
- package/dist/js/context/providers/NonCollinearMagnetizationDataManager.js +181 -0
- package/dist/js/context/providers/PlanewaveCutoffDataManager.d.ts +26 -0
- package/dist/js/context/providers/PlanewaveCutoffDataManager.js +69 -0
- package/dist/js/context/providers/PointsGrid/IGridFormDataManager.d.ts +13 -0
- package/dist/js/context/providers/PointsGrid/IGridFormDataManager.js +23 -0
- package/dist/js/context/providers/PointsGrid/KGridFormDataManager.d.ts +15 -0
- package/dist/js/context/providers/PointsGrid/KGridFormDataManager.js +30 -0
- package/dist/js/context/providers/PointsGrid/PointsGridFormDataProvider.d.ts +171 -0
- package/dist/js/context/providers/PointsGrid/PointsGridFormDataProvider.js +270 -0
- package/dist/js/context/providers/PointsGrid/QGridFormDataManager.d.ts +13 -0
- package/dist/js/context/providers/PointsGrid/QGridFormDataManager.js +23 -0
- package/dist/js/context/providers/PointsPath/ExplicitKPath2PIBAFormDataManager.d.ts +10 -0
- package/dist/js/context/providers/PointsPath/ExplicitKPath2PIBAFormDataManager.js +19 -0
- package/dist/js/context/providers/PointsPath/ExplicitKPathFormDataManager.d.ts +9 -0
- package/dist/js/context/providers/PointsPath/ExplicitKPathFormDataManager.js +18 -0
- package/dist/js/context/providers/PointsPath/IPathFormDataManager.d.ts +8 -0
- package/dist/js/context/providers/PointsPath/IPathFormDataManager.js +17 -0
- package/dist/js/context/providers/PointsPath/KPathFormDataManager.d.ts +8 -0
- package/dist/js/context/providers/PointsPath/KPathFormDataManager.js +17 -0
- package/dist/js/context/providers/PointsPath/PointsPathFormDataProvider.d.ts +40 -0
- package/dist/js/context/providers/PointsPath/PointsPathFormDataProvider.js +125 -0
- package/dist/js/context/providers/PointsPath/QPathFormDataManager.d.ts +8 -0
- package/dist/js/context/providers/PointsPath/QPathFormDataManager.js +17 -0
- package/dist/js/context/providers/base/ContextProvider.d.ts +75 -0
- package/dist/js/context/providers/base/ContextProvider.js +87 -0
- package/dist/js/context/providers/base/JSONSchemaDataProvider.d.ts +16 -0
- package/dist/js/context/providers/base/JSONSchemaDataProvider.js +17 -0
- package/dist/js/context/providers/base/JSONSchemaFormDataProvider.d.ts +19 -0
- package/dist/js/context/providers/base/JSONSchemaFormDataProvider.js +32 -0
- package/dist/js/context/providers/by_application/espresso/QENEBInputDataManager.d.ts +26 -0
- package/dist/js/context/providers/by_application/espresso/QENEBInputDataManager.js +54 -0
- package/dist/js/context/providers/by_application/espresso/QEPWXInputDataManager.d.ts +78 -0
- package/dist/js/context/providers/by_application/espresso/QEPWXInputDataManager.js +104 -0
- package/dist/js/context/providers/by_application/nwchem/NWChemInputDataManager.d.ts +36 -0
- package/dist/js/context/providers/by_application/nwchem/NWChemInputDataManager.js +58 -0
- package/dist/js/context/providers/by_application/vasp/VASPInputDataManager.d.ts +36 -0
- package/dist/js/context/providers/by_application/vasp/VASPInputDataManager.js +56 -0
- package/dist/js/context/providers/by_application/vasp/VASPNEBInputDataManager.d.ts +30 -0
- package/dist/js/context/providers/by_application/vasp/VASPNEBInputDataManager.js +50 -0
- package/dist/js/context/providers/index.d.ts +92 -0
- package/dist/js/context/providers/index.js +107 -0
- package/dist/js/context/providers/settings.d.ts +7 -0
- package/dist/js/context/providers/settings.js +11 -33
- package/dist/js/convergence/ConvergenceParameter.d.ts +26 -0
- package/dist/js/convergence/ConvergenceParameter.js +13 -0
- package/dist/js/convergence/NonUniformKGridConvergence.d.ts +12 -0
- package/dist/js/convergence/NonUniformKGridConvergence.js +31 -0
- package/dist/js/convergence/UniformKGridConvergence.d.ts +8 -0
- package/dist/js/convergence/UniformKGridConvergence.js +22 -0
- package/dist/js/convergence/factory.d.ts +8 -0
- package/dist/js/convergence/factory.js +18 -0
- package/dist/js/enums.d.ts +62 -0
- package/dist/js/enums.js +66 -61
- package/dist/js/generated/AssertionUnitSchemaMixin.d.ts +5 -0
- package/dist/js/generated/AssertionUnitSchemaMixin.js +27 -0
- package/dist/js/generated/AssignmentUnitSchemaMixin.d.ts +5 -0
- package/dist/js/generated/AssignmentUnitSchemaMixin.js +33 -0
- package/dist/js/generated/BaseUnitSchemaMixin.d.ts +5 -0
- package/dist/js/generated/BaseUnitSchemaMixin.js +57 -0
- package/dist/js/generated/ConditionUnitSchemaMixin.d.ts +5 -0
- package/dist/js/generated/ConditionUnitSchemaMixin.js +51 -0
- package/dist/js/generated/ExecutionUnitInputSchemaMixin.d.ts +5 -0
- package/dist/js/generated/ExecutionUnitInputSchemaMixin.js +27 -0
- package/dist/js/generated/ExecutionUnitSchemaMixin.d.ts +5 -0
- package/dist/js/generated/ExecutionUnitSchemaMixin.js +45 -0
- package/dist/js/generated/IOUnitSchemaMixin.d.ts +5 -0
- package/dist/js/generated/IOUnitSchemaMixin.js +33 -0
- package/dist/js/generated/MapUnitSchemaMixin.d.ts +5 -0
- package/dist/js/generated/MapUnitSchemaMixin.js +27 -0
- package/dist/js/generated/ReduceUnitSchemaMixin.d.ts +5 -0
- package/dist/js/generated/ReduceUnitSchemaMixin.js +27 -0
- package/dist/js/generated/StatusSchemaMixin.d.ts +5 -0
- package/dist/js/generated/StatusSchemaMixin.js +21 -0
- package/dist/js/generated/SubworkflowSchemaMixin.d.ts +5 -0
- package/dist/js/generated/SubworkflowSchemaMixin.js +51 -0
- package/dist/js/generated/SubworkflowUnitSchemaMixin.d.ts +5 -0
- package/dist/js/generated/SubworkflowUnitSchemaMixin.js +15 -0
- package/dist/js/generated/WorkflowSchemaMixin.d.ts +5 -0
- package/dist/js/generated/WorkflowSchemaMixin.js +51 -0
- package/dist/js/index.d.ts +13 -0
- package/dist/js/index.js +66 -176
- package/dist/js/units/AssertionUnit.d.ts +20 -0
- package/dist/js/units/AssertionUnit.js +33 -0
- package/dist/js/units/AssignmentUnit.d.ts +17 -0
- package/dist/js/units/AssignmentUnit.js +35 -0
- package/dist/js/units/BaseUnit.d.ts +39 -0
- package/dist/js/units/BaseUnit.js +70 -0
- package/dist/js/units/ConditionUnit.d.ts +17 -0
- package/dist/js/units/ConditionUnit.js +37 -0
- package/dist/js/units/ExecutionUnit.d.ts +115 -0
- package/dist/js/units/ExecutionUnit.js +181 -0
- package/dist/js/units/ExecutionUnitInput.d.ts +22 -0
- package/dist/js/units/ExecutionUnitInput.js +47 -0
- package/dist/js/units/IOUnit.d.ts +16 -0
- package/dist/js/units/IOUnit.js +31 -0
- package/dist/js/units/MapUnit.d.ts +34 -0
- package/dist/js/units/MapUnit.js +46 -0
- package/dist/js/units/ReduceUnit.d.ts +16 -0
- package/dist/js/units/ReduceUnit.js +30 -0
- package/dist/js/units/SubworkflowUnit.d.ts +16 -0
- package/dist/js/units/SubworkflowUnit.js +28 -0
- package/dist/js/units/factory.d.ts +31 -0
- package/dist/js/units/factory.js +65 -47
- package/dist/js/units/index.d.ts +14 -0
- package/dist/js/units/index.js +25 -81
- package/dist/js/units/mixins/RuntimeItemsUILogicMixin.d.ts +26 -0
- package/dist/js/units/mixins/RuntimeItemsUILogicMixin.js +50 -0
- package/dist/js/utils/baseUnits.d.ts +2 -0
- package/dist/js/utils/baseUnits.js +11 -0
- package/dist/js/utils/index.d.ts +3 -0
- package/dist/js/utils/index.js +39 -0
- package/dist/js/utils/subworkflow.d.ts +2 -0
- package/dist/js/utils/subworkflow.js +29 -0
- package/dist/js/utils/underscoreStringSlugify.d.ts +6 -0
- package/dist/js/utils/underscoreStringSlugify.js +32 -0
- package/dist/js/utils/units.d.ts +4 -0
- package/dist/js/utils/units.js +16 -0
- package/dist/js/utils/workflow.d.ts +9 -0
- package/dist/js/utils/workflow.js +67 -0
- package/dist/js/workflows/default.d.ts +3 -0
- package/dist/js/workflows/default.js +43 -39
- package/dist/js/workflows/workflow.d.ts +4404 -0
- package/dist/js/workflows/workflow.js +310 -306
- package/package.json +56 -44
- package/src/js/Subworkflow.ts +532 -0
- package/src/js/Workflow.ts +390 -0
- package/src/js/context/mixins/ApplicationContextMixin.ts +21 -0
- package/src/js/context/mixins/MaterialContextMixin.ts +35 -0
- package/src/js/context/mixins/MaterialsContextMixin.ts +24 -0
- package/src/js/context/mixins/MaterialsSetContextMixin.ts +42 -0
- package/src/js/context/providers/BoundaryConditionsFormDataManager.ts +88 -0
- package/src/js/context/providers/CollinearMagnetizationDataManager.ts +140 -0
- package/src/js/context/providers/Hubbard/HubbardContextManagerLegacy.ts +93 -0
- package/src/js/context/providers/Hubbard/HubbardContextProvider.ts +85 -0
- package/src/js/context/providers/Hubbard/HubbardJContextManager.ts +82 -0
- package/src/js/context/providers/Hubbard/HubbardUContextManager.ts +78 -0
- package/src/js/context/providers/Hubbard/HubbardVContextManager.ts +100 -0
- package/src/js/context/providers/IonDynamicsDataManager.ts +64 -0
- package/src/js/context/providers/MLSettingsDataManager.ts +61 -0
- package/src/js/context/providers/MLTrainTestSplitDataManager.ts +59 -0
- package/src/js/context/providers/NEBFormDataManager.ts +57 -0
- package/src/js/context/providers/NonCollinearMagnetizationDataManager.ts +229 -0
- package/src/js/context/providers/PlanewaveCutoffDataManager.ts +110 -0
- package/src/js/context/providers/PointsGrid/IGridFormDataManager.ts +36 -0
- package/src/js/context/providers/PointsGrid/KGridFormDataManager.ts +46 -0
- package/src/js/context/providers/PointsGrid/PointsGridFormDataProvider.ts +371 -0
- package/src/js/context/providers/PointsGrid/QGridFormDataManager.ts +36 -0
- package/src/js/context/providers/PointsPath/ExplicitKPath2PIBAFormDataManager.ts +26 -0
- package/src/js/context/providers/PointsPath/ExplicitKPathFormDataManager.ts +24 -0
- package/src/js/context/providers/PointsPath/IPathFormDataManager.ts +22 -0
- package/src/js/context/providers/PointsPath/KPathFormDataManager.ts +22 -0
- package/src/js/context/providers/PointsPath/PointsPathFormDataProvider.ts +192 -0
- package/src/js/context/providers/PointsPath/QPathFormDataManager.ts +22 -0
- package/src/js/context/providers/base/ContextProvider.ts +150 -0
- package/src/js/context/providers/base/JSONSchemaDataProvider.ts +31 -0
- package/src/js/context/providers/base/JSONSchemaFormDataProvider.ts +38 -0
- package/src/js/context/providers/by_application/espresso/QENEBInputDataManager.ts +107 -0
- package/src/js/context/providers/by_application/espresso/QEPWXInputDataManager.ts +178 -0
- package/src/js/context/providers/by_application/nwchem/NWChemInputDataManager.ts +93 -0
- package/src/js/context/providers/by_application/vasp/VASPInputDataManager.ts +89 -0
- package/src/js/context/providers/by_application/vasp/VASPNEBInputDataManager.ts +92 -0
- package/src/js/context/providers/index.ts +155 -0
- package/src/js/context/providers/settings.ts +13 -0
- package/src/js/convergence/ConvergenceParameter.ts +37 -0
- package/src/js/convergence/NonUniformKGridConvergence.ts +38 -0
- package/src/js/convergence/UniformKGridConvergence.ts +26 -0
- package/src/js/convergence/factory.ts +18 -0
- package/src/js/{enums.js → enums.ts} +27 -22
- package/src/js/generated/AssertionUnitSchemaMixin.ts +34 -0
- package/src/js/generated/AssignmentUnitSchemaMixin.ts +40 -0
- package/src/js/generated/BaseUnitSchemaMixin.ts +64 -0
- package/src/js/generated/ConditionUnitSchemaMixin.ts +58 -0
- package/src/js/generated/ExecutionUnitInputSchemaMixin.ts +36 -0
- package/src/js/generated/ExecutionUnitSchemaMixin.ts +52 -0
- package/src/js/generated/IOUnitSchemaMixin.ts +40 -0
- package/src/js/generated/MapUnitSchemaMixin.ts +34 -0
- package/src/js/generated/ReduceUnitSchemaMixin.ts +34 -0
- package/src/js/generated/StatusSchemaMixin.ts +28 -0
- package/src/js/generated/SubworkflowSchemaMixin.ts +58 -0
- package/src/js/generated/SubworkflowUnitSchemaMixin.ts +22 -0
- package/src/js/generated/WorkflowSchemaMixin.ts +58 -0
- package/src/js/index.ts +44 -0
- package/src/js/units/AssertionUnit.ts +49 -0
- package/src/js/units/AssignmentUnit.ts +49 -0
- package/src/js/units/BaseUnit.ts +117 -0
- package/src/js/units/ConditionUnit.ts +52 -0
- package/src/js/units/ExecutionUnit.ts +274 -0
- package/src/js/units/ExecutionUnitInput.ts +71 -0
- package/src/js/units/IOUnit.ts +43 -0
- package/src/js/units/MapUnit.ts +59 -0
- package/src/js/units/ReduceUnit.ts +46 -0
- package/src/js/units/SubworkflowUnit.ts +44 -0
- package/src/js/units/factory.ts +131 -0
- package/src/js/units/index.ts +27 -0
- package/src/js/units/mixins/RuntimeItemsUILogicMixin.ts +81 -0
- package/src/js/utils/baseUnits.ts +11 -0
- package/src/js/utils/index.ts +3 -0
- package/src/js/utils/units.ts +23 -0
- package/src/js/utils/workflow.ts +69 -0
- package/src/js/workflows/{default.js → default.ts} +8 -1
- package/build_workflows.js +0 -65
- package/dist/js/context/context.js +0 -49
- package/dist/js/context/mixins/JobContextMixin.js +0 -39
- package/dist/js/context/mixins/MethodDataContextMixin.js +0 -48
- package/dist/js/context/mixins/WorkflowContextMixin.js +0 -28
- package/dist/js/context/providers/BoundaryConditionsFormDataProvider.js +0 -84
- package/dist/js/context/providers/CollinearMagnetizationContextProvider.js +0 -96
- package/dist/js/context/providers/HubbardContextProviderLegacy.js +0 -68
- package/dist/js/context/providers/HubbardJContextProvider.js +0 -67
- package/dist/js/context/providers/HubbardUContextProvider.js +0 -70
- package/dist/js/context/providers/HubbardVContextProvider.js +0 -92
- package/dist/js/context/providers/IonDynamicsContextProvider.js +0 -58
- package/dist/js/context/providers/MLSettingsContextProvider.js +0 -51
- package/dist/js/context/providers/MLTrainTestSplitContextProvider.js +0 -47
- package/dist/js/context/providers/NEBFormDataProvider.js +0 -42
- package/dist/js/context/providers/NonCollinearMagnetizationContextProvider.js +0 -187
- package/dist/js/context/providers/PlanewaveCutoffsContextProvider.js +0 -67
- package/dist/js/context/providers/PointsGridFormDataProvider.js +0 -263
- package/dist/js/context/providers/PointsPathFormDataProvider.js +0 -147
- package/dist/js/context/providers/by_application/ExecutableContextProvider.js +0 -25
- package/dist/js/context/providers/by_application/espresso/QENEBContextProvider.js +0 -61
- package/dist/js/context/providers/by_application/espresso/QEPWXContextProvider.js +0 -150
- package/dist/js/context/providers/by_application/nwchem/NWChemTotalEnergyContextProvider.js +0 -85
- package/dist/js/context/providers/by_application/vasp/VASPContextProvider.js +0 -65
- package/dist/js/context/providers/by_application/vasp/VASPNEBContextProvider.js +0 -57
- package/dist/js/context/providers.js +0 -199
- package/dist/js/patch.js +0 -19
- package/dist/js/subworkflows/convergence/non_uniform_kgrid.js +0 -31
- package/dist/js/subworkflows/convergence/parameter.js +0 -70
- package/dist/js/subworkflows/convergence/uniform_kgrid.js +0 -26
- package/dist/js/subworkflows/convergence.js +0 -189
- package/dist/js/subworkflows/create.js +0 -293
- package/dist/js/subworkflows/dynamic/espresso/getQpointIrrep.js +0 -34
- package/dist/js/subworkflows/dynamic/index.js +0 -19
- package/dist/js/subworkflows/dynamic/surfaceEnergy.js +0 -67
- package/dist/js/subworkflows/index.js +0 -19
- package/dist/js/units/assertion.js +0 -37
- package/dist/js/units/assignment.js +0 -42
- package/dist/js/units/base.js +0 -91
- package/dist/js/units/builders/AssertionUnitConfigBuilder.js +0 -34
- package/dist/js/units/builders/AssignmentUnitConfigBuilder.js +0 -41
- package/dist/js/units/builders/ExecutionUnitConfigBuilder.js +0 -67
- package/dist/js/units/builders/IOUnitConfigBuilder.js +0 -54
- package/dist/js/units/builders/UnitConfigBuilder.js +0 -85
- package/dist/js/units/builders/index.js +0 -18
- package/dist/js/units/condition.js +0 -52
- package/dist/js/units/execution.js +0 -225
- package/dist/js/units/io.js +0 -148
- package/dist/js/units/map.js +0 -38
- package/dist/js/units/processing.js +0 -41
- package/dist/js/units/reduce.js +0 -24
- package/dist/js/units/subworkflow.js +0 -23
- package/dist/js/workflows/create.js +0 -318
- package/dist/js/workflows/index.js +0 -113
- package/dist/js/workflows/relaxation.js +0 -38
- package/src/js/context/context.js +0 -47
- package/src/js/context/mixins/ApplicationContextMixin.js +0 -19
- package/src/js/context/mixins/JobContextMixin.js +0 -36
- package/src/js/context/mixins/MaterialContextMixin.js +0 -41
- package/src/js/context/mixins/MaterialsContextMixin.js +0 -18
- package/src/js/context/mixins/MaterialsSetContextMixin.js +0 -24
- package/src/js/context/mixins/MethodDataContextMixin.js +0 -48
- package/src/js/context/mixins/WorkflowContextMixin.js +0 -25
- package/src/js/context/providers/BoundaryConditionsFormDataProvider.js +0 -72
- package/src/js/context/providers/CollinearMagnetizationContextProvider.js +0 -105
- package/src/js/context/providers/HubbardContextProviderLegacy.js +0 -67
- package/src/js/context/providers/HubbardJContextProvider.js +0 -65
- package/src/js/context/providers/HubbardUContextProvider.js +0 -95
- package/src/js/context/providers/HubbardVContextProvider.js +0 -96
- package/src/js/context/providers/IonDynamicsContextProvider.js +0 -44
- package/src/js/context/providers/MLSettingsContextProvider.js +0 -45
- package/src/js/context/providers/MLTrainTestSplitContextProvider.js +0 -43
- package/src/js/context/providers/NEBFormDataProvider.js +0 -33
- package/src/js/context/providers/NonCollinearMagnetizationContextProvider.js +0 -179
- package/src/js/context/providers/PlanewaveCutoffsContextProvider.js +0 -65
- package/src/js/context/providers/PointsGridFormDataProvider.js +0 -271
- package/src/js/context/providers/PointsPathFormDataProvider.js +0 -163
- package/src/js/context/providers/by_application/ExecutableContextProvider.js +0 -17
- package/src/js/context/providers/by_application/espresso/QENEBContextProvider.js +0 -58
- package/src/js/context/providers/by_application/espresso/QEPWXContextProvider.js +0 -168
- package/src/js/context/providers/by_application/nwchem/NWChemTotalEnergyContextProvider.js +0 -89
- package/src/js/context/providers/by_application/vasp/VASPContextProvider.js +0 -58
- package/src/js/context/providers/by_application/vasp/VASPNEBContextProvider.js +0 -48
- package/src/js/context/providers/settings.js +0 -38
- package/src/js/context/providers.js +0 -140
- package/src/js/index.js +0 -57
- package/src/js/patch.js +0 -12
- package/src/js/subworkflows/convergence/enums.js +0 -12
- package/src/js/subworkflows/convergence/factory.js +0 -15
- package/src/js/subworkflows/convergence/non_uniform_kgrid.js +0 -28
- package/src/js/subworkflows/convergence/parameter.js +0 -58
- package/src/js/subworkflows/convergence/uniform_kgrid.js +0 -22
- package/src/js/subworkflows/convergence.js +0 -196
- package/src/js/subworkflows/create.js +0 -220
- package/src/js/subworkflows/dynamic/espresso/getQpointIrrep.js +0 -35
- package/src/js/subworkflows/dynamic/index.js +0 -8
- package/src/js/subworkflows/dynamic/surfaceEnergy.js +0 -124
- package/src/js/subworkflows/index.js +0 -2
- package/src/js/subworkflows/subworkflow.js +0 -345
- package/src/js/units/assertion.js +0 -29
- package/src/js/units/assignment.js +0 -34
- package/src/js/units/base.js +0 -97
- package/src/js/units/builders/AssertionUnitConfigBuilder.js +0 -28
- package/src/js/units/builders/AssignmentUnitConfigBuilder.js +0 -36
- package/src/js/units/builders/ExecutionUnitConfigBuilder.js +0 -59
- package/src/js/units/builders/IOUnitConfigBuilder.js +0 -53
- package/src/js/units/builders/UnitConfigBuilder.js +0 -92
- package/src/js/units/builders/index.js +0 -15
- package/src/js/units/condition.js +0 -47
- package/src/js/units/execution.js +0 -267
- package/src/js/units/factory.js +0 -53
- package/src/js/units/index.js +0 -25
- package/src/js/units/io.js +0 -163
- package/src/js/units/map.js +0 -33
- package/src/js/units/processing.js +0 -39
- package/src/js/units/reduce.js +0 -17
- package/src/js/units/subworkflow.js +0 -15
- package/src/js/utils.js +0 -73
- package/src/js/workflows/create.js +0 -227
- package/src/js/workflows/index.js +0 -98
- package/src/js/workflows/relaxation.js +0 -42
- package/src/js/workflows/workflow.js +0 -388
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import JSONSchemasInterface from "@mat3ra/esse/dist/js/esse/JSONSchemasInterface";
|
|
2
|
+
import type { InputContextItemSchema, VASPContextProviderSchema } from "@mat3ra/esse/dist/js/types";
|
|
3
|
+
import type { Material } from "@mat3ra/made";
|
|
4
|
+
import type { JSONSchema7 } from "json-schema";
|
|
5
|
+
|
|
6
|
+
import materialContextMixin, {
|
|
7
|
+
type MaterialContextMixin,
|
|
8
|
+
type MaterialExternalContext,
|
|
9
|
+
} from "../../../mixins/MaterialContextMixin";
|
|
10
|
+
import materialsContextMixin, {
|
|
11
|
+
type MaterialsContextMixin,
|
|
12
|
+
type MaterialsExternalContext,
|
|
13
|
+
} from "../../../mixins/MaterialsContextMixin";
|
|
14
|
+
import type { UnitContext } from "../../base/ContextProvider";
|
|
15
|
+
import JSONSchemaDataProvider, {
|
|
16
|
+
type JinjaExternalContext,
|
|
17
|
+
} from "../../base/JSONSchemaDataProvider";
|
|
18
|
+
|
|
19
|
+
type Data = VASPContextProviderSchema;
|
|
20
|
+
type Schema = InputContextItemSchema & { data: Data };
|
|
21
|
+
type ExternalContext = JinjaExternalContext & MaterialExternalContext & MaterialsExternalContext;
|
|
22
|
+
|
|
23
|
+
interface VASPInputDataManager extends MaterialContextMixin, MaterialsContextMixin {}
|
|
24
|
+
|
|
25
|
+
const jsonSchemaId = "context-providers-directory/by-application/vasp-context-provider";
|
|
26
|
+
|
|
27
|
+
class VASPInputDataManager extends JSONSchemaDataProvider<Schema, ExternalContext> {
|
|
28
|
+
readonly name = "input" as const;
|
|
29
|
+
|
|
30
|
+
readonly domain = "executable" as const;
|
|
31
|
+
|
|
32
|
+
readonly entityName = "unit" as const;
|
|
33
|
+
|
|
34
|
+
isEdited = false;
|
|
35
|
+
|
|
36
|
+
static createFromUnitContext(unitContext: UnitContext, externalContext: ExternalContext) {
|
|
37
|
+
const contextItem = this.findContextItem<Schema>(unitContext, "input");
|
|
38
|
+
|
|
39
|
+
return new VASPInputDataManager(contextItem, externalContext);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
readonly jsonSchema: JSONSchema7;
|
|
43
|
+
|
|
44
|
+
constructor(config: Partial<Schema>, externalContext: ExternalContext) {
|
|
45
|
+
super(config, externalContext);
|
|
46
|
+
this.initMaterialsContextMixin(externalContext);
|
|
47
|
+
this.initMaterialContextMixin(externalContext);
|
|
48
|
+
|
|
49
|
+
const jsonSchema = JSONSchemasInterface.getSchemaById(jsonSchemaId);
|
|
50
|
+
|
|
51
|
+
if (!jsonSchema) {
|
|
52
|
+
throw new Error("Failed to get JSON schema");
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
this.jsonSchema = jsonSchema;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// eslint-disable-next-line class-methods-use-this
|
|
59
|
+
private buildVASPContext(material: Material): Data {
|
|
60
|
+
return {
|
|
61
|
+
// TODO: figure out whether we need two separate POSCARS, maybe one is enough
|
|
62
|
+
POSCAR: material.getAsPOSCAR(true, true),
|
|
63
|
+
POSCAR_WITH_CONSTRAINTS: material.getAsPOSCAR(true),
|
|
64
|
+
contextProviderName: "vasp" as const,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
private getDataPerMaterial() {
|
|
69
|
+
if (!this.materials || this.materials.length <= 1) return {};
|
|
70
|
+
|
|
71
|
+
return { perMaterial: this.materials.map((material) => this.buildVASPContext(material)) };
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
getDefaultData() {
|
|
75
|
+
// consider adjusting so that below values are read from PlanewaveDataManager
|
|
76
|
+
// ECUTWFC;
|
|
77
|
+
// ECUTRHO;
|
|
78
|
+
|
|
79
|
+
return {
|
|
80
|
+
...this.buildVASPContext(this.material),
|
|
81
|
+
...this.getDataPerMaterial(),
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
materialContextMixin(VASPInputDataManager.prototype);
|
|
87
|
+
materialsContextMixin(VASPInputDataManager.prototype);
|
|
88
|
+
|
|
89
|
+
export default VASPInputDataManager;
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import JSONSchemasInterface from "@mat3ra/esse/dist/js/esse/JSONSchemasInterface";
|
|
2
|
+
import type {
|
|
3
|
+
InputContextItemSchema,
|
|
4
|
+
VASPNEBContextProviderSchema,
|
|
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 materialsContextMixin, {
|
|
13
|
+
type MaterialsContextMixin,
|
|
14
|
+
type MaterialsExternalContext,
|
|
15
|
+
} from "../../../mixins/MaterialsContextMixin";
|
|
16
|
+
import materialsSetContextMixin, {
|
|
17
|
+
type MaterialsSetContextMixin,
|
|
18
|
+
type MaterialsSetExternalContext,
|
|
19
|
+
} from "../../../mixins/MaterialsSetContextMixin";
|
|
20
|
+
import type { UnitContext } from "../../base/ContextProvider";
|
|
21
|
+
import JSONSchemaDataProvider, {
|
|
22
|
+
type JinjaExternalContext,
|
|
23
|
+
} from "../../base/JSONSchemaDataProvider";
|
|
24
|
+
import VASPInputDataManager from "./VASPInputDataManager";
|
|
25
|
+
|
|
26
|
+
type Data = VASPNEBContextProviderSchema;
|
|
27
|
+
type Schema = InputContextItemSchema & { data: Data };
|
|
28
|
+
type ExternalContext = JinjaExternalContext &
|
|
29
|
+
MaterialExternalContext &
|
|
30
|
+
MaterialsExternalContext &
|
|
31
|
+
MaterialsSetExternalContext;
|
|
32
|
+
|
|
33
|
+
interface VASPNEBInputDataManager
|
|
34
|
+
extends MaterialContextMixin,
|
|
35
|
+
MaterialsContextMixin,
|
|
36
|
+
MaterialsSetContextMixin {}
|
|
37
|
+
|
|
38
|
+
const jsonSchemaId = "context-providers-directory/by-application/vasp-neb-context-provider";
|
|
39
|
+
|
|
40
|
+
class VASPNEBInputDataManager extends JSONSchemaDataProvider<Schema, ExternalContext> {
|
|
41
|
+
readonly name = "input" as const;
|
|
42
|
+
|
|
43
|
+
readonly domain = "executable" as const;
|
|
44
|
+
|
|
45
|
+
readonly entityName = "unit" as const;
|
|
46
|
+
|
|
47
|
+
isEdited = false;
|
|
48
|
+
|
|
49
|
+
static createFromUnitContext(unitContext: UnitContext, externalContext: ExternalContext) {
|
|
50
|
+
const contextItem = this.findContextItem<Schema>(unitContext, "input");
|
|
51
|
+
|
|
52
|
+
return new VASPNEBInputDataManager(contextItem, externalContext);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
readonly jsonSchema: JSONSchema7;
|
|
56
|
+
|
|
57
|
+
constructor(config: Partial<Schema>, externalContext: ExternalContext) {
|
|
58
|
+
super(config, externalContext);
|
|
59
|
+
this.initMaterialContextMixin(externalContext);
|
|
60
|
+
this.initMaterialsContextMixin(externalContext);
|
|
61
|
+
this.initMaterialsSetContextMixin(externalContext);
|
|
62
|
+
|
|
63
|
+
const jsonSchema = JSONSchemasInterface.getSchemaById(jsonSchemaId);
|
|
64
|
+
|
|
65
|
+
if (!jsonSchema) {
|
|
66
|
+
throw new Error("Failed to get JSON schema");
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
this.jsonSchema = jsonSchema;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
getDefaultData() {
|
|
73
|
+
const VASPContexts = this.sortMaterialsByIndexInSet(this.materials).map((material) => {
|
|
74
|
+
return new VASPInputDataManager({}, { ...this.externalContext, material }).getData();
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
return {
|
|
78
|
+
FIRST_IMAGE: VASPContexts[0].POSCAR_WITH_CONSTRAINTS,
|
|
79
|
+
LAST_IMAGE: VASPContexts[VASPContexts.length - 1].POSCAR_WITH_CONSTRAINTS,
|
|
80
|
+
INTERMEDIATE_IMAGES: VASPContexts.slice(1, VASPContexts.length - 1).map((data) => {
|
|
81
|
+
return data.POSCAR_WITH_CONSTRAINTS;
|
|
82
|
+
}),
|
|
83
|
+
contextProviderName: "vasp-neb" as const,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
materialContextMixin(VASPNEBInputDataManager.prototype);
|
|
89
|
+
materialsContextMixin(VASPNEBInputDataManager.prototype);
|
|
90
|
+
materialsSetContextMixin(VASPNEBInputDataManager.prototype);
|
|
91
|
+
|
|
92
|
+
export default VASPNEBInputDataManager;
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import type { AssignmentUnitSchema } from "@mat3ra/esse/dist/js/types";
|
|
2
|
+
|
|
3
|
+
import type { ApplicationExternalContext } from "../mixins/ApplicationContextMixin";
|
|
4
|
+
import type { MaterialExternalContext } from "../mixins/MaterialContextMixin";
|
|
5
|
+
import type { MaterialsExternalContext } from "../mixins/MaterialsContextMixin";
|
|
6
|
+
import type { MaterialsSetExternalContext } from "../mixins/MaterialsSetContextMixin";
|
|
7
|
+
import type { UnitContext } from "./base/ContextProvider";
|
|
8
|
+
import type { JinjaExternalContext } from "./base/JSONSchemaDataProvider";
|
|
9
|
+
import BoundaryConditionsFormDataManager from "./BoundaryConditionsFormDataManager";
|
|
10
|
+
import QENEBInputDataManager from "./by_application/espresso/QENEBInputDataManager";
|
|
11
|
+
import QEPWXInputDataManager, {
|
|
12
|
+
type JobExternalContext,
|
|
13
|
+
type MethodDataExternalContext,
|
|
14
|
+
type WorkflowExternalContext,
|
|
15
|
+
} from "./by_application/espresso/QEPWXInputDataManager";
|
|
16
|
+
import NWChemInputDataManager from "./by_application/nwchem/NWChemInputDataManager";
|
|
17
|
+
import VASPInputDataManager from "./by_application/vasp/VASPInputDataManager";
|
|
18
|
+
import VASPNEBInputDataManager from "./by_application/vasp/VASPNEBInputDataManager";
|
|
19
|
+
import CollinearMagnetizationDataManager from "./CollinearMagnetizationDataManager";
|
|
20
|
+
import HubbardContextManagerLegacy from "./Hubbard/HubbardContextManagerLegacy";
|
|
21
|
+
import HubbardJContextManager from "./Hubbard/HubbardJContextManager";
|
|
22
|
+
import HubbardUContextManager from "./Hubbard/HubbardUContextManager";
|
|
23
|
+
import HubbardVContextManager from "./Hubbard/HubbardVContextManager";
|
|
24
|
+
import IonDynamicsDataManager from "./IonDynamicsDataManager";
|
|
25
|
+
import MLSettingsDataManager from "./MLSettingsDataManager";
|
|
26
|
+
import MLTrainTestSplitDataManager from "./MLTrainTestSplitDataManager";
|
|
27
|
+
import NEBFormDataManager from "./NEBFormDataManager";
|
|
28
|
+
import NonCollinearMagnetizationDataManager from "./NonCollinearMagnetizationDataManager";
|
|
29
|
+
import PlanewaveCutoffDataManager from "./PlanewaveCutoffDataManager";
|
|
30
|
+
import IGridFormDataManager from "./PointsGrid/IGridFormDataManager";
|
|
31
|
+
import KGridFormDataManager from "./PointsGrid/KGridFormDataManager";
|
|
32
|
+
import QGridFormDataManager from "./PointsGrid/QGridFormDataManager";
|
|
33
|
+
import ExplicitKPath2PIBAFormDataManager from "./PointsPath/ExplicitKPath2PIBAFormDataManager";
|
|
34
|
+
import ExplicitKPathFormDataManager from "./PointsPath/ExplicitKPathFormDataManager";
|
|
35
|
+
import IPathFormDataManager from "./PointsPath/IPathFormDataManager";
|
|
36
|
+
import KPathFormDataManager from "./PointsPath/KPathFormDataManager";
|
|
37
|
+
import QPathFormDataManager from "./PointsPath/QPathFormDataManager";
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Registry mapping provider names (as they appear in templates) to their classes.
|
|
41
|
+
* This is the single source of truth for provider mappings.
|
|
42
|
+
*/
|
|
43
|
+
export const PROVIDER_REGISTRY = {
|
|
44
|
+
PlanewaveCutoffDataManager,
|
|
45
|
+
KGridFormDataManager,
|
|
46
|
+
QGridFormDataManager,
|
|
47
|
+
IGridFormDataManager,
|
|
48
|
+
QPathFormDataManager,
|
|
49
|
+
IPathFormDataManager,
|
|
50
|
+
KPathFormDataManager,
|
|
51
|
+
ExplicitKPathFormDataManager,
|
|
52
|
+
ExplicitKPath2PIBAFormDataManager,
|
|
53
|
+
HubbardJContextManager,
|
|
54
|
+
HubbardUContextManager,
|
|
55
|
+
HubbardVContextManager,
|
|
56
|
+
HubbardContextManagerLegacy,
|
|
57
|
+
NEBFormDataManager,
|
|
58
|
+
BoundaryConditionsFormDataManager,
|
|
59
|
+
MLSettingsDataManager,
|
|
60
|
+
MLTrainTestSplitDataManager,
|
|
61
|
+
IonDynamicsContextProvider: IonDynamicsDataManager, // Note: name mismatch preserved from original
|
|
62
|
+
CollinearMagnetizationDataManager,
|
|
63
|
+
NonCollinearMagnetizationDataManager,
|
|
64
|
+
QEPWXInputDataManager,
|
|
65
|
+
QENEBInputDataManager,
|
|
66
|
+
VASPInputDataManager,
|
|
67
|
+
VASPNEBInputDataManager,
|
|
68
|
+
NWChemInputDataManager,
|
|
69
|
+
} as const;
|
|
70
|
+
|
|
71
|
+
export type AssignmentContext = Record<
|
|
72
|
+
AssignmentUnitSchema["operand"],
|
|
73
|
+
AssignmentUnitSchema["value"]
|
|
74
|
+
>;
|
|
75
|
+
|
|
76
|
+
export type SubworkflowContext = {
|
|
77
|
+
subworkflowContext: AssignmentContext;
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* External context type used by ExecutionUnitInput when creating providers.
|
|
82
|
+
* This type is always expected to be present when providers are instantiated.
|
|
83
|
+
*/
|
|
84
|
+
export type ExternalContext = ApplicationExternalContext &
|
|
85
|
+
WorkflowExternalContext &
|
|
86
|
+
JobExternalContext &
|
|
87
|
+
MaterialsExternalContext &
|
|
88
|
+
MethodDataExternalContext &
|
|
89
|
+
MaterialsSetExternalContext &
|
|
90
|
+
MaterialExternalContext &
|
|
91
|
+
JinjaExternalContext &
|
|
92
|
+
SubworkflowContext;
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Type for provider names as they appear in templates.
|
|
96
|
+
*/
|
|
97
|
+
export type ProviderName = keyof typeof PROVIDER_REGISTRY;
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Union type of all context provider instances.
|
|
101
|
+
* Derived from the registry for type safety.
|
|
102
|
+
*/
|
|
103
|
+
export type AnyContextProvider = InstanceType<(typeof PROVIDER_REGISTRY)[ProviderName]>;
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Factory function to create a context provider instance from its name.
|
|
107
|
+
*
|
|
108
|
+
* @param name - The provider name as it appears in templates
|
|
109
|
+
* @param context - The unit context
|
|
110
|
+
* @param externalContext - The external context (must match the ExternalContext type defined in this file)
|
|
111
|
+
* @returns An instance of the requested context provider
|
|
112
|
+
* @throws Error if the provider name is unknown
|
|
113
|
+
*/
|
|
114
|
+
export function createProvider(
|
|
115
|
+
name: ProviderName,
|
|
116
|
+
context: UnitContext,
|
|
117
|
+
externalContext: ExternalContext,
|
|
118
|
+
): AnyContextProvider {
|
|
119
|
+
const ProviderClass = PROVIDER_REGISTRY[name];
|
|
120
|
+
if (!ProviderClass) {
|
|
121
|
+
throw new Error(`Unknown provider: ${name}`);
|
|
122
|
+
}
|
|
123
|
+
// The full ExternalContext is a superset of each provider's expected context type,
|
|
124
|
+
// so passing it to every provider's createFromUnitContext is type-safe (no assertion).
|
|
125
|
+
return ProviderClass.createFromUnitContext(context, externalContext);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
// Re-export all provider classes for convenience
|
|
129
|
+
export {
|
|
130
|
+
BoundaryConditionsFormDataManager,
|
|
131
|
+
QENEBInputDataManager,
|
|
132
|
+
QEPWXInputDataManager,
|
|
133
|
+
NWChemInputDataManager,
|
|
134
|
+
VASPInputDataManager,
|
|
135
|
+
VASPNEBInputDataManager,
|
|
136
|
+
CollinearMagnetizationDataManager,
|
|
137
|
+
HubbardContextManagerLegacy,
|
|
138
|
+
HubbardJContextManager,
|
|
139
|
+
HubbardUContextManager,
|
|
140
|
+
HubbardVContextManager,
|
|
141
|
+
IonDynamicsDataManager,
|
|
142
|
+
MLSettingsDataManager,
|
|
143
|
+
MLTrainTestSplitDataManager,
|
|
144
|
+
NEBFormDataManager,
|
|
145
|
+
NonCollinearMagnetizationDataManager,
|
|
146
|
+
PlanewaveCutoffDataManager,
|
|
147
|
+
IGridFormDataManager,
|
|
148
|
+
KGridFormDataManager,
|
|
149
|
+
QGridFormDataManager,
|
|
150
|
+
ExplicitKPath2PIBAFormDataManager,
|
|
151
|
+
ExplicitKPathFormDataManager,
|
|
152
|
+
IPathFormDataManager,
|
|
153
|
+
KPathFormDataManager,
|
|
154
|
+
QPathFormDataManager,
|
|
155
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
class GlobalSettings {
|
|
2
|
+
"PointsGridFormDataProvider.defaultKPPRA" = 5;
|
|
3
|
+
|
|
4
|
+
get defaultKPPRA() {
|
|
5
|
+
return this["PointsGridFormDataProvider.defaultKPPRA"];
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
setDefaultKPPRA(kppra: number) {
|
|
9
|
+
this["PointsGridFormDataProvider.defaultKPPRA"] = kppra;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export const globalSettings = new GlobalSettings();
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
interface ConvergenceParameterProps {
|
|
2
|
+
initialValue: number | [number, number, number];
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
export type ConvergenceParameterConfig = ConvergenceParameterProps & {
|
|
6
|
+
increment?: string | number;
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
export type UnitContext = {
|
|
10
|
+
data: {
|
|
11
|
+
dimensions: [string, string, string];
|
|
12
|
+
shifts: [0, 0, 0];
|
|
13
|
+
};
|
|
14
|
+
isUsingJinjaVariables: true;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export default abstract class ConvergenceParameter {
|
|
18
|
+
abstract readonly name: "N_k" | "N_k_nonuniform";
|
|
19
|
+
|
|
20
|
+
abstract readonly finalValue: string;
|
|
21
|
+
|
|
22
|
+
abstract readonly increment: string;
|
|
23
|
+
|
|
24
|
+
abstract readonly unitContext: UnitContext;
|
|
25
|
+
|
|
26
|
+
readonly initialValue: string;
|
|
27
|
+
|
|
28
|
+
constructor({ initialValue }: ConvergenceParameterProps) {
|
|
29
|
+
this.initialValue =
|
|
30
|
+
typeof initialValue === "string" ? initialValue : JSON.stringify(initialValue);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars, class-methods-use-this
|
|
34
|
+
useVariablesFromUnitContext(_flowchartId: string): { scope: string; name: string }[] {
|
|
35
|
+
return [];
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import ConvergenceParameter, {
|
|
2
|
+
type ConvergenceParameterConfig,
|
|
3
|
+
type UnitContext,
|
|
4
|
+
} from "./ConvergenceParameter";
|
|
5
|
+
|
|
6
|
+
export default class NonUniformKGridConvergence extends ConvergenceParameter {
|
|
7
|
+
readonly increment: string;
|
|
8
|
+
|
|
9
|
+
readonly name = "N_k_nonuniform" as const;
|
|
10
|
+
|
|
11
|
+
readonly finalValue = "N_k_nonuniform" as const;
|
|
12
|
+
|
|
13
|
+
readonly unitContext: UnitContext = {
|
|
14
|
+
data: {
|
|
15
|
+
dimensions: [`{{${this.name}[0]}}`, `{{${this.name}[1]}}`, `{{${this.name}[2]}}`],
|
|
16
|
+
shifts: [0, 0, 0],
|
|
17
|
+
},
|
|
18
|
+
isUsingJinjaVariables: true,
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
constructor({ initialValue, increment }: ConvergenceParameterConfig) {
|
|
22
|
+
super({ initialValue });
|
|
23
|
+
|
|
24
|
+
this.increment = `[${this.initialValue}[i] + math.floor(iteration * ${
|
|
25
|
+
increment || ""
|
|
26
|
+
} * float(context['kgrid']['reciprocalVectorRatios'][i])) for i in range(3)]`;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// eslint-disable-next-line class-methods-use-this
|
|
30
|
+
useVariablesFromUnitContext(flowchartId: string) {
|
|
31
|
+
return [
|
|
32
|
+
{
|
|
33
|
+
scope: flowchartId,
|
|
34
|
+
name: "context",
|
|
35
|
+
},
|
|
36
|
+
];
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import ConvergenceParameter, {
|
|
2
|
+
type ConvergenceParameterConfig,
|
|
3
|
+
type UnitContext,
|
|
4
|
+
} from "./ConvergenceParameter";
|
|
5
|
+
|
|
6
|
+
export default class UniformKGridConvergence extends ConvergenceParameter {
|
|
7
|
+
readonly increment: string;
|
|
8
|
+
|
|
9
|
+
readonly name = "N_k" as const;
|
|
10
|
+
|
|
11
|
+
readonly finalValue = `${this.name} + 0` as const;
|
|
12
|
+
|
|
13
|
+
readonly unitContext: UnitContext = {
|
|
14
|
+
data: {
|
|
15
|
+
dimensions: [`{{${this.name}}}`, `{{${this.name}}}`, `{{${this.name}}}`],
|
|
16
|
+
shifts: [0, 0, 0],
|
|
17
|
+
},
|
|
18
|
+
isUsingJinjaVariables: true,
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
constructor({ initialValue, increment }: ConvergenceParameterConfig) {
|
|
22
|
+
super({ initialValue });
|
|
23
|
+
|
|
24
|
+
this.increment = `${this.name} + ${increment || ""}`;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type ConvergenceParameterConfig } from "./ConvergenceParameter";
|
|
2
|
+
import NonUniformKGridConvergence from "./NonUniformKGridConvergence";
|
|
3
|
+
import UniformKGridConvergence from "./UniformKGridConvergence";
|
|
4
|
+
|
|
5
|
+
type FactoryParams = ConvergenceParameterConfig & {
|
|
6
|
+
name: "N_k" | "N_k_nonuniform";
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
export function createConvergenceParameter({ name, ...params }: FactoryParams) {
|
|
10
|
+
switch (name) {
|
|
11
|
+
case "N_k":
|
|
12
|
+
return new UniformKGridConvergence(params);
|
|
13
|
+
case "N_k_nonuniform":
|
|
14
|
+
return new NonUniformKGridConvergence(params);
|
|
15
|
+
default:
|
|
16
|
+
throw new Error(`Invalid convergence parameter name: ${name}`);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -1,10 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* THIS ENUMS ARE SHARED WITH TESTS.
|
|
3
|
-
* DO NOT IMPORT ANYTHINGS IN THIS MODULE.
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
export const IO_ID_COLUMN = "exabyteId";
|
|
7
|
-
|
|
8
1
|
export const UNIT_TYPES = {
|
|
9
2
|
// not currently used
|
|
10
3
|
convergence: "convergence",
|
|
@@ -16,28 +9,40 @@ export const UNIT_TYPES = {
|
|
|
16
9
|
assignment: "assignment",
|
|
17
10
|
condition: "condition",
|
|
18
11
|
subworkflow: "subworkflow",
|
|
19
|
-
processing: "processing",
|
|
20
12
|
io: "io",
|
|
21
13
|
assertion: "assertion",
|
|
22
|
-
};
|
|
14
|
+
} as const;
|
|
15
|
+
|
|
16
|
+
export enum UnitType {
|
|
17
|
+
convergence = "convergence",
|
|
18
|
+
exit = "exit",
|
|
19
|
+
execution = "execution",
|
|
20
|
+
map = "map",
|
|
21
|
+
reduce = "reduce",
|
|
22
|
+
assignment = "assignment",
|
|
23
|
+
condition = "condition",
|
|
24
|
+
subworkflow = "subworkflow",
|
|
25
|
+
io = "io",
|
|
26
|
+
assertion = "assertion",
|
|
27
|
+
}
|
|
23
28
|
|
|
24
|
-
export
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
error: "error",
|
|
29
|
-
warning: "warning",
|
|
30
|
-
};
|
|
29
|
+
export enum UnitTag {
|
|
30
|
+
hasConvergenceParam = "hasConvergenceParam",
|
|
31
|
+
hasConvergenceResult = "hasConvergenceResult",
|
|
32
|
+
}
|
|
31
33
|
|
|
32
|
-
export
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
export enum UnitStatus {
|
|
35
|
+
idle = "idle",
|
|
36
|
+
active = "active",
|
|
37
|
+
finished = "finished",
|
|
38
|
+
error = "error",
|
|
39
|
+
warning = "warning",
|
|
40
|
+
}
|
|
36
41
|
|
|
37
42
|
export const WORKFLOW_STATUSES = {
|
|
38
43
|
"up-to-date": "up-to-date",
|
|
39
44
|
outdated: "outdated",
|
|
40
|
-
};
|
|
45
|
+
} as const;
|
|
41
46
|
|
|
42
47
|
export const TAB_NAVIGATION_CONFIG = {
|
|
43
48
|
overview: {
|
|
@@ -60,6 +65,6 @@ export const TAB_NAVIGATION_CONFIG = {
|
|
|
60
65
|
className: "",
|
|
61
66
|
href: "sw-compute",
|
|
62
67
|
},
|
|
63
|
-
};
|
|
68
|
+
} as const;
|
|
64
69
|
|
|
65
70
|
export const UNIT_NAME_INVALID_CHARS = "/";
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { InMemoryEntity } from "@mat3ra/code/dist/js/entity";
|
|
2
|
+
import type { AssertionUnitMixinSchema } from "@mat3ra/esse/dist/js/types";
|
|
3
|
+
|
|
4
|
+
export type AssertionUnitSchemaMixin = AssertionUnitMixinSchema;
|
|
5
|
+
|
|
6
|
+
export type AssertionUnitInMemoryEntity = InMemoryEntity & AssertionUnitSchemaMixin;
|
|
7
|
+
|
|
8
|
+
export function assertionUnitSchemaMixin<T extends InMemoryEntity>(
|
|
9
|
+
item: InMemoryEntity,
|
|
10
|
+
): asserts item is T & AssertionUnitSchemaMixin {
|
|
11
|
+
// @ts-expect-error
|
|
12
|
+
const properties: InMemoryEntity & AssertionUnitSchemaMixin = {
|
|
13
|
+
get type() {
|
|
14
|
+
return this.prop<AssertionUnitMixinSchema["type"]>("type");
|
|
15
|
+
},
|
|
16
|
+
set type(value: AssertionUnitMixinSchema["type"]) {
|
|
17
|
+
this.setProp("type", value);
|
|
18
|
+
},
|
|
19
|
+
get statement() {
|
|
20
|
+
return this.requiredProp<AssertionUnitMixinSchema["statement"]>("statement");
|
|
21
|
+
},
|
|
22
|
+
set statement(value: AssertionUnitMixinSchema["statement"]) {
|
|
23
|
+
this.setProp("statement", value);
|
|
24
|
+
},
|
|
25
|
+
get errorMessage() {
|
|
26
|
+
return this.prop<AssertionUnitMixinSchema["errorMessage"]>("errorMessage");
|
|
27
|
+
},
|
|
28
|
+
set errorMessage(value: AssertionUnitMixinSchema["errorMessage"]) {
|
|
29
|
+
this.setProp("errorMessage", value);
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
Object.defineProperties(item, Object.getOwnPropertyDescriptors(properties));
|
|
34
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { InMemoryEntity } from "@mat3ra/code/dist/js/entity";
|
|
2
|
+
import type { AssignmentUnitMixinSchema } from "@mat3ra/esse/dist/js/types";
|
|
3
|
+
|
|
4
|
+
export type AssignmentUnitSchemaMixin = AssignmentUnitMixinSchema;
|
|
5
|
+
|
|
6
|
+
export type AssignmentUnitInMemoryEntity = InMemoryEntity & AssignmentUnitSchemaMixin;
|
|
7
|
+
|
|
8
|
+
export function assignmentUnitSchemaMixin<T extends InMemoryEntity>(
|
|
9
|
+
item: InMemoryEntity,
|
|
10
|
+
): asserts item is T & AssignmentUnitSchemaMixin {
|
|
11
|
+
// @ts-expect-error
|
|
12
|
+
const properties: InMemoryEntity & AssignmentUnitSchemaMixin = {
|
|
13
|
+
get type() {
|
|
14
|
+
return this.prop<AssignmentUnitMixinSchema["type"]>("type");
|
|
15
|
+
},
|
|
16
|
+
set type(value: AssignmentUnitMixinSchema["type"]) {
|
|
17
|
+
this.setProp("type", value);
|
|
18
|
+
},
|
|
19
|
+
get input() {
|
|
20
|
+
return this.prop<AssignmentUnitMixinSchema["input"]>("input");
|
|
21
|
+
},
|
|
22
|
+
set input(value: AssignmentUnitMixinSchema["input"]) {
|
|
23
|
+
this.setProp("input", value);
|
|
24
|
+
},
|
|
25
|
+
get operand() {
|
|
26
|
+
return this.requiredProp<AssignmentUnitMixinSchema["operand"]>("operand");
|
|
27
|
+
},
|
|
28
|
+
set operand(value: AssignmentUnitMixinSchema["operand"]) {
|
|
29
|
+
this.setProp("operand", value);
|
|
30
|
+
},
|
|
31
|
+
get value() {
|
|
32
|
+
return this.requiredProp<AssignmentUnitMixinSchema["value"]>("value");
|
|
33
|
+
},
|
|
34
|
+
set value(value: AssignmentUnitMixinSchema["value"]) {
|
|
35
|
+
this.setProp("value", value);
|
|
36
|
+
},
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
Object.defineProperties(item, Object.getOwnPropertyDescriptors(properties));
|
|
40
|
+
}
|