@mat3ra/esse 2026.5.18-3 → 2026.5.27-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (382) hide show
  1. package/dist/js/esse/JSONSchemasGenerator.d.ts +2 -1
  2. package/dist/js/esse/JSONSchemasGenerator.js +1 -1
  3. package/dist/js/esse/JSONSchemasInterface.d.ts +1 -1
  4. package/dist/js/esse/JSONSchemasInterface.js +1 -1
  5. package/dist/js/esse/JSONSchemasInterfaceServer.js +3 -2
  6. package/dist/js/esse/schemaUtils.d.ts +1 -1
  7. package/dist/js/esse/schemaUtils.js +2 -1
  8. package/dist/js/esse/server/utils.d.ts +12 -0
  9. package/dist/js/esse/server/utils.js +68 -0
  10. package/dist/js/esse/utils.d.ts +0 -11
  11. package/dist/js/esse/utils.js +3 -60
  12. package/dist/js/example/job.json +38 -11
  13. package/dist/js/example/material.json +7 -1
  14. package/dist/js/example/materials_category/compound_pristine_structures/two_dimensional/interface/configuration.json +35 -5
  15. package/dist/js/example/materials_category/defective_structures/one_dimensional/grain_boundary_linear/configuration.json +28 -4
  16. package/dist/js/example/materials_category/defective_structures/two_dimensional/adatom/configuration.json +28 -4
  17. package/dist/js/example/materials_category/defective_structures/two_dimensional/grain_boundary_planar/configuration.json +35 -5
  18. package/dist/js/example/materials_category/defective_structures/two_dimensional/island/configuration.json +42 -6
  19. package/dist/js/example/materials_category/defective_structures/two_dimensional/terrace/configuration.json +42 -6
  20. package/dist/js/example/materials_category/defective_structures/zero_dimensional/point_defect/base_configuration.json +14 -2
  21. package/dist/js/example/materials_category/defective_structures/zero_dimensional/point_defect/interstitial.json +14 -2
  22. package/dist/js/example/materials_category/defective_structures/zero_dimensional/point_defect/substitutional.json +14 -2
  23. package/dist/js/example/materials_category/defective_structures/zero_dimensional/point_defect/vacancy.json +7 -1
  24. package/dist/js/example/materials_category/pristine_structures/two_dimensional/nanoribbon.json +21 -3
  25. package/dist/js/example/materials_category/pristine_structures/two_dimensional/nanotape.json +14 -2
  26. package/dist/js/example/materials_category/pristine_structures/two_dimensional/slab.json +14 -2
  27. package/dist/js/example/materials_category/pristine_structures/two_dimensional/slab_strained_supercell.json +14 -2
  28. package/dist/js/example/materials_category/processed_structures/two_dimensional/passivation/configuration.json +28 -4
  29. package/dist/js/example/materials_category_components/entities/auxiliary/zero_dimensional/crystal_site.json +7 -1
  30. package/dist/js/example/materials_category_components/entities/auxiliary/zero_dimensional/point_defect_site.json +7 -1
  31. package/dist/js/example/materials_category_components/entities/core/three_dimensional/crystal.json +7 -1
  32. package/dist/js/example/materials_category_components/entities/core/two_dimensional/vacuum.json +7 -1
  33. package/dist/js/example/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines.json +7 -1
  34. package/dist/js/example/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines_unique_repeated.json +7 -1
  35. package/dist/js/example/materials_category_components/entities/reusable/two_dimensional/slab_stack_configuration.json +28 -4
  36. package/dist/js/example/materials_category_components/operations/core/combinations/merge.json +14 -2
  37. package/dist/js/example/materials_category_components/operations/core/combinations/stack.json +14 -2
  38. package/dist/js/example/materials_category_components/operations/core/modifications/perturb.json +7 -1
  39. package/dist/js/example/model.json +2 -1
  40. package/dist/js/example/software/application.json +1 -0
  41. package/dist/js/example/software/executable.json +3 -4
  42. package/dist/js/example/software/flavor.json +9 -2
  43. package/dist/js/example/software/template.json +5 -8
  44. package/dist/js/example/software_directory/modeling/espresso.json +2 -1
  45. package/dist/js/example/software_directory/modeling/nwchem.json +3 -1
  46. package/dist/js/example/software_directory/modeling/unit/execution.json +57 -15
  47. package/dist/js/example/software_directory/modeling/vasp.json +2 -1
  48. package/dist/js/example/software_directory/scripting/jupyter_lab.json +2 -1
  49. package/dist/js/example/software_directory/scripting/python.json +2 -1
  50. package/dist/js/example/software_directory/scripting/shell.json +2 -1
  51. package/dist/js/example/software_directory/scripting/unit/execution.json +57 -15
  52. package/dist/js/example/system/runtime_items.json +14 -0
  53. package/dist/js/example/workflow/subworkflow.json +32 -10
  54. package/dist/js/example/workflow/unit/assignment.json +5 -1
  55. package/dist/js/example/workflow/unit/condition.json +5 -1
  56. package/dist/js/example/workflow/unit/execution.json +29 -9
  57. package/dist/js/example/workflow/unit/io/api.json +1 -0
  58. package/dist/js/example/workflow/unit/io/db_collection.json +5 -0
  59. package/dist/js/example/workflow/unit/io/db_ids.json +6 -0
  60. package/dist/js/example/workflow/unit/io/object_storage.json +2 -1
  61. package/dist/js/example/workflow/unit/io.json +22 -2
  62. package/dist/js/example/workflow/unit/map.json +5 -1
  63. package/dist/js/example/workflow/unit/reduce.json +5 -1
  64. package/dist/js/example/workflow.json +38 -11
  65. package/dist/js/schema/apse/file/applications/espresso/7.2/pw.x/atomic_species.json +5 -0
  66. package/dist/js/schema/apse/file/applications/espresso/7.2/pw.x.json +5 -0
  67. package/dist/js/schema/context_providers_directory/by_application/nwchem_total_energy_context_provider.json +7 -1
  68. package/dist/js/schema/context_providers_directory/by_application/qe_neb_context_provider.json +164 -6
  69. package/dist/js/schema/context_providers_directory/by_application/qe_pwx_base_context_provider.json +10 -0
  70. package/dist/js/schema/context_providers_directory/by_application/qe_pwx_context_provider.json +17 -1
  71. package/dist/js/schema/context_providers_directory/by_application/vasp_context_provider.json +7 -1
  72. package/dist/js/schema/context_providers_directory/by_application/vasp_neb_context_provider.json +7 -1
  73. package/dist/js/schema/context_providers_directory/collinear_magnetization_context_provider.json +14 -0
  74. package/dist/js/schema/context_providers_directory/non_collinear_magnetization_context_provider.json +7 -0
  75. package/dist/js/schema/context_providers_directory/points_grid_data_provider.json +23 -6
  76. package/dist/js/schema/context_providers_directory/points_path_data_provider.json +6 -2
  77. package/dist/js/schema/context_providers_directory/points_path_data_provider_rendering.json +32 -0
  78. package/dist/js/schema/core/primitive/linked_list/named_node.json +2 -1
  79. package/dist/js/schema/core/primitive/linked_list/named_node_in_group.json +2 -1
  80. package/dist/js/schema/core/primitive/linked_list.json +4 -2
  81. package/dist/js/schema/in_memory_entity/has_consistency_check_has_metadata_named_defaultable.json +3 -0
  82. package/dist/js/schema/in_memory_entity/named.json +3 -0
  83. package/dist/js/schema/in_memory_entity/named_defaultable.json +3 -0
  84. package/dist/js/schema/in_memory_entity/named_defaultable_has_metadata.json +3 -0
  85. package/dist/js/schema/in_memory_entity/named_defaultable_runtime_items.json +3 -0
  86. package/dist/js/schema/job/base.json +133 -132
  87. package/dist/js/schema/job/compute.json +1 -1
  88. package/dist/js/schema/job/compute_property.json +182 -0
  89. package/dist/js/schema/job.json +3829 -4566
  90. package/dist/js/schema/material/material_properties.json +736 -0
  91. package/dist/js/schema/material/metadata/boundary_conditions.json +32 -0
  92. package/dist/js/schema/material/metadata/bulk_properties.json +13 -0
  93. package/dist/js/schema/material/metadata/slab_properties.json +41 -0
  94. package/dist/js/schema/material/metadata.json +101 -0
  95. package/dist/js/schema/material.json +117 -27
  96. package/dist/js/schema/materials_category/compound_pristine_structures/two_dimensional/interface/configuration.json +1069 -268
  97. package/dist/js/schema/materials_category/defective_structures/one_dimensional/grain_boundary_linear/configuration.json +1069 -268
  98. package/dist/js/schema/materials_category/defective_structures/two_dimensional/adatom/configuration.json +464 -108
  99. package/dist/js/schema/materials_category/defective_structures/two_dimensional/grain_boundary_planar/configuration.json +1069 -268
  100. package/dist/js/schema/materials_category/defective_structures/two_dimensional/island/configuration.json +698 -164
  101. package/dist/js/schema/materials_category/defective_structures/two_dimensional/terrace/configuration.json +698 -164
  102. package/dist/js/schema/materials_category/defective_structures/zero_dimensional/point_defect/base_configuration.json +116 -27
  103. package/dist/js/schema/materials_category/defective_structures/zero_dimensional/point_defect/interstitial.json +232 -54
  104. package/dist/js/schema/materials_category/defective_structures/zero_dimensional/point_defect/substitutional.json +232 -54
  105. package/dist/js/schema/materials_category/defective_structures/zero_dimensional/point_defect/vacancy.json +116 -27
  106. package/dist/js/schema/materials_category/pristine_structures/three_dimensional/ideal_crystal.json +116 -27
  107. package/dist/js/schema/materials_category/pristine_structures/two_dimensional/nanoribbon.json +348 -81
  108. package/dist/js/schema/materials_category/pristine_structures/two_dimensional/nanotape.json +232 -54
  109. package/dist/js/schema/materials_category/pristine_structures/two_dimensional/slab.json +232 -54
  110. package/dist/js/schema/materials_category/pristine_structures/two_dimensional/slab_strained_supercell.json +232 -54
  111. package/dist/js/schema/materials_category/processed_structures/two_dimensional/passivation/configuration.json +233 -54
  112. package/dist/js/schema/materials_category_components/entities/auxiliary/zero_dimensional/crystal_site.json +116 -27
  113. package/dist/js/schema/materials_category_components/entities/auxiliary/zero_dimensional/point_defect_site.json +116 -27
  114. package/dist/js/schema/materials_category_components/entities/auxiliary/zero_dimensional/void_region.json +116 -27
  115. package/dist/js/schema/materials_category_components/entities/core/three_dimensional/crystal.json +116 -27
  116. package/dist/js/schema/materials_category_components/entities/core/two_dimensional/vacuum.json +116 -27
  117. package/dist/js/schema/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines.json +116 -27
  118. package/dist/js/schema/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines_unique_repeated.json +116 -27
  119. package/dist/js/schema/materials_category_components/entities/reusable/three_dimensional/crystal_lattice_base.json +116 -27
  120. package/dist/js/schema/materials_category_components/entities/reusable/three_dimensional/strained_non_uniform.json +116 -27
  121. package/dist/js/schema/materials_category_components/entities/reusable/three_dimensional/strained_uniform.json +116 -27
  122. package/dist/js/schema/materials_category_components/entities/reusable/three_dimensional/supercell.json +116 -27
  123. package/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/atomic_layers.json +116 -27
  124. package/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/atomic_layers_unique.json +116 -27
  125. package/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/atomic_layers_unique_repeated.json +116 -27
  126. package/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/crystal_lattice_planes.json +116 -27
  127. package/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/slab_stack_configuration.json +348 -81
  128. package/dist/js/schema/materials_category_components/operations/core/modifications/perturb.json +117 -27
  129. package/dist/js/schema/method/categorized_method.json +4 -0
  130. package/dist/js/schema/method/unit_method.json +3 -0
  131. package/dist/js/schema/method.json +7 -1
  132. package/dist/js/schema/methods_directory/legacy/localorbital.json +7 -1
  133. package/dist/js/schema/methods_directory/legacy/pseudopotential.json +7 -1
  134. package/dist/js/schema/methods_directory/legacy/regression.json +4 -0
  135. package/dist/js/schema/methods_directory/legacy/unknown.json +7 -1
  136. package/dist/js/schema/methods_directory/mathematical/cg.json +2 -1
  137. package/dist/js/schema/methods_directory/mathematical/davidson.json +2 -1
  138. package/dist/js/schema/methods_directory/mathematical/regression.json +3 -2
  139. package/dist/js/schema/methods_directory/physical/ao/dunning.json +2 -1
  140. package/dist/js/schema/methods_directory/physical/ao/other.json +2 -1
  141. package/dist/js/schema/methods_directory/physical/ao/pople.json +2 -1
  142. package/dist/js/schema/methods_directory/physical/psp.json +2 -1
  143. package/dist/js/schema/methods_directory/physical/pw.json +2 -1
  144. package/dist/js/schema/methods_directory/physical/smearing.json +2 -1
  145. package/dist/js/schema/methods_directory/physical/tetrahedron.json +2 -1
  146. package/dist/js/schema/model/categorized_model.json +5 -0
  147. package/dist/js/schema/model/model_without_method.json +1 -0
  148. package/dist/js/schema/model.json +7 -2
  149. package/dist/js/schema/models_directory/double_hybrid.json +1 -0
  150. package/dist/js/schema/models_directory/gga.json +1 -0
  151. package/dist/js/schema/models_directory/gw.json +1 -0
  152. package/dist/js/schema/models_directory/hybrid.json +1 -0
  153. package/dist/js/schema/models_directory/lda.json +1 -0
  154. package/dist/js/schema/models_directory/legacy/any.json +488 -0
  155. package/dist/js/schema/models_directory/legacy/dft.json +267 -39
  156. package/dist/js/schema/models_directory/legacy/ml.json +10 -9
  157. package/dist/js/schema/models_directory/legacy/unknown.json +10 -9
  158. package/dist/js/schema/models_directory/mgga.json +1 -0
  159. package/dist/js/schema/models_directory/re.json +1 -0
  160. package/dist/js/schema/project.json +3 -0
  161. package/dist/js/schema/properties_directory/non_scalar/workflow.json +3682 -4421
  162. package/dist/js/schema/property/holder.json +3717 -4456
  163. package/dist/js/schema/software/application.json +53 -24
  164. package/dist/js/schema/software/application_properties.json +68 -0
  165. package/dist/js/schema/software/application_with_build_config.json +52 -23
  166. package/dist/js/schema/software/executable.json +67 -108
  167. package/dist/js/schema/software/executable_properties.json +24 -0
  168. package/dist/js/schema/software/flavor.json +90 -128
  169. package/dist/js/schema/software/flavor_properties.json +50 -0
  170. package/dist/js/schema/software/template.json +30 -35
  171. package/dist/js/schema/software/template_properties.json +44 -0
  172. package/dist/js/schema/software_directory/modeling/deepmd.json +48 -19
  173. package/dist/js/schema/software_directory/modeling/lammps.json +47 -18
  174. package/dist/js/schema/software_directory/modeling/nwchem.json +48 -19
  175. package/dist/js/schema/software_directory/modeling/unit/execution.json +2019 -455
  176. package/dist/js/schema/software_directory/modeling/vasp.json +48 -19
  177. package/dist/js/schema/software_directory/scripting/jupyter_lab.json +48 -19
  178. package/dist/js/schema/software_directory/scripting/python.json +48 -19
  179. package/dist/js/schema/software_directory/scripting/shell.json +48 -19
  180. package/dist/js/schema/software_directory/scripting/unit/execution.json +2019 -455
  181. package/dist/js/schema/system/bankable.json +4 -0
  182. package/dist/js/schema/system/creator.json +2 -1
  183. package/dist/js/schema/system/creator_account.json +3 -0
  184. package/dist/js/schema/system/in_set.json +3 -0
  185. package/dist/js/schema/system/name.json +3 -0
  186. package/dist/js/schema/system/owner.json +2 -1
  187. package/dist/js/schema/system/path_entity.json +3 -0
  188. package/dist/js/schema/system/runtime_item.json +17 -0
  189. package/dist/js/schema/system/runtime_items.json +94 -0
  190. package/dist/js/schema/workflow/base.json +4591 -39
  191. package/dist/js/schema/workflow/base_flow.json +1 -1
  192. package/dist/js/schema/workflow/subworkflow/mixin.json +3919 -0
  193. package/dist/js/schema/workflow/subworkflow/unit.json +2365 -1560
  194. package/dist/js/schema/workflow/subworkflow.json +3137 -1852
  195. package/dist/js/schema/workflow/unit/assertion.json +96 -140
  196. package/dist/js/schema/workflow/unit/assignment.json +129 -173
  197. package/dist/js/schema/workflow/unit/base.json +90 -133
  198. package/dist/js/schema/workflow/unit/condition.json +132 -175
  199. package/dist/js/schema/workflow/unit/context/_base.json +20 -0
  200. package/dist/js/schema/workflow/unit/context/_extra_data_material_hash.json +14 -0
  201. package/dist/js/schema/workflow/unit/context/item/boundaryConditions.json +63 -0
  202. package/dist/js/schema/workflow/unit/context/item/collinearMagnetization.json +82 -0
  203. package/dist/js/schema/workflow/unit/context/item/cutoffs.json +38 -0
  204. package/dist/js/schema/workflow/unit/context/item/dynamics.json +48 -0
  205. package/dist/js/schema/workflow/unit/context/item/grid.json +100 -0
  206. package/dist/js/schema/workflow/unit/context/item/hubbard_j.json +59 -0
  207. package/dist/js/schema/workflow/unit/context/item/hubbard_legacy.json +49 -0
  208. package/dist/js/schema/workflow/unit/context/item/hubbard_u.json +57 -0
  209. package/dist/js/schema/workflow/unit/context/item/hubbard_v.json +64 -0
  210. package/dist/js/schema/workflow/unit/context/item/input.json +712 -0
  211. package/dist/js/schema/workflow/unit/context/item/mlSettings.json +43 -0
  212. package/dist/js/schema/workflow/unit/context/item/mlTrainTestSplit.json +37 -0
  213. package/dist/js/schema/workflow/unit/context/item/neb.json +35 -0
  214. package/dist/js/schema/workflow/unit/context/item/nonCollinearMagnetization.json +150 -0
  215. package/dist/js/schema/workflow/unit/context/item/path.json +62 -0
  216. package/dist/js/schema/workflow/unit/context/item.json +1594 -0
  217. package/dist/js/schema/workflow/unit/execution.json +1928 -423
  218. package/dist/js/schema/workflow/unit/input/_input.json +74 -12
  219. package/dist/js/schema/workflow/unit/input/_inputItem.json +70 -10
  220. package/dist/js/schema/workflow/unit/input/_inputItemId.json +3 -1
  221. package/dist/js/schema/workflow/unit/io/api.json +5 -1
  222. package/dist/js/schema/workflow/unit/io/db_collection.json +24 -0
  223. package/dist/js/schema/workflow/unit/io/db_ids.json +22 -0
  224. package/dist/js/schema/workflow/unit/io/object_storage.json +5 -1
  225. package/dist/js/schema/workflow/unit/io.json +182 -253
  226. package/dist/js/schema/workflow/unit/map.json +134 -177
  227. package/dist/js/schema/workflow/unit/mixins/assertion.json +23 -0
  228. package/dist/js/schema/workflow/unit/mixins/assignment.json +57 -0
  229. package/dist/js/schema/workflow/unit/mixins/base.json +50 -0
  230. package/dist/js/schema/workflow/unit/mixins/condition.json +61 -0
  231. package/dist/js/schema/workflow/unit/mixins/execution.json +1998 -0
  232. package/dist/js/schema/workflow/unit/mixins/io.json +131 -0
  233. package/dist/js/schema/workflow/unit/mixins/map.json +60 -0
  234. package/dist/js/schema/workflow/unit/mixins/processing.json +27 -0
  235. package/dist/js/schema/workflow/unit/mixins/reduce.json +43 -0
  236. package/dist/js/schema/workflow/unit/mixins/subworkflow.json +11 -0
  237. package/dist/js/schema/workflow/unit/reduce.json +117 -160
  238. package/dist/js/schema/workflow/unit/subworkflow.json +91 -134
  239. package/dist/js/schema/workflow/unit.json +285 -2477
  240. package/dist/js/schema/workflow.json +3684 -4422
  241. package/dist/js/schemas.json +1 -1
  242. package/dist/js/scripts/compileTs.js +1 -1
  243. package/dist/js/scripts/setSchemaIds.js +2 -1
  244. package/dist/js/types.d.ts +27163 -15301
  245. package/dist/js/types.js +5 -5
  246. package/dist/js/utils/ajv.js +5 -4
  247. package/dist/js/utils/common.js +3 -2
  248. package/dist/js/utils/filesystem.js +3 -2
  249. package/example/material.json +7 -1
  250. package/example/model.json +2 -1
  251. package/example/software/application.json +1 -0
  252. package/example/software/executable.json +3 -4
  253. package/example/software/flavor.json +9 -2
  254. package/example/software/template.json +5 -8
  255. package/example/software_directory/modeling/espresso.json +2 -1
  256. package/example/software_directory/modeling/nwchem.json +4 -2
  257. package/example/software_directory/modeling/unit/execution.json +17 -2
  258. package/example/software_directory/modeling/vasp.json +2 -1
  259. package/example/software_directory/scripting/jupyter-lab.json +2 -1
  260. package/example/software_directory/scripting/python.json +2 -1
  261. package/example/software_directory/scripting/shell.json +2 -1
  262. package/example/software_directory/scripting/unit/execution.json +17 -2
  263. package/example/system/runtime_items.json +14 -0
  264. package/example/workflow/unit/assignment.json +5 -1
  265. package/example/workflow/unit/condition.json +5 -1
  266. package/example/workflow/unit/execution.json +7 -3
  267. package/example/workflow/unit/io/api.json +1 -0
  268. package/example/workflow/unit/io/db_collection.json +5 -0
  269. package/example/workflow/unit/io/db_ids.json +6 -0
  270. package/example/workflow/unit/io/object_storage.json +2 -1
  271. package/example/workflow/unit/io.json +9 -29
  272. package/example/workflow/unit/map.json +5 -1
  273. package/example/workflow/unit/reduce.json +5 -1
  274. package/example/workflow.json +6 -1
  275. package/package.json +2 -1
  276. package/schema/apse/file/applications/espresso/7.2/pw.x/atomic_species.json +6 -1
  277. package/schema/context_providers_directory/by_application/nwchem_total_energy_context_provider.json +7 -1
  278. package/schema/context_providers_directory/by_application/qe_neb_context_provider.json +12 -6
  279. package/schema/context_providers_directory/by_application/qe_pwx_context_provider.json +10 -1
  280. package/schema/context_providers_directory/by_application/vasp_context_provider.json +7 -1
  281. package/schema/context_providers_directory/by_application/vasp_neb_context_provider.json +7 -1
  282. package/schema/context_providers_directory/collinear_magnetization_context_provider.json +18 -4
  283. package/schema/context_providers_directory/non_collinear_magnetization_context_provider.json +7 -0
  284. package/schema/context_providers_directory/points_grid_data_provider.json +24 -7
  285. package/schema/context_providers_directory/points_path_data_provider.json +7 -3
  286. package/schema/context_providers_directory/points_path_data_provider_rendering.json +32 -0
  287. package/schema/job/base.json +4 -5
  288. package/schema/job/compute.json +1 -1
  289. package/schema/job/compute_property.json +15 -0
  290. package/schema/material/material_properties.json +65 -0
  291. package/schema/material/metadata/boundary_conditions.json +24 -0
  292. package/schema/material/metadata/bulk_properties.json +13 -0
  293. package/schema/material/metadata/slab_properties.json +41 -0
  294. package/schema/material/metadata.json +27 -0
  295. package/schema/material.json +5 -57
  296. package/schema/method.json +7 -1
  297. package/schema/model.json +0 -1
  298. package/schema/models_directory/legacy/any.json +20 -0
  299. package/schema/models_directory/legacy/dft.json +63 -12
  300. package/schema/models_directory/legacy/ml.json +10 -7
  301. package/schema/models_directory/legacy/unknown.json +10 -7
  302. package/schema/software/application.json +4 -35
  303. package/schema/software/application_properties.json +68 -0
  304. package/schema/software/executable.json +5 -23
  305. package/schema/software/executable_properties.json +24 -0
  306. package/schema/software/flavor.json +6 -28
  307. package/schema/software/flavor_properties.json +33 -0
  308. package/schema/software/template.json +2 -26
  309. package/schema/software/template_properties.json +44 -0
  310. package/schema/system/bankable.json +5 -1
  311. package/schema/system/creator.json +4 -1
  312. package/schema/system/creator_account.json +4 -1
  313. package/schema/system/in_set.json +4 -1
  314. package/schema/system/name.json +4 -1
  315. package/schema/system/owner.json +4 -1
  316. package/schema/system/runtime_item.json +17 -0
  317. package/schema/system/runtime_items.json +42 -0
  318. package/schema/workflow/base.json +17 -17
  319. package/schema/workflow/subworkflow/mixin.json +48 -0
  320. package/schema/workflow/subworkflow/unit.json +0 -6
  321. package/schema/workflow/subworkflow.json +4 -31
  322. package/schema/workflow/unit/assertion.json +2 -16
  323. package/schema/workflow/unit/assignment.json +2 -34
  324. package/schema/workflow/unit/base.json +6 -51
  325. package/schema/workflow/unit/condition.json +2 -38
  326. package/schema/workflow/unit/context/_base.json +20 -0
  327. package/schema/workflow/unit/context/_extra_data_material_hash.json +14 -0
  328. package/schema/workflow/unit/context/item/boundaryConditions.json +27 -0
  329. package/schema/workflow/unit/context/item/collinearMagnetization.json +27 -0
  330. package/schema/workflow/unit/context/item/cutoffs.json +20 -0
  331. package/schema/workflow/unit/context/item/dynamics.json +20 -0
  332. package/schema/workflow/unit/context/item/grid.json +31 -0
  333. package/schema/workflow/unit/context/item/hubbard_j.json +20 -0
  334. package/schema/workflow/unit/context/item/hubbard_legacy.json +20 -0
  335. package/schema/workflow/unit/context/item/hubbard_u.json +27 -0
  336. package/schema/workflow/unit/context/item/hubbard_v.json +20 -0
  337. package/schema/workflow/unit/context/item/input.json +47 -0
  338. package/schema/workflow/unit/context/item/mlSettings.json +20 -0
  339. package/schema/workflow/unit/context/item/mlTrainTestSplit.json +20 -0
  340. package/schema/workflow/unit/context/item/neb.json +20 -0
  341. package/schema/workflow/unit/context/item/nonCollinearMagnetization.json +27 -0
  342. package/schema/workflow/unit/context/item/path.json +33 -0
  343. package/schema/workflow/unit/context/item.json +55 -0
  344. package/schema/workflow/unit/execution.json +4 -25
  345. package/schema/workflow/unit/input/_input.json +1 -1
  346. package/schema/workflow/unit/input/_inputItem.json +9 -9
  347. package/schema/workflow/unit/input/_inputItemId.json +3 -1
  348. package/schema/workflow/unit/io/api.json +6 -2
  349. package/schema/workflow/unit/io/db_collection.json +24 -0
  350. package/schema/workflow/unit/io/db_ids.json +22 -0
  351. package/schema/workflow/unit/io/object_storage.json +6 -2
  352. package/schema/workflow/unit/io.json +2 -39
  353. package/schema/workflow/unit/map.json +2 -53
  354. package/schema/workflow/unit/mixins/assertion.json +23 -0
  355. package/schema/workflow/unit/mixins/assignment.json +42 -0
  356. package/schema/workflow/unit/mixins/base.json +50 -0
  357. package/schema/workflow/unit/mixins/condition.json +46 -0
  358. package/schema/workflow/unit/mixins/execution.json +49 -0
  359. package/schema/workflow/unit/mixins/io.json +46 -0
  360. package/schema/workflow/unit/mixins/map.json +61 -0
  361. package/schema/workflow/unit/{processing.json → mixins/processing.json} +3 -7
  362. package/schema/workflow/unit/mixins/reduce.json +44 -0
  363. package/schema/workflow/unit/mixins/subworkflow.json +12 -0
  364. package/schema/workflow/unit/reduce.json +2 -36
  365. package/schema/workflow/unit/subworkflow.json +4 -6
  366. package/schema/workflow/unit.json +1 -19
  367. package/schema/workflow.json +19 -15
  368. package/src/js/esse/JSONSchemasGenerator.ts +2 -1
  369. package/src/js/esse/JSONSchemasInterface.ts +1 -1
  370. package/src/js/esse/schemaUtils.ts +1 -1
  371. package/src/js/esse/server/utils.ts +82 -0
  372. package/src/js/esse/utils.ts +0 -74
  373. package/src/js/scripts/compileTs.ts +1 -1
  374. package/src/js/scripts/setSchemaIds.ts +1 -0
  375. package/src/js/utils/ajv.ts +1 -1
  376. package/dist/js/example/workflow/unit/io/db.json +0 -15
  377. package/dist/js/example/workflow/unit/processing.json +0 -13
  378. package/dist/js/schema/workflow/unit/io/db.json +0 -40
  379. package/dist/js/schema/workflow/unit/processing.json +0 -242
  380. package/example/workflow/unit/io/db.json +0 -15
  381. package/example/workflow/unit/processing.json +0 -13
  382. package/schema/workflow/unit/io/db.json +0 -40
