@mat3ra/wode 2026.4.9-0 → 2026.5.29-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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/utils.js +2 -7
- 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,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
|
+
}
|