@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
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
/* eslint-disable max-classes-per-file */
|
|
2
|
-
/* eslint react/prop-types: 0 */
|
|
3
|
-
import { JSONSchemaFormDataProvider } from "@mat3ra/ade";
|
|
4
|
-
import { math as codeJSMath } from "@mat3ra/code/dist/js/math";
|
|
5
|
-
import JSONSchemasInterface from "@mat3ra/esse/dist/js/esse/JSONSchemasInterface";
|
|
6
|
-
import { Made } from "@mat3ra/made";
|
|
7
|
-
import s from "underscore.string";
|
|
8
|
-
|
|
9
|
-
import { applicationContextMixin } from "../mixins/ApplicationContextMixin";
|
|
10
|
-
import { materialContextMixin } from "../mixins/MaterialContextMixin";
|
|
11
|
-
|
|
12
|
-
const defaultPoint = "Г";
|
|
13
|
-
const defaultSteps = 10;
|
|
14
|
-
|
|
15
|
-
export class PointsPathFormDataProvider extends JSONSchemaFormDataProvider {
|
|
16
|
-
jsonSchemaId = "context-providers-directory/points-path-data-provider";
|
|
17
|
-
|
|
18
|
-
constructor(config) {
|
|
19
|
-
super(config);
|
|
20
|
-
this.initMaterialContextMixin();
|
|
21
|
-
this.initApplicationContextMixin();
|
|
22
|
-
this.reciprocalLattice = new Made.ReciprocalLattice(this.material.lattice);
|
|
23
|
-
this.symmetryPoints = this.symmetryPointsFromMaterial;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
get isEditedIsSetToFalseOnMaterialUpdate() {
|
|
27
|
-
return this.isMaterialUpdated || this.isMaterialCreatedDefault;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
get defaultData() {
|
|
31
|
-
return this.reciprocalLattice.defaultKpointPath;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
get symmetryPointsFromMaterial() {
|
|
35
|
-
return this.reciprocalLattice.symmetryPoints;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
get jsonSchemaPatchConfig() {
|
|
39
|
-
const points = [].concat(this.symmetryPoints).map((x) => x.point);
|
|
40
|
-
|
|
41
|
-
return {
|
|
42
|
-
"items.properties.point": {
|
|
43
|
-
default: defaultPoint,
|
|
44
|
-
enum: points,
|
|
45
|
-
},
|
|
46
|
-
"items.properties.steps": {
|
|
47
|
-
default: defaultSteps,
|
|
48
|
-
},
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
get jsonSchema() {
|
|
53
|
-
return JSONSchemasInterface.getPatchedSchemaById(
|
|
54
|
-
this.jsonSchemaId,
|
|
55
|
-
this.jsonSchemaPatchConfig,
|
|
56
|
-
);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
// eslint-disable-next-line class-methods-use-this
|
|
60
|
-
get uiSchema() {
|
|
61
|
-
return {
|
|
62
|
-
items: {},
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
get uiSchemaStyled() {
|
|
67
|
-
return {
|
|
68
|
-
items: {
|
|
69
|
-
point: this.defaultFieldStyles,
|
|
70
|
-
steps: this.defaultFieldStyles,
|
|
71
|
-
},
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
// eslint-disable-next-line class-methods-use-this
|
|
76
|
-
get templates() {
|
|
77
|
-
return {};
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
getBrillouinZoneImageComponent(title) {
|
|
81
|
-
const hasRequiredFn = typeof this.material.getBrillouinZoneImageComponent === "function";
|
|
82
|
-
if (!hasRequiredFn) {
|
|
83
|
-
console.log(
|
|
84
|
-
"PointsPathFormDataProvider: Material class has no function" +
|
|
85
|
-
" 'getBrillouinZoneImageComponent'! Returning empty Object instead.",
|
|
86
|
-
);
|
|
87
|
-
return null;
|
|
88
|
-
}
|
|
89
|
-
return this.material.getBrillouinZoneImageComponent(title);
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
get useExplicitPath() {
|
|
93
|
-
return this.application.name === "vasp";
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
// override yieldData to avoid storing explicit path in saved context
|
|
97
|
-
yieldDataForRendering() {
|
|
98
|
-
return this.yieldData(this.useExplicitPath);
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
transformData(path = [], useExplicitPath = false) {
|
|
102
|
-
const rawData = path.map((p) => {
|
|
103
|
-
const point = this.symmetryPoints.find((sp) => sp.point === p.point);
|
|
104
|
-
return { ...p, coordinates: point.coordinates };
|
|
105
|
-
});
|
|
106
|
-
const processedData = useExplicitPath ? this._convertToExplicitPath(rawData) : rawData;
|
|
107
|
-
// make coordinates into string and add formatting
|
|
108
|
-
return processedData.map((p) => {
|
|
109
|
-
const coordinates = this.is2PIBA
|
|
110
|
-
? this.get2PIBACoordinates(p.coordinates)
|
|
111
|
-
: p.coordinates;
|
|
112
|
-
p.coordinates = coordinates.map((c) => s.sprintf("%14.9f", c));
|
|
113
|
-
return p;
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
get2PIBACoordinates(point) {
|
|
118
|
-
return this.reciprocalLattice.getCartesianCoordinates(point);
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
// Initially, path contains symmetry points with steps counts.
|
|
122
|
-
// This function explicitly calculates each point between symmetry points by step counts.
|
|
123
|
-
// eslint-disable-next-line class-methods-use-this
|
|
124
|
-
_convertToExplicitPath(path) {
|
|
125
|
-
const points = [];
|
|
126
|
-
for (let i = 0; i < path.length - 1; i++) {
|
|
127
|
-
const startPoint = path[i];
|
|
128
|
-
const endPoint = path[i + 1];
|
|
129
|
-
const middlePoints = codeJSMath.calculateSegmentsBetweenPoints3D(
|
|
130
|
-
startPoint.coordinates,
|
|
131
|
-
endPoint.coordinates,
|
|
132
|
-
startPoint.steps,
|
|
133
|
-
);
|
|
134
|
-
points.push(startPoint.coordinates);
|
|
135
|
-
points.push(...middlePoints);
|
|
136
|
-
// Include endPoint into path for the last section, otherwise it will be included by next loop iteration
|
|
137
|
-
if (path.length - 2 === i) points.push(endPoint.coordinates);
|
|
138
|
-
}
|
|
139
|
-
return points.map((x) => {
|
|
140
|
-
return {
|
|
141
|
-
coordinates: x,
|
|
142
|
-
steps: 1,
|
|
143
|
-
};
|
|
144
|
-
});
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
export class ExplicitPointsPathFormDataProvider extends PointsPathFormDataProvider {
|
|
149
|
-
// eslint-disable-next-line class-methods-use-this
|
|
150
|
-
get useExplicitPath() {
|
|
151
|
-
return true;
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
export class ExplicitPointsPath2PIBAFormDataProvider extends ExplicitPointsPathFormDataProvider {
|
|
156
|
-
// eslint-disable-next-line class-methods-use-this
|
|
157
|
-
get is2PIBA() {
|
|
158
|
-
return true;
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
materialContextMixin(PointsPathFormDataProvider.prototype);
|
|
163
|
-
applicationContextMixin(PointsPathFormDataProvider.prototype);
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { ContextProvider } from "@mat3ra/ade";
|
|
2
|
-
import JSONSchemasInterface from "@mat3ra/esse/dist/js/esse/JSONSchemasInterface";
|
|
3
|
-
|
|
4
|
-
export default class ExecutableContextProvider extends ContextProvider {
|
|
5
|
-
jsonSchemaId = "context-provider";
|
|
6
|
-
|
|
7
|
-
constructor(config) {
|
|
8
|
-
super({
|
|
9
|
-
...config,
|
|
10
|
-
domain: "executable",
|
|
11
|
-
});
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
get jsonSchema() {
|
|
15
|
-
return JSONSchemasInterface.getSchemaById(this.jsonSchemaId);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import lodash from "lodash";
|
|
2
|
-
|
|
3
|
-
import { jobContextMixin } from "../../../mixins/JobContextMixin";
|
|
4
|
-
import { materialContextMixin } from "../../../mixins/MaterialContextMixin";
|
|
5
|
-
import { materialsContextMixin } from "../../../mixins/MaterialsContextMixin";
|
|
6
|
-
import { materialsSetContextMixin } from "../../../mixins/MaterialsSetContextMixin";
|
|
7
|
-
import { methodDataContextMixin } from "../../../mixins/MethodDataContextMixin";
|
|
8
|
-
import { workflowContextMixin } from "../../../mixins/WorkflowContextMixin";
|
|
9
|
-
import ExecutableContextProvider from "../ExecutableContextProvider";
|
|
10
|
-
import QEPWXContextProvider from "./QEPWXContextProvider";
|
|
11
|
-
|
|
12
|
-
export default class QENEBContextProvider extends ExecutableContextProvider {
|
|
13
|
-
jsonSchemaId = "context-providers-directory/by-application/qe-neb-context-provider";
|
|
14
|
-
|
|
15
|
-
_material = undefined;
|
|
16
|
-
|
|
17
|
-
_materials = [];
|
|
18
|
-
|
|
19
|
-
_materialsSet = undefined;
|
|
20
|
-
|
|
21
|
-
constructor(config) {
|
|
22
|
-
super(config);
|
|
23
|
-
this.initJobContextMixin();
|
|
24
|
-
this.initMaterialsContextMixin();
|
|
25
|
-
this.initMethodDataContextMixin();
|
|
26
|
-
this.initWorkflowContextMixin();
|
|
27
|
-
this.initMaterialContextMixin();
|
|
28
|
-
this.initMaterialsSetContextMixin();
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
getData() {
|
|
32
|
-
const sortedMaterials = this.sortMaterialsByIndexInSet(this.materials);
|
|
33
|
-
const PWXContexts = sortedMaterials.map((material) => {
|
|
34
|
-
const context = { ...this.config.context, material };
|
|
35
|
-
const config = { ...this.config, context };
|
|
36
|
-
return new QEPWXContextProvider(config).getData();
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
return {
|
|
40
|
-
...lodash.omit(PWXContexts[0], [
|
|
41
|
-
"ATOMIC_POSITIONS",
|
|
42
|
-
"ATOMIC_POSITIONS_WITHOUT_CONSTRAINTS",
|
|
43
|
-
]),
|
|
44
|
-
FIRST_IMAGE: PWXContexts[0].ATOMIC_POSITIONS,
|
|
45
|
-
LAST_IMAGE: PWXContexts[PWXContexts.length - 1].ATOMIC_POSITIONS,
|
|
46
|
-
INTERMEDIATE_IMAGES: PWXContexts.slice(1, PWXContexts.length - 1).map(
|
|
47
|
-
(data) => data.ATOMIC_POSITIONS,
|
|
48
|
-
),
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
materialContextMixin(QENEBContextProvider.prototype);
|
|
54
|
-
materialsContextMixin(QENEBContextProvider.prototype);
|
|
55
|
-
methodDataContextMixin(QENEBContextProvider.prototype);
|
|
56
|
-
workflowContextMixin(QENEBContextProvider.prototype);
|
|
57
|
-
jobContextMixin(QENEBContextProvider.prototype);
|
|
58
|
-
materialsSetContextMixin(QENEBContextProvider.prototype);
|
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
import { PERIODIC_TABLE } from "@exabyte-io/periodic-table.js";
|
|
2
|
-
import path from "path";
|
|
3
|
-
import s from "underscore.string";
|
|
4
|
-
|
|
5
|
-
import { jobContextMixin } from "../../../mixins/JobContextMixin";
|
|
6
|
-
import { materialContextMixin } from "../../../mixins/MaterialContextMixin";
|
|
7
|
-
import { materialsContextMixin } from "../../../mixins/MaterialsContextMixin";
|
|
8
|
-
import { methodDataContextMixin } from "../../../mixins/MethodDataContextMixin";
|
|
9
|
-
import { workflowContextMixin } from "../../../mixins/WorkflowContextMixin";
|
|
10
|
-
import ExecutableContextProvider from "../ExecutableContextProvider";
|
|
11
|
-
|
|
12
|
-
export default class QEPWXContextProvider extends ExecutableContextProvider {
|
|
13
|
-
jsonSchemaId = "context-providers-directory/by-application/qe-pwx-context-provider";
|
|
14
|
-
|
|
15
|
-
_material = undefined;
|
|
16
|
-
|
|
17
|
-
_materials = [];
|
|
18
|
-
|
|
19
|
-
constructor(config) {
|
|
20
|
-
super(config);
|
|
21
|
-
this.initMaterialsContextMixin();
|
|
22
|
-
this.initMethodDataContextMixin();
|
|
23
|
-
this.initWorkflowContextMixin();
|
|
24
|
-
this.initJobContextMixin();
|
|
25
|
-
this.initMaterialContextMixin();
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
static atomSymbols(material) {
|
|
29
|
-
return material.Basis.uniqueElements;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
static uniqueElementsWithLabels(material) {
|
|
33
|
-
// return unique items
|
|
34
|
-
return [...new Set(material.Basis.elementsWithLabelsArray)];
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
/** Returns the input text block for atomic positions WITH constraints.
|
|
38
|
-
*/
|
|
39
|
-
static atomicPositionsWithConstraints(material) {
|
|
40
|
-
return material.Basis.getAtomicPositionsWithConstraintsAsStrings().join("\n");
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
/** Returns the input text block for atomic positions
|
|
44
|
-
* Note: does NOT include constraints
|
|
45
|
-
*/
|
|
46
|
-
static atomicPositions(material) {
|
|
47
|
-
return material.Basis.atomicPositions.join("\n");
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
static NAT(material) {
|
|
51
|
-
return material.Basis.atomicPositions.length;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
static NTYP(material) {
|
|
55
|
-
return material.Basis.uniqueElements.length;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
static NTYP_WITH_LABELS(material) {
|
|
59
|
-
return this.uniqueElementsWithLabels(material).length;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
buildQEPWXContext(material) {
|
|
63
|
-
const IBRAV = 0; // use CELL_PARAMETERS to define Bravais lattice
|
|
64
|
-
|
|
65
|
-
return {
|
|
66
|
-
IBRAV,
|
|
67
|
-
RESTART_MODE: this.RESTART_MODE,
|
|
68
|
-
ATOMIC_SPECIES: this.ATOMIC_SPECIES(material),
|
|
69
|
-
ATOMIC_SPECIES_WITH_LABELS: this.ATOMIC_SPECIES_WITH_LABELS(material),
|
|
70
|
-
NAT: QEPWXContextProvider.NAT(material),
|
|
71
|
-
NTYP: QEPWXContextProvider.NTYP(material),
|
|
72
|
-
NTYP_WITH_LABELS: QEPWXContextProvider.NTYP_WITH_LABELS(material),
|
|
73
|
-
ATOMIC_POSITIONS: QEPWXContextProvider.atomicPositionsWithConstraints(material),
|
|
74
|
-
ATOMIC_POSITIONS_WITHOUT_CONSTRAINTS: QEPWXContextProvider.atomicPositions(material),
|
|
75
|
-
CELL_PARAMETERS: QEPWXContextProvider.CELL_PARAMETERS(material),
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
getDataPerMaterial() {
|
|
80
|
-
if (!this.materials || this.materials.length <= 1) return {};
|
|
81
|
-
return { perMaterial: this.materials.map((material) => this.buildQEPWXContext(material)) };
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
/*
|
|
85
|
-
* @NOTE: Overriding getData makes this provider "stateless", ie. delivering data from scratch each time and not
|
|
86
|
-
* considering the content of `this.data`, and `this.isEdited` field(s).
|
|
87
|
-
*/
|
|
88
|
-
getData() {
|
|
89
|
-
// the below values are read from PlanewaveDataManager instead
|
|
90
|
-
// ECUTWFC = 40;
|
|
91
|
-
// ECUTRHO = 200;
|
|
92
|
-
|
|
93
|
-
return {
|
|
94
|
-
...this.buildQEPWXContext(this.material),
|
|
95
|
-
...this.getDataPerMaterial(),
|
|
96
|
-
};
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
get RESTART_MODE() {
|
|
100
|
-
return this.job.parentJob || this.workflow.hasRelaxation ? "restart" : "from_scratch";
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
getPseudoBySymbol(symbol) {
|
|
104
|
-
return (this.methodData.pseudo || []).find((p) => p.element === symbol);
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
/** Builds ATOMIC SPECIES block of pw.x input in the format
|
|
108
|
-
* X Mass_X PseudoPot_X
|
|
109
|
-
* where X is the atom label
|
|
110
|
-
* Mass_X is the mass of element X [amu]
|
|
111
|
-
* PseudoPot_X is the pseudopotential filename associated with element X
|
|
112
|
-
*
|
|
113
|
-
* Note: assumes this.methodData is defined
|
|
114
|
-
*/
|
|
115
|
-
ATOMIC_SPECIES(material) {
|
|
116
|
-
return QEPWXContextProvider.atomSymbols(material)
|
|
117
|
-
.map((symbol) => {
|
|
118
|
-
const pseudo = this.getPseudoBySymbol(symbol);
|
|
119
|
-
return QEPWXContextProvider.symbolToAtomicSpecie(symbol, pseudo);
|
|
120
|
-
})
|
|
121
|
-
.join("\n");
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
ATOMIC_SPECIES_WITH_LABELS(material) {
|
|
125
|
-
return QEPWXContextProvider.uniqueElementsWithLabels(material)
|
|
126
|
-
.map((symbol) => {
|
|
127
|
-
const symbolWithoutLabel = symbol.replace(/\d$/, "");
|
|
128
|
-
const label = symbol.match(/\d$/g) ? symbol.match(/\d$/g)?.[0] : "";
|
|
129
|
-
const pseudo = this.getPseudoBySymbol(symbolWithoutLabel);
|
|
130
|
-
return QEPWXContextProvider.elementAndPseudoToAtomicSpecieWithLabels(
|
|
131
|
-
symbolWithoutLabel,
|
|
132
|
-
pseudo,
|
|
133
|
-
label,
|
|
134
|
-
);
|
|
135
|
-
})
|
|
136
|
-
.join("\n");
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
static CELL_PARAMETERS(material) {
|
|
140
|
-
return material.Lattice.vectorArrays
|
|
141
|
-
.map((x) => {
|
|
142
|
-
return x
|
|
143
|
-
.map((y) => {
|
|
144
|
-
return s.sprintf("%14.9f", y).trim();
|
|
145
|
-
})
|
|
146
|
-
.join(" ");
|
|
147
|
-
})
|
|
148
|
-
.join("\n");
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
static symbolToAtomicSpecie(symbol, pseudo) {
|
|
152
|
-
const el = PERIODIC_TABLE[symbol];
|
|
153
|
-
const filename = pseudo?.filename || path.basename(pseudo?.path || "");
|
|
154
|
-
return s.sprintf("%s %f %s", symbol, el.atomic_mass, filename) || "";
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
static elementAndPseudoToAtomicSpecieWithLabels(symbol, pseudo, label = "") {
|
|
158
|
-
const el = PERIODIC_TABLE[symbol];
|
|
159
|
-
const filename = pseudo?.filename || path.basename(pseudo?.path || "");
|
|
160
|
-
return s.sprintf("%s%s %f %s", symbol, label, el.atomic_mass, filename) || "";
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
materialContextMixin(QEPWXContextProvider.prototype);
|
|
165
|
-
materialsContextMixin(QEPWXContextProvider.prototype);
|
|
166
|
-
methodDataContextMixin(QEPWXContextProvider.prototype);
|
|
167
|
-
workflowContextMixin(QEPWXContextProvider.prototype);
|
|
168
|
-
jobContextMixin(QEPWXContextProvider.prototype);
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import { PERIODIC_TABLE } from "@exabyte-io/periodic-table.js";
|
|
2
|
-
import lodash from "lodash";
|
|
3
|
-
import _ from "underscore";
|
|
4
|
-
import s from "underscore.string";
|
|
5
|
-
|
|
6
|
-
import { jobContextMixin } from "../../../mixins/JobContextMixin";
|
|
7
|
-
import { materialContextMixin } from "../../../mixins/MaterialContextMixin";
|
|
8
|
-
import { methodDataContextMixin } from "../../../mixins/MethodDataContextMixin";
|
|
9
|
-
import { workflowContextMixin } from "../../../mixins/WorkflowContextMixin";
|
|
10
|
-
import ExecutableContextProvider from "../ExecutableContextProvider";
|
|
11
|
-
|
|
12
|
-
export default class NWChemTotalEnergyContextProvider extends ExecutableContextProvider {
|
|
13
|
-
jsonSchemaId =
|
|
14
|
-
"context-providers-directory/by-application/nwchem-total-energy-context-provider";
|
|
15
|
-
|
|
16
|
-
_material = undefined;
|
|
17
|
-
|
|
18
|
-
constructor(config) {
|
|
19
|
-
super(config);
|
|
20
|
-
this.initMethodDataContextMixin();
|
|
21
|
-
this.initWorkflowContextMixin();
|
|
22
|
-
this.initJobContextMixin();
|
|
23
|
-
this.initMaterialContextMixin();
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
get atomicPositionsWithoutConstraints() {
|
|
27
|
-
return this.material.Basis.atomicPositions;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
get atomicPositions() {
|
|
31
|
-
const basis = this.material.Basis;
|
|
32
|
-
basis.toCartesian();
|
|
33
|
-
return basis.getAtomicPositionsWithConstraintsAsStrings();
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
get atomSymbols() {
|
|
37
|
-
return this.material.Basis.uniqueElements;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
get cartesianAtomicPositions() {
|
|
41
|
-
return this.material.Basis.toCartesian !== undefined;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
get ATOMIC_SPECIES() {
|
|
45
|
-
return _.map(this.atomSymbols, (symbol) => {
|
|
46
|
-
return NWChemTotalEnergyContextProvider.symbolToAtomicSpecies(symbol);
|
|
47
|
-
}).join("\n");
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
/*
|
|
51
|
-
* @NOTE: Overriding getData makes this provider "stateless", ie. delivering data from scratch each time and not
|
|
52
|
-
* considering the content of `this.data`, and `this.isEdited` field(s).
|
|
53
|
-
*/
|
|
54
|
-
getData() {
|
|
55
|
-
/*
|
|
56
|
-
TODO: Create ability for user to define CHARGE, MULT, BASIS and FUNCTIONAL parameters.
|
|
57
|
-
*/
|
|
58
|
-
const CHARGE = 0;
|
|
59
|
-
const MULT = 1;
|
|
60
|
-
const BASIS = "6-31G";
|
|
61
|
-
const FUNCTIONAL = "B3LYP";
|
|
62
|
-
|
|
63
|
-
return {
|
|
64
|
-
CHARGE,
|
|
65
|
-
MULT,
|
|
66
|
-
BASIS,
|
|
67
|
-
NAT: this.atomicPositions.length,
|
|
68
|
-
NTYP: this.atomSymbols.length,
|
|
69
|
-
ATOMIC_POSITIONS: this.atomicPositions.join("\n"),
|
|
70
|
-
ATOMIC_POSITIONS_WITHOUT_CONSTRAINTS: this.atomicPositionsWithoutConstraints.join("\n"),
|
|
71
|
-
ATOMIC_SPECIES: this.ATOMIC_SPECIES,
|
|
72
|
-
FUNCTIONAL,
|
|
73
|
-
CARTESIAN: this.cartesianAtomicPositions,
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
static symbolToAtomicSpecies(symbol, pseudo) {
|
|
78
|
-
const el = PERIODIC_TABLE[symbol];
|
|
79
|
-
const filename = pseudo
|
|
80
|
-
? lodash.get(pseudo, "filename", s.strRightBack(pseudo.path || "", "/"))
|
|
81
|
-
: "";
|
|
82
|
-
return el ? s.sprintf("%s %f %s", symbol, el.atomic_mass, filename) : undefined;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
materialContextMixin(NWChemTotalEnergyContextProvider.prototype);
|
|
87
|
-
methodDataContextMixin(NWChemTotalEnergyContextProvider.prototype);
|
|
88
|
-
workflowContextMixin(NWChemTotalEnergyContextProvider.prototype);
|
|
89
|
-
jobContextMixin(NWChemTotalEnergyContextProvider.prototype);
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { jobContextMixin } from "../../../mixins/JobContextMixin";
|
|
2
|
-
import { materialContextMixin } from "../../../mixins/MaterialContextMixin";
|
|
3
|
-
import { materialsContextMixin } from "../../../mixins/MaterialsContextMixin";
|
|
4
|
-
import { methodDataContextMixin } from "../../../mixins/MethodDataContextMixin";
|
|
5
|
-
import { workflowContextMixin } from "../../../mixins/WorkflowContextMixin";
|
|
6
|
-
import ExecutableContextProvider from "../ExecutableContextProvider";
|
|
7
|
-
|
|
8
|
-
export default class VASPContextProvider extends ExecutableContextProvider {
|
|
9
|
-
jsonSchemaId = "context-providers-directory/by-application/vasp-context-provider";
|
|
10
|
-
|
|
11
|
-
_material = undefined;
|
|
12
|
-
|
|
13
|
-
_materials = [];
|
|
14
|
-
|
|
15
|
-
constructor(config) {
|
|
16
|
-
super(config);
|
|
17
|
-
this.initJobContextMixin();
|
|
18
|
-
this.initMaterialsContextMixin();
|
|
19
|
-
this.initMethodDataContextMixin();
|
|
20
|
-
this.initWorkflowContextMixin();
|
|
21
|
-
this.initMaterialContextMixin();
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
// eslint-disable-next-line class-methods-use-this
|
|
25
|
-
buildVASPContext(material) {
|
|
26
|
-
return {
|
|
27
|
-
// TODO: figure out whether we need two separate POSCARS, maybe one is enough
|
|
28
|
-
POSCAR: material.getAsPOSCAR(true, true),
|
|
29
|
-
POSCAR_WITH_CONSTRAINTS: material.getAsPOSCAR(true),
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
getDataPerMaterial() {
|
|
34
|
-
if (!this.materials || this.materials.length <= 1) return {};
|
|
35
|
-
return { perMaterial: this.materials.map((material) => this.buildVASPContext(material)) };
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
/*
|
|
39
|
-
* @NOTE: Overriding getData makes this provider "stateless", ie. delivering data from scratch each time and not
|
|
40
|
-
* considering the content of `this.data`, and `this.isEdited` field(s).
|
|
41
|
-
*/
|
|
42
|
-
getData() {
|
|
43
|
-
// consider adjusting so that below values are read from PlanewaveDataManager
|
|
44
|
-
// ECUTWFC;
|
|
45
|
-
// ECUTRHO;
|
|
46
|
-
|
|
47
|
-
return {
|
|
48
|
-
...this.buildVASPContext(this.material),
|
|
49
|
-
...this.getDataPerMaterial(),
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
materialContextMixin(VASPContextProvider.prototype);
|
|
55
|
-
materialsContextMixin(VASPContextProvider.prototype);
|
|
56
|
-
methodDataContextMixin(VASPContextProvider.prototype);
|
|
57
|
-
workflowContextMixin(VASPContextProvider.prototype);
|
|
58
|
-
jobContextMixin(VASPContextProvider.prototype);
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { jobContextMixin } from "../../../mixins/JobContextMixin";
|
|
2
|
-
import { materialContextMixin } from "../../../mixins/MaterialContextMixin";
|
|
3
|
-
import { materialsContextMixin } from "../../../mixins/MaterialsContextMixin";
|
|
4
|
-
import { materialsSetContextMixin } from "../../../mixins/MaterialsSetContextMixin";
|
|
5
|
-
import { methodDataContextMixin } from "../../../mixins/MethodDataContextMixin";
|
|
6
|
-
import { workflowContextMixin } from "../../../mixins/WorkflowContextMixin";
|
|
7
|
-
import ExecutableContextProvider from "../ExecutableContextProvider";
|
|
8
|
-
import VASPContextProvider from "./VASPContextProvider";
|
|
9
|
-
|
|
10
|
-
export default class VASPNEBContextProvider extends ExecutableContextProvider {
|
|
11
|
-
jsonSchemaId = "context-providers-directory/by-application/vasp-neb-context-provider";
|
|
12
|
-
|
|
13
|
-
_materials = [];
|
|
14
|
-
|
|
15
|
-
constructor(config) {
|
|
16
|
-
super(config);
|
|
17
|
-
this.initMaterialContextMixin();
|
|
18
|
-
this.initMaterialsContextMixin();
|
|
19
|
-
this.initMaterialsSetContextMixin();
|
|
20
|
-
this.initMethodDataContextMixin();
|
|
21
|
-
this.initWorkflowContextMixin();
|
|
22
|
-
this.initJobContextMixin();
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
getData() {
|
|
26
|
-
const sortedMaterials = this.sortMaterialsByIndexInSet(this.materials);
|
|
27
|
-
const VASPContexts = sortedMaterials.map((material) => {
|
|
28
|
-
const context = { ...this.config.context, material };
|
|
29
|
-
const config = { ...this.config, context };
|
|
30
|
-
return new VASPContextProvider(config).getData();
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
return {
|
|
34
|
-
FIRST_IMAGE: VASPContexts[0].POSCAR_WITH_CONSTRAINTS,
|
|
35
|
-
LAST_IMAGE: VASPContexts[VASPContexts.length - 1].POSCAR_WITH_CONSTRAINTS,
|
|
36
|
-
INTERMEDIATE_IMAGES: VASPContexts.slice(1, VASPContexts.length - 1).map(
|
|
37
|
-
(data) => data.POSCAR_WITH_CONSTRAINTS,
|
|
38
|
-
),
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
materialContextMixin(VASPNEBContextProvider.prototype);
|
|
44
|
-
materialsContextMixin(VASPNEBContextProvider.prototype);
|
|
45
|
-
materialsSetContextMixin(VASPNEBContextProvider.prototype);
|
|
46
|
-
methodDataContextMixin(VASPNEBContextProvider.prototype);
|
|
47
|
-
workflowContextMixin(VASPNEBContextProvider.prototype);
|
|
48
|
-
jobContextMixin(VASPNEBContextProvider.prototype);
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { Application } from "@mat3ra/ade";
|
|
2
|
-
import { Made } from "@mat3ra/made";
|
|
3
|
-
|
|
4
|
-
class GlobalSettings {
|
|
5
|
-
"PointsGridFormDataProvider.defaultKPPRA" = 5;
|
|
6
|
-
|
|
7
|
-
Material = Made.Material;
|
|
8
|
-
|
|
9
|
-
Application = Application;
|
|
10
|
-
|
|
11
|
-
constructor() {
|
|
12
|
-
this.resetDefaults();
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
get defaultKPPRA() {
|
|
16
|
-
return this["PointsGridFormDataProvider.defaultKPPRA"];
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
setApplication(application) {
|
|
20
|
-
this.Application = application;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
setMaterial(material) {
|
|
24
|
-
this.Material = material;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
setDefaultKPPRA(kppra) {
|
|
28
|
-
this["PointsGridFormDataProvider.defaultKPPRA"] = kppra;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
resetDefaults() {
|
|
32
|
-
this.Material = Made.Material;
|
|
33
|
-
this.Application = Application;
|
|
34
|
-
this["PointsGridFormDataProvider.defaultKPPRA"] = 5;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
export const globalSettings = new GlobalSettings();
|