@@ -0,0 +1,1594 @@
1
+ {
2
+ "$id": "workflow/unit/context/item",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "context item schema",
5
+ "oneOf": [
6
+ {
7
+ "$schema": "http://json-schema.org/draft-07/schema#",
8
+ "title": "input context item schema",
9
+ "type": "object",
10
+ "required": [
11
+ "name",
12
+ "isEdited",
13
+ "data",
14
+ "extraData"
15
+ ],
16
+ "properties": {
17
+ "name": {
18
+ "type": "string",
19
+ "const": "input"
20
+ },
21
+ "data": {
22
+ "type": "object",
23
+ "oneOf": [
24
+ {
25
+ "$schema": "http://json-schema.org/draft-07/schema#",
26
+ "title": "NWChem Total Energy Context Provider Schema",
27
+ "description": "Schema for NWChemTotalEnergyContextProvider that generates context data for NWChem total energy input.",
28
+ "type": "object",
29
+ "properties": {
30
+ "contextProviderName": {
31
+ "type": "string",
32
+ "const": "nwchem-total-energy",
33
+ "description": "Descriminator for AJV validator"
34
+ },
35
+ "CHARGE": {
36
+ "type": "integer",
37
+ "description": "Total charge of the system."
38
+ },
39
+ "MULT": {
40
+ "type": "integer",
41
+ "description": "Spin multiplicity of the system."
42
+ },
43
+ "BASIS": {
44
+ "type": "string",
45
+ "description": "Basis set label used in the calculation (e.g., '6-31G')."
46
+ },
47
+ "NAT": {
48
+ "type": "integer",
49
+ "description": "Number of atoms in the system."
50
+ },
51
+ "NTYP": {
52
+ "type": "integer",
53
+ "description": "Number of unique atomic species in the system."
54
+ },
55
+ "ATOMIC_POSITIONS": {
56
+ "type": "string",
57
+ "description": "Formatted text block with atomic positions including constraints."
58
+ },
59
+ "ATOMIC_POSITIONS_WITHOUT_CONSTRAINTS": {
60
+ "type": "string",
61
+ "description": "Formatted text block with atomic positions without constraints."
62
+ },
63
+ "ATOMIC_SPECIES": {
64
+ "type": "string",
65
+ "description": "Formatted text block for atomic species, including element symbols and masses."
66
+ },
67
+ "FUNCTIONAL": {
68
+ "type": "string",
69
+ "description": "Exchange-correlation functional identifier (e.g., 'B3LYP')."
70
+ },
71
+ "CARTESIAN": {
72
+ "type": "boolean",
73
+ "description": "Whether atomic positions are expressed in cartesian coordinates."
74
+ }
75
+ },
76
+ "required": [
77
+ "CHARGE",
78
+ "MULT",
79
+ "BASIS",
80
+ "NAT",
81
+ "NTYP",
82
+ "ATOMIC_POSITIONS",
83
+ "ATOMIC_POSITIONS_WITHOUT_CONSTRAINTS",
84
+ "ATOMIC_SPECIES",
85
+ "FUNCTIONAL",
86
+ "CARTESIAN",
87
+ "contextProviderName"
88
+ ]
89
+ },
90
+ {
91
+ "$schema": "http://json-schema.org/draft-07/schema#",
92
+ "title": "QE NEB Context Provider Schema",
93
+ "description": "Schema for QENEBContextProvider that generates context data for Quantum ESPRESSO pw.x NEB input. Extends the pw.x context with image-specific atomic positions.",
94
+ "type": "object",
95
+ "required": [
96
+ "IBRAV",
97
+ "RESTART_MODE",
98
+ "ATOMIC_SPECIES",
99
+ "ATOMIC_SPECIES_WITH_LABELS",
100
+ "NAT",
101
+ "NTYP",
102
+ "NTYP_WITH_LABELS",
103
+ "CELL_PARAMETERS",
104
+ "FIRST_IMAGE",
105
+ "LAST_IMAGE",
106
+ "INTERMEDIATE_IMAGES",
107
+ "contextProviderName"
108
+ ],
109
+ "properties": {
110
+ "IBRAV": {
111
+ "type": "integer"
112
+ },
113
+ "RESTART_MODE": {
114
+ "type": "string",
115
+ "enum": [
116
+ "from_scratch",
117
+ "restart"
118
+ ],
119
+ "default": "from_scratch"
120
+ },
121
+ "ATOMIC_SPECIES": {
122
+ "type": "array",
123
+ "items": {
124
+ "type": "object",
125
+ "required": [
126
+ "X",
127
+ "Mass_X",
128
+ "PseudoPot_X"
129
+ ],
130
+ "additionalProperties": false,
131
+ "properties": {
132
+ "X": {
133
+ "type": "string",
134
+ "description": "label of the atom. Acceptable syntax: chemical symbol X (1 or 2 characters, case-insensitive) or chemical symbol plus a number or a letter, as in \"Xn\" (e.g. Fe1) or \"X_*\" or \"X-*\" (e.g. C1, C_h; max total length cannot exceed 3 characters)"
135
+ },
136
+ "Mass_X": {
137
+ "type": "number",
138
+ "description": "mass of the atomic species [amu: mass of C = 12]. Used only when performing Molecular Dynamics run or structural optimization runs using Damped MD. Not actually used in all other cases (but stored in data files, so phonon calculations will use these values unless other values are provided)"
139
+ },
140
+ "PseudoPot_X": {
141
+ "type": "string",
142
+ "description": "PseudoPot_X"
143
+ }
144
+ }
145
+ }
146
+ },
147
+ "ATOMIC_SPECIES_WITH_LABELS": {
148
+ "type": "array",
149
+ "items": {
150
+ "type": "object",
151
+ "required": [
152
+ "X",
153
+ "Mass_X",
154
+ "PseudoPot_X"
155
+ ],
156
+ "additionalProperties": false,
157
+ "properties": {
158
+ "X": {
159
+ "type": "string",
160
+ "description": "label of the atom. Acceptable syntax: chemical symbol X (1 or 2 characters, case-insensitive) or chemical symbol plus a number or a letter, as in \"Xn\" (e.g. Fe1) or \"X_*\" or \"X-*\" (e.g. C1, C_h; max total length cannot exceed 3 characters)"
161
+ },
162
+ "Mass_X": {
163
+ "type": "number",
164
+ "description": "mass of the atomic species [amu: mass of C = 12]. Used only when performing Molecular Dynamics run or structural optimization runs using Damped MD. Not actually used in all other cases (but stored in data files, so phonon calculations will use these values unless other values are provided)"
165
+ },
166
+ "PseudoPot_X": {
167
+ "type": "string",
168
+ "description": "PseudoPot_X"
169
+ }
170
+ }
171
+ }
172
+ },
173
+ "NAT": {
174
+ "type": "integer",
175
+ "description": "number of atoms in the unit cell (ALL atoms, except if space_group is set, in which case, INEQUIVALENT atoms)"
176
+ },
177
+ "NTYP": {
178
+ "type": "integer",
179
+ "description": "number of types of atoms in the unit cell"
180
+ },
181
+ "NTYP_WITH_LABELS": {
182
+ "type": "integer",
183
+ "description": "Number of different atomic species including labels",
184
+ "minimum": 1
185
+ },
186
+ "ATOMIC_POSITIONS": {
187
+ "type": "array",
188
+ "items": {
189
+ "type": "object",
190
+ "required": [
191
+ "x",
192
+ "y",
193
+ "z"
194
+ ],
195
+ "additionalProperties": false,
196
+ "properties": {
197
+ "X": {
198
+ "type": "string",
199
+ "description": "label of the atom as specified in ATOMIC_SPECIES"
200
+ },
201
+ "x": {
202
+ "type": "number",
203
+ "description": "atomic positions"
204
+ },
205
+ "y": {
206
+ "type": "number",
207
+ "description": "atomic positions"
208
+ },
209
+ "z": {
210
+ "type": "number",
211
+ "description": "atomic positions"
212
+ },
213
+ "if_pos(1)": {
214
+ "$schema": "http://json-schema.org/draft-07/schema#",
215
+ "title": "integer one or zero",
216
+ "type": "integer",
217
+ "minimum": 0,
218
+ "maximum": 1
219
+ },
220
+ "if_pos(2)": {
221
+ "$schema": "http://json-schema.org/draft-07/schema#",
222
+ "title": "integer one or zero",
223
+ "type": "integer",
224
+ "minimum": 0,
225
+ "maximum": 1
226
+ },
227
+ "if_pos(3)": {
228
+ "$schema": "http://json-schema.org/draft-07/schema#",
229
+ "title": "integer one or zero",
230
+ "type": "integer",
231
+ "minimum": 0,
232
+ "maximum": 1
233
+ }
234
+ }
235
+ }
236
+ },
237
+ "ATOMIC_POSITIONS_WITHOUT_CONSTRAINTS": {
238
+ "type": "string",
239
+ "description": "Formatted text block for ATOMIC_POSITIONS card WITHOUT constraints. Format: 'X x y z' per line"
240
+ },
241
+ "CELL_PARAMETERS": {
242
+ "type": "object",
243
+ "additionalProperties": false,
244
+ "properties": {
245
+ "v1": {
246
+ "$schema": "http://json-schema.org/draft-07/schema#",
247
+ "title": "array of 3 number elements schema",
248
+ "type": "array",
249
+ "minItems": 3,
250
+ "maxItems": 3,
251
+ "items": {
252
+ "type": "number"
253
+ }
254
+ },
255
+ "v2": {
256
+ "$schema": "http://json-schema.org/draft-07/schema#",
257
+ "title": "array of 3 number elements schema",
258
+ "type": "array",
259
+ "minItems": 3,
260
+ "maxItems": 3,
261
+ "items": {
262
+ "type": "number"
263
+ }
264
+ },
265
+ "v3": {
266
+ "$schema": "http://json-schema.org/draft-07/schema#",
267
+ "title": "array of 3 number elements schema",
268
+ "type": "array",
269
+ "minItems": 3,
270
+ "maxItems": 3,
271
+ "items": {
272
+ "type": "number"
273
+ }
274
+ }
275
+ }
276
+ },
277
+ "FIRST_IMAGE": {
278
+ "type": "array",
279
+ "items": {
280
+ "type": "object",
281
+ "required": [
282
+ "x",
283
+ "y",
284
+ "z"
285
+ ],
286
+ "additionalProperties": false,
287
+ "properties": {
288
+ "X": {
289
+ "type": "string",
290
+ "description": "label of the atom as specified in ATOMIC_SPECIES"
291
+ },
292
+ "x": {
293
+ "type": "number",
294
+ "description": "atomic positions"
295
+ },
296
+ "y": {
297
+ "type": "number",
298
+ "description": "atomic positions"
299
+ },
300
+ "z": {
301
+ "type": "number",
302
+ "description": "atomic positions"
303
+ },
304
+ "if_pos(1)": {
305
+ "$schema": "http://json-schema.org/draft-07/schema#",
306
+ "title": "integer one or zero",
307
+ "type": "integer",
308
+ "minimum": 0,
309
+ "maximum": 1
310
+ },
311
+ "if_pos(2)": {
312
+ "$schema": "http://json-schema.org/draft-07/schema#",
313
+ "title": "integer one or zero",
314
+ "type": "integer",
315
+ "minimum": 0,
316
+ "maximum": 1
317
+ },
318
+ "if_pos(3)": {
319
+ "$schema": "http://json-schema.org/draft-07/schema#",
320
+ "title": "integer one or zero",
321
+ "type": "integer",
322
+ "minimum": 0,
323
+ "maximum": 1
324
+ }
325
+ }
326
+ }
327
+ },
328
+ "LAST_IMAGE": {
329
+ "type": "array",
330
+ "items": {
331
+ "type": "object",
332
+ "required": [
333
+ "x",
334
+ "y",
335
+ "z"
336
+ ],
337
+ "additionalProperties": false,
338
+ "properties": {
339
+ "X": {
340
+ "type": "string",
341
+ "description": "label of the atom as specified in ATOMIC_SPECIES"
342
+ },
343
+ "x": {
344
+ "type": "number",
345
+ "description": "atomic positions"
346
+ },
347
+ "y": {
348
+ "type": "number",
349
+ "description": "atomic positions"
350
+ },
351
+ "z": {
352
+ "type": "number",
353
+ "description": "atomic positions"
354
+ },
355
+ "if_pos(1)": {
356
+ "$schema": "http://json-schema.org/draft-07/schema#",
357
+ "title": "integer one or zero",
358
+ "type": "integer",
359
+ "minimum": 0,
360
+ "maximum": 1
361
+ },
362
+ "if_pos(2)": {
363
+ "$schema": "http://json-schema.org/draft-07/schema#",
364
+ "title": "integer one or zero",
365
+ "type": "integer",
366
+ "minimum": 0,
367
+ "maximum": 1
368
+ },
369
+ "if_pos(3)": {
370
+ "$schema": "http://json-schema.org/draft-07/schema#",
371
+ "title": "integer one or zero",
372
+ "type": "integer",
373
+ "minimum": 0,
374
+ "maximum": 1
375
+ }
376
+ }
377
+ }
378
+ },
379
+ "INTERMEDIATE_IMAGES": {
380
+ "type": "array",
381
+ "description": "Atomic positions blocks (ATOMIC_POSITIONS) for all intermediate NEB images.",
382
+ "items": {
383
+ "type": "array",
384
+ "items": {
385
+ "type": "object",
386
+ "required": [
387
+ "x",
388
+ "y",
389
+ "z"
390
+ ],
391
+ "additionalProperties": false,
392
+ "properties": {
393
+ "X": {
394
+ "type": "string",
395
+ "description": "label of the atom as specified in ATOMIC_SPECIES"
396
+ },
397
+ "x": {
398
+ "type": "number",
399
+ "description": "atomic positions"
400
+ },
401
+ "y": {
402
+ "type": "number",
403
+ "description": "atomic positions"
404
+ },
405
+ "z": {
406
+ "type": "number",
407
+ "description": "atomic positions"
408
+ },
409
+ "if_pos(1)": {
410
+ "$schema": "http://json-schema.org/draft-07/schema#",
411
+ "title": "integer one or zero",
412
+ "type": "integer",
413
+ "minimum": 0,
414
+ "maximum": 1
415
+ },
416
+ "if_pos(2)": {
417
+ "$schema": "http://json-schema.org/draft-07/schema#",
418
+ "title": "integer one or zero",
419
+ "type": "integer",
420
+ "minimum": 0,
421
+ "maximum": 1
422
+ },
423
+ "if_pos(3)": {
424
+ "$schema": "http://json-schema.org/draft-07/schema#",
425
+ "title": "integer one or zero",
426
+ "type": "integer",
427
+ "minimum": 0,
428
+ "maximum": 1
429
+ }
430
+ }
431
+ }
432
+ }
433
+ },
434
+ "contextProviderName": {
435
+ "type": "string",
436
+ "const": "qe-neb",
437
+ "description": "Descriminator for AJV validator"
438
+ }
439
+ }
440
+ },
441
+ {
442
+ "$schema": "http://json-schema.org/draft-07/schema#",
443
+ "title": "QE pwx Context Provider Schema",
444
+ "description": "Schema for QEPWXContextProvider that generates context data for Quantum ESPRESSO pw.x input files. Contains computed context properties and string-formatted versions of pw.x input sections.",
445
+ "type": "object",
446
+ "required": [
447
+ "IBRAV",
448
+ "RESTART_MODE",
449
+ "ATOMIC_SPECIES",
450
+ "ATOMIC_SPECIES_WITH_LABELS",
451
+ "NAT",
452
+ "NTYP",
453
+ "NTYP_WITH_LABELS",
454
+ "ATOMIC_POSITIONS",
455
+ "ATOMIC_POSITIONS_WITHOUT_CONSTRAINTS",
456
+ "CELL_PARAMETERS",
457
+ "contextProviderName"
458
+ ],
459
+ "properties": {
460
+ "IBRAV": {
461
+ "type": "integer"
462
+ },
463
+ "RESTART_MODE": {
464
+ "type": "string",
465
+ "enum": [
466
+ "from_scratch",
467
+ "restart"
468
+ ],
469
+ "default": "from_scratch"
470
+ },
471
+ "ATOMIC_SPECIES": {
472
+ "type": "array",
473
+ "items": {
474
+ "type": "object",
475
+ "required": [
476
+ "X",
477
+ "Mass_X",
478
+ "PseudoPot_X"
479
+ ],
480
+ "additionalProperties": false,
481
+ "properties": {
482
+ "X": {
483
+ "type": "string",
484
+ "description": "label of the atom. Acceptable syntax: chemical symbol X (1 or 2 characters, case-insensitive) or chemical symbol plus a number or a letter, as in \"Xn\" (e.g. Fe1) or \"X_*\" or \"X-*\" (e.g. C1, C_h; max total length cannot exceed 3 characters)"
485
+ },
486
+ "Mass_X": {
487
+ "type": "number",
488
+ "description": "mass of the atomic species [amu: mass of C = 12]. Used only when performing Molecular Dynamics run or structural optimization runs using Damped MD. Not actually used in all other cases (but stored in data files, so phonon calculations will use these values unless other values are provided)"
489
+ },
490
+ "PseudoPot_X": {
491
+ "type": "string",
492
+ "description": "PseudoPot_X"
493
+ }
494
+ }
495
+ }
496
+ },
497
+ "ATOMIC_SPECIES_WITH_LABELS": {
498
+ "type": "array",
499
+ "items": {
500
+ "type": "object",
501
+ "required": [
502
+ "X",
503
+ "Mass_X",
504
+ "PseudoPot_X"
505
+ ],
506
+ "additionalProperties": false,
507
+ "properties": {
508
+ "X": {
509
+ "type": "string",
510
+ "description": "label of the atom. Acceptable syntax: chemical symbol X (1 or 2 characters, case-insensitive) or chemical symbol plus a number or a letter, as in \"Xn\" (e.g. Fe1) or \"X_*\" or \"X-*\" (e.g. C1, C_h; max total length cannot exceed 3 characters)"
511
+ },
512
+ "Mass_X": {
513
+ "type": "number",
514
+ "description": "mass of the atomic species [amu: mass of C = 12]. Used only when performing Molecular Dynamics run or structural optimization runs using Damped MD. Not actually used in all other cases (but stored in data files, so phonon calculations will use these values unless other values are provided)"
515
+ },
516
+ "PseudoPot_X": {
517
+ "type": "string",
518
+ "description": "PseudoPot_X"
519
+ }
520
+ }
521
+ }
522
+ },
523
+ "NAT": {
524
+ "type": "integer",
525
+ "description": "number of atoms in the unit cell (ALL atoms, except if space_group is set, in which case, INEQUIVALENT atoms)"
526
+ },
527
+ "NTYP": {
528
+ "type": "integer",
529
+ "description": "number of types of atoms in the unit cell"
530
+ },
531
+ "NTYP_WITH_LABELS": {
532
+ "type": "integer",
533
+ "description": "Number of different atomic species including labels",
534
+ "minimum": 1
535
+ },
536
+ "ATOMIC_POSITIONS": {
537
+ "type": "array",
538
+ "items": {
539
+ "type": "object",
540
+ "required": [
541
+ "x",
542
+ "y",
543
+ "z"
544
+ ],
545
+ "additionalProperties": false,
546
+ "properties": {
547
+ "X": {
548
+ "type": "string",
549
+ "description": "label of the atom as specified in ATOMIC_SPECIES"
550
+ },
551
+ "x": {
552
+ "type": "number",
553
+ "description": "atomic positions"
554
+ },
555
+ "y": {
556
+ "type": "number",
557
+ "description": "atomic positions"
558
+ },
559
+ "z": {
560
+ "type": "number",
561
+ "description": "atomic positions"
562
+ },
563
+ "if_pos(1)": {
564
+ "$schema": "http://json-schema.org/draft-07/schema#",
565
+ "title": "integer one or zero",
566
+ "type": "integer",
567
+ "minimum": 0,
568
+ "maximum": 1
569
+ },
570
+ "if_pos(2)": {
571
+ "$schema": "http://json-schema.org/draft-07/schema#",
572
+ "title": "integer one or zero",
573
+ "type": "integer",
574
+ "minimum": 0,
575
+ "maximum": 1
576
+ },
577
+ "if_pos(3)": {
578
+ "$schema": "http://json-schema.org/draft-07/schema#",
579
+ "title": "integer one or zero",
580
+ "type": "integer",
581
+ "minimum": 0,
582
+ "maximum": 1
583
+ }
584
+ }
585
+ }
586
+ },
587
+ "ATOMIC_POSITIONS_WITHOUT_CONSTRAINTS": {
588
+ "type": "string",
589
+ "description": "Formatted text block for ATOMIC_POSITIONS card WITHOUT constraints. Format: 'X x y z' per line"
590
+ },
591
+ "CELL_PARAMETERS": {
592
+ "type": "object",
593
+ "additionalProperties": false,
594
+ "properties": {
595
+ "v1": {
596
+ "$schema": "http://json-schema.org/draft-07/schema#",
597
+ "title": "array of 3 number elements schema",
598
+ "type": "array",
599
+ "minItems": 3,
600
+ "maxItems": 3,
601
+ "items": {
602
+ "type": "number"
603
+ }
604
+ },
605
+ "v2": {
606
+ "$schema": "http://json-schema.org/draft-07/schema#",
607
+ "title": "array of 3 number elements schema",
608
+ "type": "array",
609
+ "minItems": 3,
610
+ "maxItems": 3,
611
+ "items": {
612
+ "type": "number"
613
+ }
614
+ },
615
+ "v3": {
616
+ "$schema": "http://json-schema.org/draft-07/schema#",
617
+ "title": "array of 3 number elements schema",
618
+ "type": "array",
619
+ "minItems": 3,
620
+ "maxItems": 3,
621
+ "items": {
622
+ "type": "number"
623
+ }
624
+ }
625
+ }
626
+ },
627
+ "contextProviderName": {
628
+ "type": "string",
629
+ "const": "qe-pwx",
630
+ "description": "Descriminator for AJV validator"
631
+ }
632
+ }
633
+ },
634
+ {
635
+ "$schema": "http://json-schema.org/draft-07/schema#",
636
+ "title": "VASP Context Provider Schema",
637
+ "description": "Schema for VASPContextProvider that generates context data for VASP POSCAR input files.",
638
+ "type": "object",
639
+ "properties": {
640
+ "POSCAR": {
641
+ "type": "string",
642
+ "description": "POSCAR content for VASP including lattice, atom types, positions and constraints."
643
+ },
644
+ "POSCAR_WITH_CONSTRAINTS": {
645
+ "type": "string",
646
+ "description": "POSCAR content for VASP including lattice, atom types, positions and constraints. May differ in how constraints are represented."
647
+ },
648
+ "contextProviderName": {
649
+ "type": "string",
650
+ "const": "vasp",
651
+ "description": "Descriminator for AJV validator"
652
+ }
653
+ },
654
+ "required": [
655
+ "POSCAR",
656
+ "POSCAR_WITH_CONSTRAINTS",
657
+ "contextProviderName"
658
+ ]
659
+ },
660
+ {
661
+ "$schema": "http://json-schema.org/draft-07/schema#",
662
+ "title": "VASP NEB Context Provider Schema",
663
+ "description": "Schema for VASPNEBContextProvider that generates context data for VASP NEB (nudged elastic band) runs.",
664
+ "type": "object",
665
+ "properties": {
666
+ "FIRST_IMAGE": {
667
+ "type": "string",
668
+ "description": "POSCAR content with constraints for the first NEB image."
669
+ },
670
+ "LAST_IMAGE": {
671
+ "type": "string",
672
+ "description": "POSCAR content with constraints for the last NEB image."
673
+ },
674
+ "INTERMEDIATE_IMAGES": {
675
+ "type": "array",
676
+ "description": "POSCAR contents with constraints for all intermediate NEB images.",
677
+ "items": {
678
+ "type": "string"
679
+ }
680
+ },
681
+ "contextProviderName": {
682
+ "type": "string",
683
+ "const": "vasp-neb",
684
+ "description": "Descriminator for AJV validator"
685
+ }
686
+ },
687
+ "required": [
688
+ "FIRST_IMAGE",
689
+ "LAST_IMAGE",
690
+ "INTERMEDIATE_IMAGES",
691
+ "contextProviderName"
692
+ ]
693
+ }
694
+ ],
695
+ "discriminator": {
696
+ "propertyName": "contextProviderName"
697
+ }
698
+ },
699
+ "extraData": {
700
+ "$schema": "http://json-schema.org/draft-07/schema#",
701
+ "title": "extraData with materialHash schema",
702
+ "type": "object",
703
+ "required": [
704
+ "materialHash"
705
+ ],
706
+ "properties": {
707
+ "materialHash": {
708
+ "type": "string"
709
+ }
710
+ }
711
+ },
712
+ "isEdited": {
713
+ "type": "boolean"
714
+ }
715
+ }
716
+ },
717
+ {
718
+ "$schema": "http://json-schema.org/draft-07/schema#",
719
+ "title": "cutoffs context item schema",
720
+ "type": "object",
721
+ "required": [
722
+ "name",
723
+ "isEdited",
724
+ "data",
725
+ "extraData"
726
+ ],
727
+ "properties": {
728
+ "name": {
729
+ "type": "string",
730
+ "const": "cutoffs"
731
+ },
732
+ "data": {
733
+ "$schema": "http://json-schema.org/draft-07/schema#",
734
+ "title": "Planewave Cutoffs Context Provider Schema",
735
+ "description": "Planewave cutoff parameters for electronic wavefunctions and density. Units are specific to simulation engine.",
736
+ "type": "object",
737
+ "properties": {
738
+ "wavefunction": {
739
+ "type": "number"
740
+ },
741
+ "density": {
742
+ "type": "number"
743
+ }
744
+ }
745
+ },
746
+ "isEdited": {
747
+ "type": "boolean"
748
+ },
749
+ "extraData": {
750
+ "type": "object"
751
+ }
752
+ }
753
+ },
754
+ {
755
+ "$schema": "http://json-schema.org/draft-07/schema#",
756
+ "title": "grid context item schema",
757
+ "type": "object",
758
+ "required": [
759
+ "name",
760
+ "isEdited",
761
+ "data",
762
+ "extraData"
763
+ ],
764
+ "properties": {
765
+ "name": {
766
+ "type": "string",
767
+ "enum": [
768
+ "kgrid",
769
+ "qgrid",
770
+ "igrid"
771
+ ]
772
+ },
773
+ "data": {
774
+ "$schema": "http://json-schema.org/draft-07/schema#",
775
+ "title": "Points Grid Data Provider Schema",
776
+ "description": "3D grid with shifts for k-point or q-point sampling.",
777
+ "type": "object",
778
+ "required": [
779
+ "dimensions",
780
+ "gridMetricType",
781
+ "gridMetricValue"
782
+ ],
783
+ "properties": {
784
+ "dimensions": {
785
+ "anyOf": [
786
+ {
787
+ "type": "array",
788
+ "items": {
789
+ "type": "number"
790
+ },
791
+ "minItems": 3,
792
+ "maxItems": 3
793
+ },
794
+ {
795
+ "type": "array",
796
+ "items": {
797
+ "type": "string"
798
+ },
799
+ "minItems": 3,
800
+ "maxItems": 3
801
+ }
802
+ ]
803
+ },
804
+ "shifts": {
805
+ "type": "array",
806
+ "minItems": 3,
807
+ "maxItems": 3,
808
+ "items": {
809
+ "type": "number"
810
+ }
811
+ },
812
+ "reciprocalVectorRatios": {
813
+ "type": "array",
814
+ "minItems": 3,
815
+ "maxItems": 3,
816
+ "items": {
817
+ "type": "number"
818
+ }
819
+ },
820
+ "gridMetricType": {
821
+ "type": "string",
822
+ "enum": [
823
+ "KPPRA",
824
+ "spacing"
825
+ ]
826
+ },
827
+ "gridMetricValue": {
828
+ "type": "number"
829
+ },
830
+ "preferGridMetric": {
831
+ "type": "boolean"
832
+ }
833
+ }
834
+ },
835
+ "extraData": {
836
+ "$schema": "http://json-schema.org/draft-07/schema#",
837
+ "title": "extraData with materialHash schema",
838
+ "type": "object",
839
+ "required": [
840
+ "materialHash"
841
+ ],
842
+ "properties": {
843
+ "materialHash": {
844
+ "type": "string"
845
+ }
846
+ }
847
+ },
848
+ "isEdited": {
849
+ "type": "boolean"
850
+ }
851
+ }
852
+ },
853
+ {
854
+ "$schema": "http://json-schema.org/draft-07/schema#",
855
+ "title": "path context item schema",
856
+ "type": "object",
857
+ "required": [
858
+ "name",
859
+ "isEdited",
860
+ "data",
861
+ "extraData"
862
+ ],
863
+ "properties": {
864
+ "name": {
865
+ "type": "string",
866
+ "enum": [
867
+ "qpath",
868
+ "ipath",
869
+ "kpath",
870
+ "explicitKPath",
871
+ "explicitKPath2PIBA"
872
+ ]
873
+ },
874
+ "data": {
875
+ "$schema": "http://json-schema.org/draft-07/schema#",
876
+ "title": "Points Path Data Provider Schema",
877
+ "description": "Path in reciprocal space for band structure calculations. User-editable and persisted fields only (coordinates are derived at render time).",
878
+ "type": "array",
879
+ "minItems": 1,
880
+ "items": {
881
+ "type": "object",
882
+ "required": [
883
+ "point",
884
+ "steps"
885
+ ],
886
+ "properties": {
887
+ "point": {
888
+ "type": "string"
889
+ },
890
+ "steps": {
891
+ "type": "number"
892
+ }
893
+ }
894
+ }
895
+ },
896
+ "extraData": {
897
+ "$schema": "http://json-schema.org/draft-07/schema#",
898
+ "title": "extraData with materialHash schema",
899
+ "type": "object",
900
+ "required": [
901
+ "materialHash"
902
+ ],
903
+ "properties": {
904
+ "materialHash": {
905
+ "type": "string"
906
+ }
907
+ }
908
+ },
909
+ "isEdited": {
910
+ "type": "boolean"
911
+ }
912
+ }
913
+ },
914
+ {
915
+ "$schema": "http://json-schema.org/draft-07/schema#",
916
+ "title": "hubbard_j context item schema",
917
+ "type": "object",
918
+ "required": [
919
+ "name",
920
+ "isEdited",
921
+ "data",
922
+ "extraData"
923
+ ],
924
+ "properties": {
925
+ "name": {
926
+ "type": "string",
927
+ "const": "hubbard_j"
928
+ },
929
+ "data": {
930
+ "$schema": "http://json-schema.org/draft-07/schema#",
931
+ "title": "Hubbard J Context Provider Schema",
932
+ "description": "Hubbard parameters for DFT+U+J calculation.",
933
+ "type": "array",
934
+ "minItems": 1,
935
+ "items": {
936
+ "type": "object",
937
+ "properties": {
938
+ "paramType": {
939
+ "type": "string",
940
+ "title": "Species",
941
+ "enum": [
942
+ "U",
943
+ "J",
944
+ "B",
945
+ "E2",
946
+ "E3"
947
+ ]
948
+ },
949
+ "atomicSpecies": {
950
+ "type": "string",
951
+ "title": "Species"
952
+ },
953
+ "atomicOrbital": {
954
+ "type": "string",
955
+ "title": "Orbital"
956
+ },
957
+ "value": {
958
+ "type": "number",
959
+ "title": "Value (eV)"
960
+ }
961
+ }
962
+ }
963
+ },
964
+ "isEdited": {
965
+ "type": "boolean"
966
+ },
967
+ "extraData": {
968
+ "type": "object"
969
+ }
970
+ }
971
+ },
972
+ {
973
+ "$schema": "http://json-schema.org/draft-07/schema#",
974
+ "title": "hubbard_u context item schema",
975
+ "type": "object",
976
+ "required": [
977
+ "name",
978
+ "isEdited",
979
+ "data",
980
+ "extraData"
981
+ ],
982
+ "properties": {
983
+ "name": {
984
+ "type": "string",
985
+ "const": "hubbard_u"
986
+ },
987
+ "data": {
988
+ "$schema": "http://json-schema.org/draft-07/schema#",
989
+ "title": "Hubbard U Context Provider Schema",
990
+ "description": "Hubbard U parameters for DFT+U or DFT+U+V calculation.",
991
+ "type": "array",
992
+ "items": {
993
+ "type": "object",
994
+ "properties": {
995
+ "atomicSpecies": {
996
+ "type": "string",
997
+ "title": "Atomic species"
998
+ },
999
+ "atomicOrbital": {
1000
+ "type": "string",
1001
+ "title": "Atomic orbital"
1002
+ },
1003
+ "hubbardUValue": {
1004
+ "type": "number",
1005
+ "title": "Hubbard U (eV)"
1006
+ }
1007
+ }
1008
+ }
1009
+ },
1010
+ "extraData": {
1011
+ "$schema": "http://json-schema.org/draft-07/schema#",
1012
+ "title": "extraData with materialHash schema",
1013
+ "type": "object",
1014
+ "required": [
1015
+ "materialHash"
1016
+ ],
1017
+ "properties": {
1018
+ "materialHash": {
1019
+ "type": "string"
1020
+ }
1021
+ }
1022
+ },
1023
+ "isEdited": {
1024
+ "type": "boolean"
1025
+ }
1026
+ }
1027
+ },
1028
+ {
1029
+ "$schema": "http://json-schema.org/draft-07/schema#",
1030
+ "title": "hubbard_v context item schema",
1031
+ "type": "object",
1032
+ "required": [
1033
+ "name",
1034
+ "isEdited",
1035
+ "data",
1036
+ "extraData"
1037
+ ],
1038
+ "properties": {
1039
+ "name": {
1040
+ "type": "string",
1041
+ "const": "hubbard_v"
1042
+ },
1043
+ "data": {
1044
+ "$schema": "http://json-schema.org/draft-07/schema#",
1045
+ "title": "Hubbard V Context Provider Schema",
1046
+ "description": "Hubbard V parameters for DFT+U+V calculation.",
1047
+ "type": "array",
1048
+ "minItems": 1,
1049
+ "items": {
1050
+ "type": "object",
1051
+ "properties": {
1052
+ "atomicSpecies": {
1053
+ "type": "string",
1054
+ "title": "Species 1"
1055
+ },
1056
+ "siteIndex": {
1057
+ "type": "integer",
1058
+ "title": "Site no 1"
1059
+ },
1060
+ "atomicOrbital": {
1061
+ "type": "string",
1062
+ "title": "Orbital 1"
1063
+ },
1064
+ "atomicSpecies2": {
1065
+ "type": "string",
1066
+ "title": "Species 2"
1067
+ },
1068
+ "siteIndex2": {
1069
+ "type": "integer",
1070
+ "title": "Site no 2"
1071
+ },
1072
+ "atomicOrbital2": {
1073
+ "type": "string",
1074
+ "title": "Orbital 2"
1075
+ },
1076
+ "hubbardVValue": {
1077
+ "type": "number",
1078
+ "title": "V (eV)"
1079
+ }
1080
+ }
1081
+ }
1082
+ },
1083
+ "isEdited": {
1084
+ "type": "boolean"
1085
+ },
1086
+ "extraData": {
1087
+ "type": "object"
1088
+ }
1089
+ }
1090
+ },
1091
+ {
1092
+ "$schema": "http://json-schema.org/draft-07/schema#",
1093
+ "title": "hubbard_legacy context item schema",
1094
+ "type": "object",
1095
+ "required": [
1096
+ "name",
1097
+ "isEdited",
1098
+ "data",
1099
+ "extraData"
1100
+ ],
1101
+ "properties": {
1102
+ "name": {
1103
+ "type": "string",
1104
+ "const": "hubbard_legacy"
1105
+ },
1106
+ "data": {
1107
+ "$schema": "http://json-schema.org/draft-07/schema#",
1108
+ "title": "Hubbard Legacy Context Provider Schema",
1109
+ "description": "Hubbard parameters for DFT+U calculation.",
1110
+ "type": "array",
1111
+ "uniqueItems": true,
1112
+ "minItems": 1,
1113
+ "items": {
1114
+ "type": "object",
1115
+ "properties": {
1116
+ "atomicSpecies": {
1117
+ "type": "string",
1118
+ "title": "Atomic species"
1119
+ },
1120
+ "atomicSpeciesIndex": {
1121
+ "type": "integer",
1122
+ "title": "Species index"
1123
+ },
1124
+ "hubbardUValue": {
1125
+ "type": "number",
1126
+ "title": "Hubbard U (eV)"
1127
+ }
1128
+ }
1129
+ }
1130
+ },
1131
+ "isEdited": {
1132
+ "type": "boolean"
1133
+ },
1134
+ "extraData": {
1135
+ "type": "object"
1136
+ }
1137
+ }
1138
+ },
1139
+ {
1140
+ "$schema": "http://json-schema.org/draft-07/schema#",
1141
+ "title": "neb context item schema",
1142
+ "type": "object",
1143
+ "required": [
1144
+ "name",
1145
+ "isEdited",
1146
+ "data",
1147
+ "extraData"
1148
+ ],
1149
+ "properties": {
1150
+ "name": {
1151
+ "type": "string",
1152
+ "const": "neb"
1153
+ },
1154
+ "data": {
1155
+ "$schema": "http://json-schema.org/draft-07/schema#",
1156
+ "title": "NEB Data Provider Schema",
1157
+ "description": "Number of intermediate NEB images.",
1158
+ "type": "object",
1159
+ "properties": {
1160
+ "nImages": {
1161
+ "type": "number"
1162
+ }
1163
+ }
1164
+ },
1165
+ "isEdited": {
1166
+ "type": "boolean"
1167
+ },
1168
+ "extraData": {
1169
+ "type": "object"
1170
+ }
1171
+ }
1172
+ },
1173
+ {
1174
+ "$schema": "http://json-schema.org/draft-07/schema#",
1175
+ "title": "boundaryConditions context item schema",
1176
+ "type": "object",
1177
+ "required": [
1178
+ "name",
1179
+ "isEdited",
1180
+ "data",
1181
+ "extraData"
1182
+ ],
1183
+ "properties": {
1184
+ "name": {
1185
+ "type": "string",
1186
+ "const": "boundaryConditions"
1187
+ },
1188
+ "data": {
1189
+ "$schema": "http://json-schema.org/draft-07/schema#",
1190
+ "title": "Boundary Conditions Data Provider Schema",
1191
+ "type": "object",
1192
+ "properties": {
1193
+ "type": {
1194
+ "type": "string",
1195
+ "enum": [
1196
+ "pbc",
1197
+ "bc1",
1198
+ "bc2",
1199
+ "bc3"
1200
+ ],
1201
+ "default": "pbc",
1202
+ "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."
1203
+ },
1204
+ "offset": {
1205
+ "type": "number"
1206
+ },
1207
+ "electricField": {
1208
+ "type": "number",
1209
+ "title": "Electric Field (eV/A)"
1210
+ },
1211
+ "targetFermiEnergy": {
1212
+ "type": "number",
1213
+ "title": "Target Fermi Energy (eV)"
1214
+ }
1215
+ }
1216
+ },
1217
+ "extraData": {
1218
+ "$schema": "http://json-schema.org/draft-07/schema#",
1219
+ "title": "extraData with materialHash schema",
1220
+ "type": "object",
1221
+ "required": [
1222
+ "materialHash"
1223
+ ],
1224
+ "properties": {
1225
+ "materialHash": {
1226
+ "type": "string"
1227
+ }
1228
+ }
1229
+ },
1230
+ "isEdited": {
1231
+ "type": "boolean"
1232
+ }
1233
+ }
1234
+ },
1235
+ {
1236
+ "$schema": "http://json-schema.org/draft-07/schema#",
1237
+ "title": "mlSettings context item schema",
1238
+ "type": "object",
1239
+ "required": [
1240
+ "name",
1241
+ "isEdited",
1242
+ "data",
1243
+ "extraData"
1244
+ ],
1245
+ "properties": {
1246
+ "name": {
1247
+ "type": "string",
1248
+ "const": "mlSettings"
1249
+ },
1250
+ "data": {
1251
+ "$schema": "http://json-schema.org/draft-07/schema#",
1252
+ "title": "ML Settings Context Provider Schema",
1253
+ "description": "Settings important to machine learning runs.",
1254
+ "type": "object",
1255
+ "properties": {
1256
+ "target_column_name": {
1257
+ "type": "string"
1258
+ },
1259
+ "problem_category": {
1260
+ "type": "string",
1261
+ "enum": [
1262
+ "regression",
1263
+ "classification",
1264
+ "clustering"
1265
+ ]
1266
+ }
1267
+ }
1268
+ },
1269
+ "isEdited": {
1270
+ "type": "boolean"
1271
+ },
1272
+ "extraData": {
1273
+ "type": "object"
1274
+ }
1275
+ }
1276
+ },
1277
+ {
1278
+ "$schema": "http://json-schema.org/draft-07/schema#",
1279
+ "title": "mlTrainTestSplit context item schema",
1280
+ "type": "object",
1281
+ "required": [
1282
+ "name",
1283
+ "isEdited",
1284
+ "data",
1285
+ "extraData"
1286
+ ],
1287
+ "properties": {
1288
+ "name": {
1289
+ "type": "string",
1290
+ "const": "mlTrainTestSplit"
1291
+ },
1292
+ "data": {
1293
+ "$schema": "http://json-schema.org/draft-07/schema#",
1294
+ "title": "ML Train Test Split Context Provider Schema",
1295
+ "description": "Fraction held as the test set. For example, a value of 0.2 corresponds to an 80/20 train/test split.",
1296
+ "type": "object",
1297
+ "properties": {
1298
+ "fraction_held_as_test_set": {
1299
+ "type": "number",
1300
+ "minimum": 0,
1301
+ "maximum": 1
1302
+ }
1303
+ }
1304
+ },
1305
+ "isEdited": {
1306
+ "type": "boolean"
1307
+ },
1308
+ "extraData": {
1309
+ "type": "object"
1310
+ }
1311
+ }
1312
+ },
1313
+ {
1314
+ "$schema": "http://json-schema.org/draft-07/schema#",
1315
+ "title": "dynamics context item schema",
1316
+ "type": "object",
1317
+ "required": [
1318
+ "name",
1319
+ "isEdited",
1320
+ "data",
1321
+ "extraData"
1322
+ ],
1323
+ "properties": {
1324
+ "name": {
1325
+ "type": "string",
1326
+ "const": "dynamics"
1327
+ },
1328
+ "data": {
1329
+ "$schema": "http://json-schema.org/draft-07/schema#",
1330
+ "title": "Ion Dynamics Context Provider Schema",
1331
+ "description": "Important parameters for molecular dynamics calculation",
1332
+ "type": "object",
1333
+ "properties": {
1334
+ "numberOfSteps": {
1335
+ "type": "integer",
1336
+ "title": "numberOfSteps"
1337
+ },
1338
+ "timeStep": {
1339
+ "type": "number",
1340
+ "title": "timeStep (Hartree a.u.)"
1341
+ },
1342
+ "electronMass": {
1343
+ "type": "number",
1344
+ "title": "Effective electron mass"
1345
+ },
1346
+ "temperature": {
1347
+ "type": "number",
1348
+ "title": "Ionic temperature (K)"
1349
+ }
1350
+ }
1351
+ },
1352
+ "isEdited": {
1353
+ "type": "boolean"
1354
+ },
1355
+ "extraData": {
1356
+ "type": "object"
1357
+ }
1358
+ }
1359
+ },
1360
+ {
1361
+ "$schema": "http://json-schema.org/draft-07/schema#",
1362
+ "title": "collinearMagnetization context item schema",
1363
+ "type": "object",
1364
+ "required": [
1365
+ "name",
1366
+ "isEdited",
1367
+ "data",
1368
+ "extraData"
1369
+ ],
1370
+ "properties": {
1371
+ "name": {
1372
+ "type": "string",
1373
+ "const": "collinearMagnetization"
1374
+ },
1375
+ "data": {
1376
+ "$schema": "http://json-schema.org/draft-07/schema#",
1377
+ "title": "Collinear Magnetization Context Provider Schema",
1378
+ "description": "Set starting magnetization, can have values in the range [-1, +1].",
1379
+ "type": "object",
1380
+ "required": [
1381
+ "startingMagnetization",
1382
+ "isTotalMagnetization",
1383
+ "totalMagnetization"
1384
+ ],
1385
+ "properties": {
1386
+ "startingMagnetization": {
1387
+ "type": "array",
1388
+ "items": {
1389
+ "type": "object",
1390
+ "required": [
1391
+ "atomicSpecies",
1392
+ "value",
1393
+ "index"
1394
+ ],
1395
+ "properties": {
1396
+ "atomicSpecies": {
1397
+ "type": "string",
1398
+ "title": "Atomic species"
1399
+ },
1400
+ "value": {
1401
+ "type": "number",
1402
+ "title": "Starting magnetization",
1403
+ "minimum": -1,
1404
+ "maximum": 1
1405
+ },
1406
+ "index": {
1407
+ "type": "integer",
1408
+ "title": "Index"
1409
+ }
1410
+ }
1411
+ }
1412
+ },
1413
+ "isTotalMagnetization": {
1414
+ "type": "boolean",
1415
+ "title": "Set total magnetization instead"
1416
+ },
1417
+ "totalMagnetization": {
1418
+ "type": "number",
1419
+ "title": "Total magnetization"
1420
+ }
1421
+ }
1422
+ },
1423
+ "extraData": {
1424
+ "$schema": "http://json-schema.org/draft-07/schema#",
1425
+ "title": "extraData with materialHash schema",
1426
+ "type": "object",
1427
+ "required": [
1428
+ "materialHash"
1429
+ ],
1430
+ "properties": {
1431
+ "materialHash": {
1432
+ "type": "string"
1433
+ }
1434
+ }
1435
+ },
1436
+ "isEdited": {
1437
+ "type": "boolean"
1438
+ }
1439
+ }
1440
+ },
1441
+ {
1442
+ "$schema": "http://json-schema.org/draft-07/schema#",
1443
+ "title": "nonCollinearMagnetization context item schema",
1444
+ "type": "object",
1445
+ "required": [
1446
+ "name",
1447
+ "isEdited",
1448
+ "data",
1449
+ "extraData"
1450
+ ],
1451
+ "properties": {
1452
+ "name": {
1453
+ "type": "string",
1454
+ "const": "nonCollinearMagnetization"
1455
+ },
1456
+ "data": {
1457
+ "$schema": "http://json-schema.org/draft-07/schema#",
1458
+ "title": "Non Collinear Magnetization Context Provider Schema",
1459
+ "description": "Non-collinear magnetization parameters including starting magnetization, spin angles, and constraints.",
1460
+ "type": "object",
1461
+ "properties": {
1462
+ "isExistingChargeDensity": {
1463
+ "type": "boolean",
1464
+ "title": "Use existing charge density"
1465
+ },
1466
+ "isStartingMagnetization": {
1467
+ "type": "boolean",
1468
+ "title": "Set starting magnetization"
1469
+ },
1470
+ "startingMagnetization": {
1471
+ "type": "array",
1472
+ "items": {
1473
+ "type": "object",
1474
+ "properties": {
1475
+ "index": {
1476
+ "type": "integer",
1477
+ "title": "Index"
1478
+ },
1479
+ "atomicSpecies": {
1480
+ "type": "string",
1481
+ "title": "Atomic species"
1482
+ },
1483
+ "value": {
1484
+ "type": "number",
1485
+ "title": "Starting magnetization"
1486
+ }
1487
+ }
1488
+ }
1489
+ },
1490
+ "isArbitrarySpinAngle": {
1491
+ "type": "boolean",
1492
+ "title": "Set arbitrary spin angle"
1493
+ },
1494
+ "isArbitrarySpinDirection": {
1495
+ "type": "boolean",
1496
+ "title": "Set arbitrary spin direction"
1497
+ },
1498
+ "lforcet": {
1499
+ "type": "boolean"
1500
+ },
1501
+ "spinAngles": {
1502
+ "type": "array",
1503
+ "items": {
1504
+ "type": "object",
1505
+ "properties": {
1506
+ "index": {
1507
+ "type": "integer",
1508
+ "title": "Index"
1509
+ },
1510
+ "atomicSpecies": {
1511
+ "type": "string",
1512
+ "title": "Atomic species"
1513
+ },
1514
+ "angle1": {
1515
+ "type": "number",
1516
+ "title": "Angle1 (deg)"
1517
+ },
1518
+ "angle2": {
1519
+ "type": "number",
1520
+ "title": "Angle2 (deg)"
1521
+ }
1522
+ }
1523
+ }
1524
+ },
1525
+ "isConstrainedMagnetization": {
1526
+ "type": "boolean",
1527
+ "title": "Set constrained magnetization"
1528
+ },
1529
+ "constrainedMagnetization": {
1530
+ "type": "object",
1531
+ "properties": {
1532
+ "constrainType": {
1533
+ "type": "string",
1534
+ "title": "Constrain type",
1535
+ "enum": [
1536
+ "none",
1537
+ "total",
1538
+ "atomic",
1539
+ "total direction",
1540
+ "atomic direction"
1541
+ ]
1542
+ },
1543
+ "lambda": {
1544
+ "type": "number",
1545
+ "title": "lambda"
1546
+ }
1547
+ }
1548
+ },
1549
+ "isFixedMagnetization": {
1550
+ "type": "boolean",
1551
+ "title": "Set Fixed magnetization (only applicable to constrained magnetization of 'total' type)"
1552
+ },
1553
+ "fixedMagnetization": {
1554
+ "type": "object",
1555
+ "properties": {
1556
+ "x": {
1557
+ "type": "number",
1558
+ "title": "X-component"
1559
+ },
1560
+ "y": {
1561
+ "type": "number",
1562
+ "title": "Y-component"
1563
+ },
1564
+ "z": {
1565
+ "type": "number",
1566
+ "title": "Z-component"
1567
+ }
1568
+ }
1569
+ }
1570
+ }
1571
+ },
1572
+ "extraData": {
1573
+ "$schema": "http://json-schema.org/draft-07/schema#",
1574
+ "title": "extraData with materialHash schema",
1575
+ "type": "object",
1576
+ "required": [
1577
+ "materialHash"
1578
+ ],
1579
+ "properties": {
1580
+ "materialHash": {
1581
+ "type": "string"
1582
+ }
1583
+ }
1584
+ },
1585
+ "isEdited": {
1586
+ "type": "boolean"
1587
+ }
1588
+ }
1589
+ }
1590
+ ],
1591
+ "discriminator": {
1592
+ "propertyName": "name"
1593
+ }
1594
+ }