@mat3ra/made 2026.8.7-0 → 2026.8.18-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 (522) hide show
  1. package/dist/js/Material.d.ts +219 -0
  2. package/dist/js/Material.js +457 -0
  3. package/dist/js/basis/basis.d.ts +14 -9
  4. package/dist/js/basis/basis.js +15 -13
  5. package/dist/js/basis/constrained_basis.d.ts +9 -7
  6. package/dist/js/basis/constrained_basis.js +4 -4
  7. package/dist/js/generated/MaterialSchemaMixin.d.ts +5 -0
  8. package/dist/js/generated/MaterialSchemaMixin.js +69 -0
  9. package/dist/js/lattice/lattice.d.ts +4 -3
  10. package/dist/js/lattice/lattice.js +1 -2
  11. package/dist/js/made.d.ts +12 -12
  12. package/dist/js/made.js +38 -5
  13. package/dist/js/parsers/espresso.d.ts +2 -3
  14. package/dist/js/parsers/espresso.js +0 -1
  15. package/dist/js/parsers/native_format_parsers.d.ts +9 -8
  16. package/dist/js/parsers/native_format_parsers.js +6 -6
  17. package/dist/js/parsers/parsers.d.ts +6 -6
  18. package/dist/js/parsers/poscar.d.ts +5 -4
  19. package/dist/js/parsers/poscar.js +3 -2
  20. package/dist/js/parsers/xyz.d.ts +3 -5
  21. package/dist/js/parsers/xyz.js +3 -4
  22. package/dist/js/parsers/xyz_combinatorial_basis.js +3 -1
  23. package/dist/js/tools/basis.d.ts +1 -1
  24. package/dist/js/tools/index.d.ts +7 -7
  25. package/dist/js/tools/material.d.ts +1 -1
  26. package/dist/js/tools/material.js +8 -7
  27. package/dist/js/tools/supercell.d.ts +4 -5
  28. package/dist/js/tools/supercell.js +2 -4
  29. package/dist/js/tools/surface.d.ts +4 -4
  30. package/dist/js/tools/surface.js +2 -7
  31. package/package.json +12 -8
  32. package/.babelrc +0 -10
  33. package/.eslintrc.json +0 -11
  34. package/.gitattributes +0 -1
  35. package/.husky/post-checkout +0 -3
  36. package/.husky/post-commit +0 -3
  37. package/.husky/post-merge +0 -3
  38. package/.husky/pre-commit +0 -6
  39. package/.husky/pre-push +0 -3
  40. package/.mocharc.json +0 -5
  41. package/.pre-commit-config.yaml +0 -26
  42. package/.prettierignore +0 -2
  43. package/.prettierrc +0 -6
  44. package/AGENTS.md +0 -133
  45. package/MANIFEST.in +0 -1
  46. package/data/constants.json +0 -13
  47. package/data/reciprocal_paths.json +0 -111
  48. package/dist/js/material.d.ts +0 -169
  49. package/dist/js/material.js +0 -362
  50. package/images/made/tools/tools_diagram_general.png +0 -3
  51. package/images/made/tools/tools_diagram_interface.png +0 -3
  52. package/pyproject.toml +0 -123
  53. package/src/__init__.py +0 -0
  54. package/src/js/basis/basis.ts +0 -621
  55. package/src/js/basis/constrained_basis.ts +0 -114
  56. package/src/js/basis/coordinates.ts +0 -93
  57. package/src/js/basis/elements.ts +0 -24
  58. package/src/js/basis/helpers.ts +0 -20
  59. package/src/js/basis/labels.ts +0 -6
  60. package/src/js/cell/cell.ts +0 -150
  61. package/src/js/cell/conventional_cell.ts +0 -86
  62. package/src/js/cell/primitive_cell.ts +0 -166
  63. package/src/js/constants/molecule.ts +0 -18
  64. package/src/js/constants.ts +0 -4
  65. package/src/js/constraints/constraints.ts +0 -45
  66. package/src/js/lattice/lattice.ts +0 -306
  67. package/src/js/lattice/lattice_types.ts +0 -134
  68. package/src/js/lattice/reciprocal/lattice_reciprocal.ts +0 -193
  69. package/src/js/lattice/reciprocal/paths.ts +0 -39
  70. package/src/js/lattice/reciprocal/symmetry_points.ts +0 -886
  71. package/src/js/lattice/unit_cell.ts +0 -66
  72. package/src/js/made.ts +0 -62
  73. package/src/js/material.ts +0 -458
  74. package/src/js/parsers/cif.ts +0 -25
  75. package/src/js/parsers/errors.ts +0 -6
  76. package/src/js/parsers/espresso.ts +0 -30
  77. package/src/js/parsers/native_format_parsers.ts +0 -51
  78. package/src/js/parsers/parsers.ts +0 -13
  79. package/src/js/parsers/poscar.ts +0 -212
  80. package/src/js/parsers/xyz.ts +0 -187
  81. package/src/js/parsers/xyz_combinatorial_basis.ts +0 -265
  82. package/src/js/tools/basis.ts +0 -132
  83. package/src/js/tools/cell.ts +0 -41
  84. package/src/js/tools/index.ts +0 -11
  85. package/src/js/tools/material.ts +0 -62
  86. package/src/js/tools/supercell.ts +0 -88
  87. package/src/js/tools/surface.ts +0 -223
  88. package/src/py/__init__.py +0 -0
  89. package/src/py/mat3ra/__init__.py +0 -1
  90. package/src/py/mat3ra/made/__init__.py +0 -7
  91. package/src/py/mat3ra/made/basis/__init__.py +0 -255
  92. package/src/py/mat3ra/made/basis/coordinates.py +0 -43
  93. package/src/py/mat3ra/made/cell/__init__.py +0 -55
  94. package/src/py/mat3ra/made/cell/primitive_cell.py +0 -156
  95. package/src/py/mat3ra/made/data_helper.py +0 -5
  96. package/src/py/mat3ra/made/lattice.py +0 -195
  97. package/src/py/mat3ra/made/material.py +0 -134
  98. package/src/py/mat3ra/made/metadata.py +0 -45
  99. package/src/py/mat3ra/made/reciprocal/__init__.py +0 -5
  100. package/src/py/mat3ra/made/reciprocal/lattice_reciprocal.py +0 -147
  101. package/src/py/mat3ra/made/reciprocal/paths.py +0 -30
  102. package/src/py/mat3ra/made/reciprocal/symmetry_points.py +0 -385
  103. package/src/py/mat3ra/made/tools/README.md +0 -173
  104. package/src/py/mat3ra/made/tools/__init__.py +0 -0
  105. package/src/py/mat3ra/made/tools/analyze/__init__.py +0 -31
  106. package/src/py/mat3ra/made/tools/analyze/basis/__init__.py +0 -3
  107. package/src/py/mat3ra/made/tools/analyze/basis/analyzer.py +0 -50
  108. package/src/py/mat3ra/made/tools/analyze/build_metadata_analyzer.py +0 -32
  109. package/src/py/mat3ra/made/tools/analyze/build_metadata_analyzer_factory.py +0 -31
  110. package/src/py/mat3ra/made/tools/analyze/coordination.py +0 -56
  111. package/src/py/mat3ra/made/tools/analyze/crystal_site/__init__.py +0 -0
  112. package/src/py/mat3ra/made/tools/analyze/crystal_site/adatom_crystal_site_material_analyzer.py +0 -35
  113. package/src/py/mat3ra/made/tools/analyze/crystal_site/adatom_material_analyzer.py +0 -49
  114. package/src/py/mat3ra/made/tools/analyze/crystal_site/crystal_site_analyzer.py +0 -65
  115. package/src/py/mat3ra/made/tools/analyze/crystal_site/voronoi_crystal_site_analyzer.py +0 -47
  116. package/src/py/mat3ra/made/tools/analyze/enums.py +0 -33
  117. package/src/py/mat3ra/made/tools/analyze/fingerprint/__init__.py +0 -4
  118. package/src/py/mat3ra/made/tools/analyze/fingerprint/layers/__init__.py +0 -0
  119. package/src/py/mat3ra/made/tools/analyze/fingerprint/layers/layered_fingerprint_along_axis.py +0 -83
  120. package/src/py/mat3ra/made/tools/analyze/fingerprint/layers/unique_element_string_per_layer.py +0 -9
  121. package/src/py/mat3ra/made/tools/analyze/interface/__init__.py +0 -20
  122. package/src/py/mat3ra/made/tools/analyze/interface/commensurate.py +0 -156
  123. package/src/py/mat3ra/made/tools/analyze/interface/enums.py +0 -60
  124. package/src/py/mat3ra/made/tools/analyze/interface/grain_boundary.py +0 -80
  125. package/src/py/mat3ra/made/tools/analyze/interface/simple.py +0 -251
  126. package/src/py/mat3ra/made/tools/analyze/interface/twisted_nanoribbons.py +0 -91
  127. package/src/py/mat3ra/made/tools/analyze/interface/utils/__init__.py +0 -77
  128. package/src/py/mat3ra/made/tools/analyze/interface/utils/holders.py +0 -14
  129. package/src/py/mat3ra/made/tools/analyze/interface/utils/vector.py +0 -56
  130. package/src/py/mat3ra/made/tools/analyze/interface/zsl.py +0 -259
  131. package/src/py/mat3ra/made/tools/analyze/interface_material.py +0 -45
  132. package/src/py/mat3ra/made/tools/analyze/lattice/__init__.py +0 -2
  133. package/src/py/mat3ra/made/tools/analyze/lattice/analyzer.py +0 -126
  134. package/src/py/mat3ra/made/tools/analyze/lattice/helpers.py +0 -31
  135. package/src/py/mat3ra/made/tools/analyze/lattice_lines.py +0 -30
  136. package/src/py/mat3ra/made/tools/analyze/lattice_planes.py +0 -192
  137. package/src/py/mat3ra/made/tools/analyze/lattice_swap_analyzer.py +0 -105
  138. package/src/py/mat3ra/made/tools/analyze/material.py +0 -276
  139. package/src/py/mat3ra/made/tools/analyze/other.py +0 -434
  140. package/src/py/mat3ra/made/tools/analyze/rdf.py +0 -74
  141. package/src/py/mat3ra/made/tools/analyze/slab.py +0 -76
  142. package/src/py/mat3ra/made/tools/analyze/solid_solution_analyzer.py +0 -171
  143. package/src/py/mat3ra/made/tools/analyze/terrace.py +0 -105
  144. package/src/py/mat3ra/made/tools/analyze/utils.py +0 -162
  145. package/src/py/mat3ra/made/tools/bond_directions/__init__.py +0 -0
  146. package/src/py/mat3ra/made/tools/bond_directions/bond_directions.py +0 -150
  147. package/src/py/mat3ra/made/tools/bond_directions/bond_directions_for_element_list.py +0 -7
  148. package/src/py/mat3ra/made/tools/bond_directions/bond_directions_templates_enum.py +0 -8
  149. package/src/py/mat3ra/made/tools/bond_directions/bond_directions_templates_for_element.py +0 -16
  150. package/src/py/mat3ra/made/tools/build/__init__.py +0 -25
  151. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/heterostructure/__init__.py +0 -7
  152. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/heterostructure/helpers.py +0 -59
  153. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/heterostructure/types.py +0 -26
  154. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/heterostructure/utils.py +0 -139
  155. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/interface/__init__.py +0 -47
  156. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/interface/base/__init__.py +0 -11
  157. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/interface/base/build_parameters.py +0 -5
  158. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/interface/base/builder.py +0 -164
  159. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/interface/base/configuration.py +0 -48
  160. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/interface/base/helpers.py +0 -134
  161. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/interface/commensurate/__init__.py +0 -6
  162. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/interface/commensurate/helpers.py +0 -157
  163. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/interface/enums.py +0 -7
  164. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/interface/twisted/__init__.py +0 -7
  165. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/interface/twisted/configuration.py +0 -13
  166. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/interface/twisted/helpers.py +0 -70
  167. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/interface/utils.py +0 -87
  168. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/interface/zsl/__init__.py +0 -6
  169. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/interface/zsl/helpers.py +0 -129
  170. package/src/py/mat3ra/made/tools/build/defective_structures/__init__.py +0 -0
  171. package/src/py/mat3ra/made/tools/build/defective_structures/one_dimensional/__init__.py +0 -0
  172. package/src/py/mat3ra/made/tools/build/defective_structures/one_dimensional/grain_boundary_linear/__init__.py +0 -0
  173. package/src/py/mat3ra/made/tools/build/defective_structures/one_dimensional/grain_boundary_linear/build_parameters.py +0 -12
  174. package/src/py/mat3ra/made/tools/build/defective_structures/one_dimensional/grain_boundary_linear/builder.py +0 -17
  175. package/src/py/mat3ra/made/tools/build/defective_structures/one_dimensional/grain_boundary_linear/configuration.py +0 -40
  176. package/src/py/mat3ra/made/tools/build/defective_structures/one_dimensional/grain_boundary_linear/helpers.py +0 -82
  177. package/src/py/mat3ra/made/tools/build/defective_structures/three_dimensional/__init__.py +0 -1
  178. package/src/py/mat3ra/made/tools/build/defective_structures/three_dimensional/solid_solution/__init__.py +0 -9
  179. package/src/py/mat3ra/made/tools/build/defective_structures/three_dimensional/solid_solution/builder.py +0 -37
  180. package/src/py/mat3ra/made/tools/build/defective_structures/three_dimensional/solid_solution/configuration.py +0 -30
  181. package/src/py/mat3ra/made/tools/build/defective_structures/three_dimensional/solid_solution/enums.py +0 -8
  182. package/src/py/mat3ra/made/tools/build/defective_structures/three_dimensional/solid_solution/helpers.py +0 -76
  183. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/__init__.py +0 -0
  184. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/adatom/__init__.py +0 -0
  185. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/adatom/builder.py +0 -11
  186. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/adatom/configuration.py +0 -18
  187. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/adatom/helpers.py +0 -137
  188. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/adatom/types.py +0 -22
  189. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/grain_boundary_planar/__init__.py +0 -0
  190. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/grain_boundary_planar/builder.py +0 -28
  191. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/grain_boundary_planar/configuration.py +0 -55
  192. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/grain_boundary_planar/helpers.py +0 -75
  193. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/island/builder.py +0 -15
  194. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/island/configuration.py +0 -16
  195. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/island/helpers.py +0 -116
  196. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/terrace/build_parameters.py +0 -10
  197. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/terrace/builder.py +0 -30
  198. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/terrace/configuration.py +0 -11
  199. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/terrace/helpers.py +0 -78
  200. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/__init__.py +0 -0
  201. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/pair_defect/__init__.py +0 -0
  202. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/pair_defect/builder.py +0 -31
  203. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/pair_defect/configuration.py +0 -45
  204. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/pair_defect/helpers.py +0 -80
  205. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/__init__.py +0 -40
  206. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/atom_placement_method_enum.py +0 -14
  207. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/base/__init__.py +0 -7
  208. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/base/builder.py +0 -42
  209. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/base/configuration.py +0 -27
  210. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/complex_defect_type_enum.py +0 -5
  211. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/factories.py +0 -69
  212. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/helpers.py +0 -92
  213. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/interstitial/__init__.py +0 -7
  214. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/interstitial/builder.py +0 -8
  215. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/interstitial/configuration.py +0 -29
  216. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/interstitial/helpers.py +0 -48
  217. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/interstitial/interstitial_placement_method_enum.py +0 -8
  218. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/point_defect_type_enum.py +0 -8
  219. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/substitutional/__init__.py +0 -7
  220. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/substitutional/builder.py +0 -6
  221. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/substitutional/configuration.py +0 -41
  222. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/substitutional/helpers.py +0 -43
  223. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/substitutional/substitution_placement_method_enum.py +0 -7
  224. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/types.py +0 -24
  225. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/vacancy/__init__.py +0 -7
  226. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/vacancy/builder.py +0 -19
  227. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/vacancy/configuration.py +0 -27
  228. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/vacancy/helpers.py +0 -42
  229. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/vacancy/vacancy_placement_method_enum.py +0 -7
  230. package/src/py/mat3ra/made/tools/build/pristine_structures/__init__.py +0 -0
  231. package/src/py/mat3ra/made/tools/build/pristine_structures/three_dimensional/ideal_crystal/__init__.py +0 -0
  232. package/src/py/mat3ra/made/tools/build/pristine_structures/three_dimensional/ideal_crystal/builder.py +0 -80
  233. package/src/py/mat3ra/made/tools/build/pristine_structures/three_dimensional/ideal_crystal/configurations.py +0 -22
  234. package/src/py/mat3ra/made/tools/build/pristine_structures/three_dimensional/ideal_crystal/helpers.py +0 -40
  235. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/__init__.py +0 -0
  236. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/nanoribbon/__init__.py +0 -29
  237. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/nanoribbon/build_parameters.py +0 -5
  238. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/nanoribbon/builders.py +0 -56
  239. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/nanoribbon/configuration.py +0 -33
  240. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/nanoribbon/helpers.py +0 -76
  241. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/nanotape/__init__.py +0 -11
  242. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/nanotape/build_parameters.py +0 -9
  243. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/nanotape/builders.py +0 -83
  244. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/nanotape/configuration.py +0 -35
  245. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/nanotape/helpers.py +0 -62
  246. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/slab/__init__.py +0 -9
  247. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/slab/build_parameters.py +0 -8
  248. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/slab/builder.py +0 -42
  249. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/slab/configuration.py +0 -99
  250. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/slab/helpers.py +0 -95
  251. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/slab/termination_utils.py +0 -14
  252. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/slab/utils.py +0 -61
  253. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/slab_strained_supercell/builder.py +0 -22
  254. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/slab_strained_supercell/configuration.py +0 -17
  255. package/src/py/mat3ra/made/tools/build/pristine_structures/zero_dimensional/__init__.py +0 -0
  256. package/src/py/mat3ra/made/tools/build/pristine_structures/zero_dimensional/nanoparticle/__init__.py +0 -19
  257. package/src/py/mat3ra/made/tools/build/pristine_structures/zero_dimensional/nanoparticle/analyzer.py +0 -86
  258. package/src/py/mat3ra/made/tools/build/pristine_structures/zero_dimensional/nanoparticle/ase_based/__init__.py +0 -7
  259. package/src/py/mat3ra/made/tools/build/pristine_structures/zero_dimensional/nanoparticle/ase_based/builder.py +0 -54
  260. package/src/py/mat3ra/made/tools/build/pristine_structures/zero_dimensional/nanoparticle/ase_based/configuration.py +0 -19
  261. package/src/py/mat3ra/made/tools/build/pristine_structures/zero_dimensional/nanoparticle/enums.py +0 -42
  262. package/src/py/mat3ra/made/tools/build/pristine_structures/zero_dimensional/nanoparticle/helpers.py +0 -127
  263. package/src/py/mat3ra/made/tools/build/pristine_structures/zero_dimensional/nanoparticle/merge_based/__init__.py +0 -7
  264. package/src/py/mat3ra/made/tools/build/pristine_structures/zero_dimensional/nanoparticle/merge_based/builder.py +0 -33
  265. package/src/py/mat3ra/made/tools/build/pristine_structures/zero_dimensional/nanoparticle/merge_based/configuration.py +0 -16
  266. package/src/py/mat3ra/made/tools/build/processed_structures/__init__.py +0 -0
  267. package/src/py/mat3ra/made/tools/build/processed_structures/two_dimensional/__init__.py +0 -0
  268. package/src/py/mat3ra/made/tools/build/processed_structures/two_dimensional/passivation/__init__.py +0 -0
  269. package/src/py/mat3ra/made/tools/build/processed_structures/two_dimensional/passivation/analyzers/__init__.py +0 -9
  270. package/src/py/mat3ra/made/tools/build/processed_structures/two_dimensional/passivation/analyzers/coordination_based_passivation_material_analyzer.py +0 -112
  271. package/src/py/mat3ra/made/tools/build/processed_structures/two_dimensional/passivation/analyzers/passivation_material_analyzer.py +0 -16
  272. package/src/py/mat3ra/made/tools/build/processed_structures/two_dimensional/passivation/analyzers/surface_passivation_material_analyzer.py +0 -32
  273. package/src/py/mat3ra/made/tools/build/processed_structures/two_dimensional/passivation/builder.py +0 -23
  274. package/src/py/mat3ra/made/tools/build/processed_structures/two_dimensional/passivation/configuration.py +0 -31
  275. package/src/py/mat3ra/made/tools/build/processed_structures/two_dimensional/passivation/enums.py +0 -7
  276. package/src/py/mat3ra/made/tools/build/processed_structures/two_dimensional/passivation/helpers.py +0 -151
  277. package/src/py/mat3ra/made/tools/build_components/__init__.py +0 -10
  278. package/src/py/mat3ra/made/tools/build_components/entities/__init__.py +0 -0
  279. package/src/py/mat3ra/made/tools/build_components/entities/auxiliary/__init__.py +0 -0
  280. package/src/py/mat3ra/made/tools/build_components/entities/auxiliary/one_dimensional/miller_indices_2d.py +0 -0
  281. package/src/py/mat3ra/made/tools/build_components/entities/auxiliary/two_dimensional/miller_indices.py +0 -18
  282. package/src/py/mat3ra/made/tools/build_components/entities/auxiliary/two_dimensional/termination.py +0 -33
  283. package/src/py/mat3ra/made/tools/build_components/entities/auxiliary/zero_dimensional/__init__.py +0 -0
  284. package/src/py/mat3ra/made/tools/build_components/entities/auxiliary/zero_dimensional/crystal_site/__init__.py +0 -2
  285. package/src/py/mat3ra/made/tools/build_components/entities/auxiliary/zero_dimensional/crystal_site/crystal_site.py +0 -24
  286. package/src/py/mat3ra/made/tools/build_components/entities/auxiliary/zero_dimensional/crystal_site/crystal_site_list.py +0 -9
  287. package/src/py/mat3ra/made/tools/build_components/entities/auxiliary/zero_dimensional/point_defect_site/builder.py +0 -32
  288. package/src/py/mat3ra/made/tools/build_components/entities/auxiliary/zero_dimensional/point_defect_site/configuration.py +0 -14
  289. package/src/py/mat3ra/made/tools/build_components/entities/auxiliary/zero_dimensional/void_region/__init__.py +0 -0
  290. package/src/py/mat3ra/made/tools/build_components/entities/auxiliary/zero_dimensional/void_region/builder.py +0 -29
  291. package/src/py/mat3ra/made/tools/build_components/entities/auxiliary/zero_dimensional/void_region/configuration.py +0 -19
  292. package/src/py/mat3ra/made/tools/build_components/entities/core/two_dimensional/vacuum/builder.py +0 -48
  293. package/src/py/mat3ra/made/tools/build_components/entities/core/two_dimensional/vacuum/configuration.py +0 -17
  294. package/src/py/mat3ra/made/tools/build_components/entities/core/zero_dimensional/atom/builder.py +0 -25
  295. package/src/py/mat3ra/made/tools/build_components/entities/core/zero_dimensional/atom/configuration.py +0 -8
  296. package/src/py/mat3ra/made/tools/build_components/entities/reusable/__init__.py +0 -0
  297. package/src/py/mat3ra/made/tools/build_components/entities/reusable/base_builder/__init__.py +0 -16
  298. package/src/py/mat3ra/made/tools/build_components/entities/reusable/base_builder/base_configuration_pydantic.py +0 -5
  299. package/src/py/mat3ra/made/tools/build_components/entities/reusable/base_builder/base_single_builder.py +0 -87
  300. package/src/py/mat3ra/made/tools/build_components/entities/reusable/base_builder/build_parameters.py +0 -5
  301. package/src/py/mat3ra/made/tools/build_components/entities/reusable/one_dimensional/__init__.py +0 -0
  302. package/src/py/mat3ra/made/tools/build_components/entities/reusable/one_dimensional/crystal_lattice_lines/__init__.py +0 -4
  303. package/src/py/mat3ra/made/tools/build_components/entities/reusable/one_dimensional/crystal_lattice_lines/builder.py +0 -46
  304. package/src/py/mat3ra/made/tools/build_components/entities/reusable/one_dimensional/crystal_lattice_lines/configuration.py +0 -19
  305. package/src/py/mat3ra/made/tools/build_components/entities/reusable/one_dimensional/crystal_lattice_lines/edge_types.py +0 -51
  306. package/src/py/mat3ra/made/tools/build_components/entities/reusable/one_dimensional/crystal_lattice_lines/helpers.py +0 -58
  307. package/src/py/mat3ra/made/tools/build_components/entities/reusable/one_dimensional/crystal_lattice_lines_unique_repeated/__init__.py +0 -4
  308. package/src/py/mat3ra/made/tools/build_components/entities/reusable/one_dimensional/crystal_lattice_lines_unique_repeated/builder.py +0 -42
  309. package/src/py/mat3ra/made/tools/build_components/entities/reusable/one_dimensional/crystal_lattice_lines_unique_repeated/configuration.py +0 -21
  310. package/src/py/mat3ra/made/tools/build_components/entities/reusable/three_dimensional/supercell/__init__.py +0 -0
  311. package/src/py/mat3ra/made/tools/build_components/entities/reusable/three_dimensional/supercell/configuration.py +0 -11
  312. package/src/py/mat3ra/made/tools/build_components/entities/reusable/three_dimensional/supercell/helpers.py +0 -38
  313. package/src/py/mat3ra/made/tools/build_components/entities/reusable/two_dimensional/__init__.py +0 -24
  314. package/src/py/mat3ra/made/tools/build_components/entities/reusable/two_dimensional/atomic_layers_unique_repeated/__init__.py +0 -7
  315. package/src/py/mat3ra/made/tools/build_components/entities/reusable/two_dimensional/atomic_layers_unique_repeated/builder.py +0 -62
  316. package/src/py/mat3ra/made/tools/build_components/entities/reusable/two_dimensional/atomic_layers_unique_repeated/configuration.py +0 -14
  317. package/src/py/mat3ra/made/tools/build_components/entities/reusable/two_dimensional/atomic_layers_unique_repeated/helpers.py +0 -42
  318. package/src/py/mat3ra/made/tools/build_components/entities/reusable/two_dimensional/crystal_lattice_planes/__init__.py +0 -7
  319. package/src/py/mat3ra/made/tools/build_components/entities/reusable/two_dimensional/crystal_lattice_planes/builder.py +0 -39
  320. package/src/py/mat3ra/made/tools/build_components/entities/reusable/two_dimensional/crystal_lattice_planes/configuration.py +0 -24
  321. package/src/py/mat3ra/made/tools/build_components/entities/reusable/two_dimensional/slab_stack/__init__.py +0 -10
  322. package/src/py/mat3ra/made/tools/build_components/entities/reusable/two_dimensional/slab_stack/builder.py +0 -36
  323. package/src/py/mat3ra/made/tools/build_components/entities/reusable/two_dimensional/slab_stack/configuration.py +0 -31
  324. package/src/py/mat3ra/made/tools/build_components/entities/reusable/two_dimensional/slab_stack/helpers.py +0 -80
  325. package/src/py/mat3ra/made/tools/build_components/entities/reusable/zero_dimensional/__init__.py +0 -0
  326. package/src/py/mat3ra/made/tools/build_components/entities/reusable/zero_dimensional/coordinates_shape_enum.py +0 -8
  327. package/src/py/mat3ra/made/tools/build_components/metadata/__init__.py +0 -2
  328. package/src/py/mat3ra/made/tools/build_components/metadata/build_metadata.py +0 -7
  329. package/src/py/mat3ra/made/tools/build_components/metadata/material_build_metadata.py +0 -35
  330. package/src/py/mat3ra/made/tools/build_components/metadata/material_with_build_metadata.py +0 -8
  331. package/src/py/mat3ra/made/tools/build_components/mixins/__init__.py +0 -2
  332. package/src/py/mat3ra/made/tools/build_components/mixins/convert_generated_items_ase_atoms_mixin.py +0 -8
  333. package/src/py/mat3ra/made/tools/build_components/mixins/convert_generated_items_pymatgen_structure_mixin.py +0 -8
  334. package/src/py/mat3ra/made/tools/build_components/operations/core/combinations/__init__.py +0 -0
  335. package/src/py/mat3ra/made/tools/build_components/operations/core/combinations/enums.py +0 -11
  336. package/src/py/mat3ra/made/tools/build_components/operations/core/combinations/merge/__init__.py +0 -6
  337. package/src/py/mat3ra/made/tools/build_components/operations/core/combinations/merge/build_parameters.py +0 -18
  338. package/src/py/mat3ra/made/tools/build_components/operations/core/combinations/merge/builder.py +0 -93
  339. package/src/py/mat3ra/made/tools/build_components/operations/core/combinations/merge/configuration.py +0 -20
  340. package/src/py/mat3ra/made/tools/build_components/operations/core/combinations/stack/builder.py +0 -83
  341. package/src/py/mat3ra/made/tools/build_components/operations/core/combinations/stack/configuration.py +0 -24
  342. package/src/py/mat3ra/made/tools/build_components/operations/core/modifications/perturb/__init__.py +0 -15
  343. package/src/py/mat3ra/made/tools/build_components/operations/core/modifications/perturb/build_parameters.py +0 -5
  344. package/src/py/mat3ra/made/tools/build_components/operations/core/modifications/perturb/builders/base.py +0 -33
  345. package/src/py/mat3ra/made/tools/build_components/operations/core/modifications/perturb/builders/isometric.py +0 -25
  346. package/src/py/mat3ra/made/tools/build_components/operations/core/modifications/perturb/configuration.py +0 -24
  347. package/src/py/mat3ra/made/tools/build_components/operations/core/modifications/perturb/functions/__init__.py +0 -13
  348. package/src/py/mat3ra/made/tools/build_components/operations/core/modifications/perturb/functions/atomic_mass_dependent_function_holder.py +0 -32
  349. package/src/py/mat3ra/made/tools/build_components/operations/core/modifications/perturb/functions/function_holder.py +0 -80
  350. package/src/py/mat3ra/made/tools/build_components/operations/core/modifications/perturb/functions/maxwell_boltzmann.py +0 -39
  351. package/src/py/mat3ra/made/tools/build_components/operations/core/modifications/perturb/functions/perturbation_function_holder.py +0 -45
  352. package/src/py/mat3ra/made/tools/build_components/operations/core/modifications/perturb/functions/sine_wave_perturbation_function_holder.py +0 -29
  353. package/src/py/mat3ra/made/tools/build_components/operations/core/modifications/perturb/helpers.py +0 -83
  354. package/src/py/mat3ra/made/tools/build_components/operations/core/modifications/strain/__init__.py +0 -5
  355. package/src/py/mat3ra/made/tools/build_components/operations/core/modifications/strain/builder.py +0 -25
  356. package/src/py/mat3ra/made/tools/build_components/operations/core/modifications/strain/configuration.py +0 -23
  357. package/src/py/mat3ra/made/tools/build_components/operations/core/modifications/strain/helpers.py +0 -49
  358. package/src/py/mat3ra/made/tools/build_components/utils.py +0 -44
  359. package/src/py/mat3ra/made/tools/calculate/__init__.py +0 -149
  360. package/src/py/mat3ra/made/tools/calculate/ase/__init__.py +0 -133
  361. package/src/py/mat3ra/made/tools/calculate/ase/constraints.py +0 -91
  362. package/src/py/mat3ra/made/tools/calculate/calculators/__init__.py +0 -4
  363. package/src/py/mat3ra/made/tools/calculate/calculators/interface_material_calculator.py +0 -70
  364. package/src/py/mat3ra/made/tools/calculate/calculators/interface_material_calculator_parameters.py +0 -14
  365. package/src/py/mat3ra/made/tools/calculate/calculators/material_calculator.py +0 -32
  366. package/src/py/mat3ra/made/tools/calculate/calculators/material_calculator_parameters.py +0 -17
  367. package/src/py/mat3ra/made/tools/calculate/interaction_functions.py +0 -23
  368. package/src/py/mat3ra/made/tools/convert/__init__.py +0 -286
  369. package/src/py/mat3ra/made/tools/convert/interface_parts_enum.py +0 -9
  370. package/src/py/mat3ra/made/tools/convert/utils.py +0 -96
  371. package/src/py/mat3ra/made/tools/entities/__init__.py +0 -5
  372. package/src/py/mat3ra/made/tools/entities/coordinate/__init__.py +0 -14
  373. package/src/py/mat3ra/made/tools/entities/coordinate/box_coordinate_condition.py +0 -15
  374. package/src/py/mat3ra/made/tools/entities/coordinate/coordinate_condition.py +0 -16
  375. package/src/py/mat3ra/made/tools/entities/coordinate/coordinate_functions.py +0 -158
  376. package/src/py/mat3ra/made/tools/entities/coordinate/cylinder_coordinate_condition.py +0 -17
  377. package/src/py/mat3ra/made/tools/entities/coordinate/plane_coordinate_condition.py +0 -14
  378. package/src/py/mat3ra/made/tools/entities/coordinate/sphere_coordinate_condition.py +0 -15
  379. package/src/py/mat3ra/made/tools/entities/coordinate/triangular_prism_coordinate_condition.py +0 -26
  380. package/src/py/mat3ra/made/tools/entities/termination_holder.py +0 -12
  381. package/src/py/mat3ra/made/tools/helpers.py +0 -168
  382. package/src/py/mat3ra/made/tools/modify.py +0 -627
  383. package/src/py/mat3ra/made/tools/operations/core/binary.py +0 -106
  384. package/src/py/mat3ra/made/tools/operations/core/unary.py +0 -170
  385. package/src/py/mat3ra/made/tools/operations/core/utils.py +0 -138
  386. package/src/py/mat3ra/made/tools/operations/reusable/unary.py +0 -53
  387. package/src/py/mat3ra/made/tools/optimize.py +0 -55
  388. package/src/py/mat3ra/made/tools/third_party.py +0 -69
  389. package/src/py/mat3ra/made/tools/utils.py +0 -182
  390. package/src/py/mat3ra/made/utils.py +0 -144
  391. package/tests/.gitattributes +0 -1
  392. package/tests/fixtures/AsGe-basis.json +0 -3
  393. package/tests/fixtures/C2H4-translated.json +0 -3
  394. package/tests/fixtures/C2H4.json +0 -3
  395. package/tests/fixtures/FeLiSi-basis.json +0 -3
  396. package/tests/fixtures/FeO.json +0 -3
  397. package/tests/fixtures/Ge2-basis.json +0 -3
  398. package/tests/fixtures/Graphene.json +0 -3
  399. package/tests/fixtures/Graphene.poscar +0 -3
  400. package/tests/fixtures/H2+H-final.json +0 -3
  401. package/tests/fixtures/H2+H-image.json +0 -3
  402. package/tests/fixtures/H2+H-initial.json +0 -3
  403. package/tests/fixtures/H2O.poscar +0 -3
  404. package/tests/fixtures/LiFeSi-basis-labels.json +0 -3
  405. package/tests/fixtures/LiFeSi-basis.json +0 -3
  406. package/tests/fixtures/Na.json +0 -3
  407. package/tests/fixtures/Na4Cl4-cartesian.json +0 -3
  408. package/tests/fixtures/Na4Cl4.json +0 -3
  409. package/tests/fixtures/Na4Cl4.poscar +0 -3
  410. package/tests/fixtures/Ni-hex.json +0 -3
  411. package/tests/fixtures/Ni-hex.poscar +0 -3
  412. package/tests/fixtures/OSi-basis.json +0 -3
  413. package/tests/fixtures/Si-hex.poscar +0 -3
  414. package/tests/fixtures/Si-pwscf.in +0 -3
  415. package/tests/fixtures/Si-slab.json +0 -3
  416. package/tests/fixtures/Si-supercell.json +0 -3
  417. package/tests/fixtures/Si2-basis-repeated.json +0 -3
  418. package/tests/fixtures/Si2-basis.json +0 -3
  419. package/tests/fixtures/Zr1H23Zr1H1.json +0 -3
  420. package/tests/fixtures/Zr1H23Zr1H1.poscar +0 -3
  421. package/tests/fixtures/atomic-constraints.json +0 -3
  422. package/tests/fixtures/hashes.json +0 -3
  423. package/tests/fixtures/si-slab-100.json +0 -3
  424. package/tests/fixtures/si-slab-111-0-vacuum.json +0 -3
  425. package/tests/fixtures/si-slab-111-0.5-vacuum-gamma-120.json +0 -3
  426. package/tests/fixtures/si-slab-111-0.5-vacuum-ratio.json +0 -3
  427. package/tests/fixtures/si-standata.json +0 -3
  428. package/tests/js/basis/basis.ts +0 -247
  429. package/tests/js/cell/cell.ts +0 -182
  430. package/tests/js/cell/primitive_cell.ts +0 -21
  431. package/tests/js/constraints/constraints.ts +0 -11
  432. package/tests/js/fixtures.ts +0 -120
  433. package/tests/js/lattice/lattice.ts +0 -43
  434. package/tests/js/lattice/lattice_reciprocal.ts +0 -104
  435. package/tests/js/material.test.ts +0 -42
  436. package/tests/js/parsers/espresso.ts +0 -15
  437. package/tests/js/parsers/native_formats.ts +0 -35
  438. package/tests/js/parsers/poscar.ts +0 -89
  439. package/tests/js/parsers/xyz.ts +0 -33
  440. package/tests/js/parsers/xyz_combinatorial_basis.ts +0 -156
  441. package/tests/js/setup.ts +0 -6
  442. package/tests/js/tools/basis.ts +0 -22
  443. package/tests/js/tools/supercell.ts +0 -58
  444. package/tests/js/tools/surface.ts +0 -115
  445. package/tests/py/conftest.py +0 -34
  446. package/tests/py/mat3ra/debug_utils.py +0 -75
  447. package/tests/py/unit/__init__.py +0 -0
  448. package/tests/py/unit/fixtures/__init__.py +0 -0
  449. package/tests/py/unit/fixtures/adatom.py +0 -60
  450. package/tests/py/unit/fixtures/bulk.py +0 -162
  451. package/tests/py/unit/fixtures/cuts.py +0 -118
  452. package/tests/py/unit/fixtures/grain_boundary.py +0 -875
  453. package/tests/py/unit/fixtures/interface/commensurate.py +0 -498
  454. package/tests/py/unit/fixtures/interface/gaas_dia.py +0 -837
  455. package/tests/py/unit/fixtures/interface/gr_ni_111_top_hcp.py +0 -123
  456. package/tests/py/unit/fixtures/interface/simple.py +0 -84
  457. package/tests/py/unit/fixtures/interface/twisted_nanoribbons.py +0 -131
  458. package/tests/py/unit/fixtures/interface/zsl.py +0 -756
  459. package/tests/py/unit/fixtures/island.py +0 -336
  460. package/tests/py/unit/fixtures/merge.py +0 -147
  461. package/tests/py/unit/fixtures/monolayer.py +0 -46
  462. package/tests/py/unit/fixtures/nanoparticle.py +0 -116
  463. package/tests/py/unit/fixtures/nanoribbon/__init__.py +0 -0
  464. package/tests/py/unit/fixtures/nanoribbon/armchair.py +0 -102
  465. package/tests/py/unit/fixtures/nanoribbon/nanoribbon.py +0 -145
  466. package/tests/py/unit/fixtures/nanoribbon/zigzag.py +0 -54
  467. package/tests/py/unit/fixtures/pair_defects.py +0 -41
  468. package/tests/py/unit/fixtures/passivated/nanoribbon.py +0 -69
  469. package/tests/py/unit/fixtures/passivated/slab.py +0 -58
  470. package/tests/py/unit/fixtures/point_defects.py +0 -158
  471. package/tests/py/unit/fixtures/slab.py +0 -606
  472. package/tests/py/unit/fixtures/strain.py +0 -42
  473. package/tests/py/unit/fixtures/supercell.py +0 -64
  474. package/tests/py/unit/fixtures/terrace.py +0 -70
  475. package/tests/py/unit/fixtures/thrid_party/ase_atoms.py +0 -13
  476. package/tests/py/unit/test_analyze_lattice_planes.py +0 -131
  477. package/tests/py/unit/test_cell.py +0 -104
  478. package/tests/py/unit/test_data_files.py +0 -68
  479. package/tests/py/unit/test_lattice.py +0 -103
  480. package/tests/py/unit/test_lattice_type_extended.py +0 -53
  481. package/tests/py/unit/test_material.py +0 -158
  482. package/tests/py/unit/test_operations.py +0 -126
  483. package/tests/py/unit/test_primitive_cell.py +0 -118
  484. package/tests/py/unit/test_reciprocal_lattice.py +0 -86
  485. package/tests/py/unit/test_reciprocal_paths.py +0 -64
  486. package/tests/py/unit/test_symmetry_points.py +0 -151
  487. package/tests/py/unit/test_tools_analyze.py +0 -219
  488. package/tests/py/unit/test_tools_analyze_basis.py +0 -105
  489. package/tests/py/unit/test_tools_analyze_interface.py +0 -223
  490. package/tests/py/unit/test_tools_analyze_interface_material.py +0 -63
  491. package/tests/py/unit/test_tools_analyze_interface_zsl.py +0 -187
  492. package/tests/py/unit/test_tools_analyze_lattice.py +0 -74
  493. package/tests/py/unit/test_tools_analyze_swap.py +0 -80
  494. package/tests/py/unit/test_tools_build.py +0 -158
  495. package/tests/py/unit/test_tools_build_defect/__init__.py +0 -0
  496. package/tests/py/unit/test_tools_build_defect/test_adatom.py +0 -84
  497. package/tests/py/unit/test_tools_build_defect/test_island.py +0 -45
  498. package/tests/py/unit/test_tools_build_defect/test_pair_defect.py +0 -84
  499. package/tests/py/unit/test_tools_build_defect/test_point_defect.py +0 -196
  500. package/tests/py/unit/test_tools_build_defect/test_slab_stack.py +0 -30
  501. package/tests/py/unit/test_tools_build_defect/test_solid_solution.py +0 -90
  502. package/tests/py/unit/test_tools_build_defect/test_terrace.py +0 -44
  503. package/tests/py/unit/test_tools_build_grain_boundary.py +0 -133
  504. package/tests/py/unit/test_tools_build_heterostructure.py +0 -46
  505. package/tests/py/unit/test_tools_build_interface.py +0 -292
  506. package/tests/py/unit/test_tools_build_interface_zsl.py +0 -263
  507. package/tests/py/unit/test_tools_build_maxwell_disorder.py +0 -123
  508. package/tests/py/unit/test_tools_build_metadata.py +0 -79
  509. package/tests/py/unit/test_tools_build_monolayer.py +0 -33
  510. package/tests/py/unit/test_tools_build_nanoparticle.py +0 -42
  511. package/tests/py/unit/test_tools_build_nanoribbon.py +0 -45
  512. package/tests/py/unit/test_tools_build_passivation.py +0 -85
  513. package/tests/py/unit/test_tools_build_perturbation.py +0 -103
  514. package/tests/py/unit/test_tools_build_slab.py +0 -382
  515. package/tests/py/unit/test_tools_build_strain.py +0 -36
  516. package/tests/py/unit/test_tools_build_supercell.py +0 -47
  517. package/tests/py/unit/test_tools_calculate.py +0 -67
  518. package/tests/py/unit/test_tools_convert.py +0 -174
  519. package/tests/py/unit/test_tools_modify.py +0 -248
  520. package/tests/py/unit/utils.py +0 -142
  521. package/tsconfig-transpile.json +0 -3
  522. package/tsconfig.json +0 -3
@@ -1,182 +0,0 @@
1
- from functools import wraps
2
- from typing import Any, Callable, List, Optional, Union
3
-
4
- import numpy as np
5
- from mat3ra.esse.models.materials_category_components.entities.auxiliary.two_dimensional.supercell_matrix_2d import (
6
- SupercellMatrix2DSchema,
7
- SupercellMatrix2DSchemaItem,
8
- )
9
- from mat3ra.utils.matrix import convert_2x2_to_3x3
10
-
11
- DEFAULT_SCALING_FACTOR = np.array([3, 3, 3])
12
- DEFAULT_TRANSLATION_VECTOR = 1 / DEFAULT_SCALING_FACTOR
13
-
14
-
15
- def is_primitive_2x2_matrix(matrix: Any) -> bool:
16
- return (
17
- isinstance(matrix, list) and len(matrix) == 2 and all(isinstance(row, list) and len(row) == 2 for row in matrix)
18
- )
19
-
20
-
21
- def supercell_matrix_2d_schema_to_list(matrix: SupercellMatrix2DSchema) -> List[List[int]]:
22
- """
23
- Convert a SupercellMatrix2DSchema to a list of lists of integers.
24
- This function is specifically designed to handle the structure of SupercellMatrix2DSchema
25
- as seen in the error message.
26
- """
27
- if matrix is None or matrix.root is None:
28
- return [[1, 0], [0, 1]] # Default identity matrix
29
-
30
- if is_primitive_2x2_matrix(matrix.root):
31
- return matrix.root
32
-
33
- if (
34
- isinstance(matrix.root, list)
35
- and len(matrix.root) == 2
36
- and all(isinstance(row, SupercellMatrix2DSchemaItem) for row in matrix.root)
37
- ):
38
- return [[int(val) for val in row.root] for row in matrix.root]
39
-
40
- # If we can't handle the specific structure, return a default identity matrix
41
- return [[1, 0], [0, 1]]
42
-
43
-
44
- # TODO: remove, when propert solution for handling RootModel is added
45
- def unwrap(value: Any) -> Any:
46
- """Recursively unwraps objects with a .root attribute and lists."""
47
- if hasattr(value, "root"):
48
- return unwrap(value.root)
49
- if isinstance(value, list):
50
- return [unwrap(item) for item in value]
51
- return value
52
-
53
-
54
- def normalize_2x2_matrix(
55
- matrix: Union[
56
- List[List[float]],
57
- SupercellMatrix2DSchema,
58
- ]
59
- ) -> Optional[List[List[float]]]:
60
- """
61
- Normalize any matrix-like structure to a plain 2x2 list of floats.
62
- Returns None if normalization is not possible.
63
- """
64
- if isinstance(matrix, SupercellMatrix2DSchema):
65
- return supercell_matrix_2d_schema_to_list(matrix) # type: ignore
66
-
67
- unwrapped_matrix = unwrap(matrix)
68
-
69
- if is_primitive_2x2_matrix(unwrapped_matrix):
70
- return unwrapped_matrix
71
-
72
- return None
73
-
74
-
75
- def decorator_convert_supercell_matrix_2x2_to_3x3(func: Callable) -> Callable:
76
- """
77
- Decorator that converts a 2x2 matrix input to a 3x3 matrix.
78
- Supports schema-based formats and raw nested lists.
79
- """
80
-
81
- @wraps(func)
82
- def wrapper(*args, **kwargs):
83
- def convert_if_matrix(arg):
84
- matrix = normalize_2x2_matrix(arg)
85
- return convert_2x2_to_3x3(matrix) if matrix else arg
86
-
87
- args = tuple(convert_if_matrix(arg) for arg in args)
88
-
89
- if "supercell_matrix" in kwargs:
90
- kwargs["supercell_matrix"] = convert_if_matrix(kwargs["supercell_matrix"])
91
-
92
- return func(*args, **kwargs)
93
-
94
- return wrapper
95
-
96
-
97
- def decorator_convert_position_to_coordinate(func: Callable) -> Callable:
98
- """
99
- A decorator that converts a 2D position [x, y] to a 3D coordinate [x, y, 0.0].
100
- """
101
-
102
- @wraps(func)
103
- def wrapper(*args, **kwargs):
104
- if "coordinate" in kwargs:
105
- coordinate = kwargs["coordinate"]
106
- else:
107
- # Find the position of the 'coordinate' argument and get its value
108
- coordinate_index = func.__code__.co_varnames.index("coordinate")
109
- coordinate = args[coordinate_index]
110
-
111
- if len(coordinate) == 2:
112
- coordinate = [coordinate[0], coordinate[1], 0.0]
113
-
114
- if "coordinate" in kwargs:
115
- kwargs["coordinate"] = coordinate
116
- else:
117
- args = list(args)
118
- args[coordinate_index] = coordinate
119
- args = tuple(args)
120
-
121
- return func(*args, **kwargs)
122
-
123
- return wrapper
124
-
125
-
126
- def get_distance_between_coordinates(coordinate1: List[float], coordinate2: List[float]) -> float:
127
- """
128
- Get the distance between two coordinates.
129
- Args:
130
- coordinate1 (List[float]): The first coordinate.
131
- coordinate2 (List[float]): The second coordinate.
132
-
133
- Returns:
134
- float: The distance between the two coordinates.
135
- """
136
- return float(np.linalg.norm(np.array(coordinate1) - np.array(coordinate2)))
137
-
138
-
139
- def get_norm(vector: List[float]) -> float:
140
- """
141
- Get the norm of a vector.
142
- Args:
143
- vector (List[float]): The vector.
144
-
145
- Returns:
146
- float: The norm of the vector.
147
- """
148
- return float(np.linalg.norm(vector))
149
-
150
-
151
- def transform_coordinate_to_supercell(
152
- coordinate: List[float],
153
- scaling_factor: Optional[List[int]] = None,
154
- translation_vector: Optional[List[float]] = None,
155
- reverse: bool = False,
156
- ) -> List[float]:
157
- """
158
- Convert a crystal coordinate of unit cell to a coordinate in a supercell.
159
- Args:
160
- coordinate (List[float]): The coordinates to convert.
161
- scaling_factor (List[int]): The scaling factor for the supercell.
162
- translation_vector (List[float]): The translation vector for the supercell.
163
- reverse (bool): Whether to convert in the reverse transformation.
164
-
165
- Returns:
166
- List[float]: The converted coordinates.
167
- """
168
- if scaling_factor is None:
169
- np_scaling_factor = np.array([3, 3, 3])
170
- else:
171
- np_scaling_factor = np.array(scaling_factor)
172
-
173
- if translation_vector is None:
174
- np_translation_vector = np.array([0, 0, 0])
175
- else:
176
- np_translation_vector = np.array(translation_vector)
177
-
178
- np_coordinate = np.array(coordinate)
179
- converted_array = np_coordinate * (1 / np_scaling_factor) + np_translation_vector
180
- if reverse:
181
- converted_array = (np_coordinate - np_translation_vector) * np_scaling_factor
182
- return converted_array.tolist()
@@ -1,144 +0,0 @@
1
- from typing import Any, Dict, List, Literal, Union
2
-
3
- import numpy as np
4
- from mat3ra.esse.models.core.reusable.axis_enum import AxisEnum
5
- from mat3ra.made.material import Material
6
-
7
- # TODO: move to mat3ra-code
8
- AXIS_TO_INDEX_MAP = {"x": 0, "y": 1, "z": 2}
9
-
10
-
11
- # TODO: use mat3ra-code
12
- def map_array_to_array_with_id_value(array: List[Any], remove_none: bool = False) -> List[Any]:
13
- full_array = [{"id": i, "value": item} for i, item in enumerate(array)]
14
- if remove_none:
15
- return list(filter(lambda x: x["value"] is not None, full_array))
16
- return full_array
17
-
18
-
19
- # TODO: use mat3ra-code
20
- def map_array_with_id_value_to_array(array: List[Dict[str, Any]]) -> List[Any]:
21
- return [item["value"] for item in array]
22
-
23
-
24
- def get_center_of_coordinates(coordinates: List[List[float]]) -> List[float]:
25
- """
26
- Calculate the center of the coordinates.
27
-
28
- Args:
29
- coordinates (List[List[float]]): The list of coordinates.
30
-
31
- Returns:
32
- List[float]: The center of the coordinates.
33
- """
34
- return np.mean(np.array(coordinates), axis=0).tolist()
35
-
36
-
37
- def create_2d_supercell_matrices(max_search: int) -> List[np.ndarray]:
38
- """
39
- Create a list of 2D supercell matrices within a maximum search range.
40
-
41
- Filtering conditions:
42
- - Non-zero area constraint
43
- - Positive determinant (to exclude mirroring transformations)
44
-
45
- Args:
46
- max_search: The maximum search range.
47
- Returns:
48
- List[np.ndarray]: The list of supercell matrices.
49
- """
50
- matrices = []
51
- for s11 in range(-max_search, max_search + 1):
52
- for s12 in range(-max_search, max_search + 1):
53
- for s21 in range(-max_search, max_search + 1):
54
- for s22 in range(-max_search, max_search + 1):
55
- matrix = np.array([[s11, s12], [s21, s22]])
56
- determinant = np.linalg.det(matrix)
57
- if determinant == 0 or determinant < 0:
58
- continue
59
- matrices.append(matrix)
60
- return matrices
61
-
62
-
63
- def get_angle_from_rotation_matrix_2d(
64
- matrix: np.ndarray, zero_tolerance: float = 1e-6, round_digits: int = 3
65
- ) -> Union[float, None]:
66
- """
67
- Get the angle from a 2x2 rotation matrix in degrees if it's a pure rotation matrix.
68
- Args:
69
- matrix: The 2x2 rotation matrix.
70
- zero_tolerance: The zero tolerance for the determinant.
71
- round_digits: The number of digits to round the angle.
72
-
73
- Returns:
74
- Union[float, None]: The angle in degrees if it's a pure rotation matrix, otherwise None.
75
- """
76
- if matrix.shape != (2, 2):
77
- return None
78
- if np.abs(np.linalg.det(matrix) - 1) > zero_tolerance:
79
- return None
80
- if not np.all(np.abs(matrix) <= 1):
81
- return None
82
- # Check if it's in form of rotation matrix [cos(theta), -sin(theta); sin(theta), cos(theta)]
83
- if not np.allclose(matrix @ matrix.T, np.eye(2), atol=zero_tolerance):
84
- return None
85
- cos_theta = matrix[0, 0]
86
- sin_theta = matrix[1, 0]
87
- angle_rad = np.arctan2(sin_theta, cos_theta)
88
- angle_deg = np.round(np.degrees(angle_rad), round_digits)
89
- return angle_deg
90
-
91
-
92
- def adjust_material_cell_to_set_gap_along_direction(
93
- material: Material, gap: float, direction: AxisEnum = AxisEnum.z
94
- ) -> Material:
95
- """
96
- Adjust the cell along the stacking direction to make the distance from the cell end to its closest atom
97
- to be equal to the gap, in Angstroms.
98
- """
99
- direction_str = direction.value
100
- axis_index = AXIS_TO_INDEX_MAP[direction_str]
101
-
102
- max_fractional = get_atomic_coordinates_extremum(material, "max", direction_str, False)
103
- current_vectors = material.lattice.vector_arrays
104
- current_vector = np.array(current_vectors[axis_index])
105
- current_length = np.linalg.norm(current_vector)
106
-
107
- # Add a small nudge when gap=0 to prevent atoms at fractional coordinate 1.0 from being wrapped
108
- nudge = 0.0001 if gap == 0 else 0
109
- new_length = (max_fractional * current_length) + gap + nudge
110
-
111
- new_vector = current_vector * (new_length / current_length)
112
-
113
- new_lattice_vectors = list(current_vectors)
114
- new_lattice_vectors[axis_index] = new_vector.tolist()
115
-
116
- new_material = material.clone()
117
- new_material.set_lattice_vectors_from_array(new_lattice_vectors)
118
-
119
- return new_material
120
-
121
-
122
- def get_atomic_coordinates_extremum(
123
- material: Material,
124
- extremum: Literal["max", "min"] = "max",
125
- axis: Literal["x", "y", "z"] = "z",
126
- use_cartesian_coordinates: bool = False,
127
- ) -> float:
128
- """
129
- Return minimum or maximum of coordinates along the specified axis.
130
-
131
- Args:
132
- material (Material): Material object.
133
- extremum (str): "min" or "max".
134
- axis (str): "x", "y", or "z".
135
- use_cartesian_coordinates (bool): Whether to use Cartesian coordinates.
136
- Returns:
137
- float: Minimum or maximum of coordinates along the specified axis.
138
- """
139
- new_material = material.clone()
140
- if use_cartesian_coordinates:
141
- new_material.to_cartesian()
142
- else:
143
- new_material.to_crystal()
144
- return new_material.basis.coordinates.get_extremum_value_along_axis(extremum, axis)
@@ -1 +0,0 @@
1
- fixtures/** filter=lfs diff=lfs merge=lfs -text
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:f79f4af766a9b118e63dd6619b46f903995f11548a4f68940a0c7d2108ec07ae
3
- size 342
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:29c040a13aaea2e8317a34dc292abc52004394b746c83f5b7594818e1d736355
3
- size 1669
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:4ad6e240bbc204fc7ea8e92cd74e27de38a7109f542fbd5deecfca52bd32cee9
3
- size 1649
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:6279702702efc3aeb23de89d79702a5c56c78596b45f8dcb11b0d7e2676ace50
3
- size 489
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:ceaee5513c8093601a075bbb93bd8914e3dff76e24c2da0d67b35b785a27b8a2
3
- size 1254
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:3b3c577612bdd8d42bea556297dfb411932158da4973a800b2bd3e31cfdec514
3
- size 342
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:43712ea8ada9350751be35d18f0ef92880a095be6536615f86b0c9ffd3b10dae
3
- size 1835
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:0ba18e37e9fd699364f378cd12e366e75cef9c52b345f1be11be88de16293f05
3
- size 284
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:e360cab9de055b791907fd1c63f625756bd90d2e77b7d136032601275b796c06
3
- size 1114
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:84f42fb06dba054dec55a28ecb6c5d976a07daff25ea86b341ceab7cc513afe3
3
- size 1116
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:abe820a78f0482aee9418df39b20fdea266117a68e631567634725b02315d883
3
- size 1114
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:41b30bc04f751d7df5d30cb9fdccb407b87bb067dcbb053f14527389198928ef
3
- size 301
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:8a3f31b3b6a879a4372356995066ae2e038784333e1444007125e266fb1ad3b9
3
- size 712
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:c9cf96b94f82d28492f7a0abaa8a5116eb37a33888f2d9da3b93e43c97fb74bc
3
- size 489
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:71c75d20acc30b2ffcbc6d38f23fdd5ed7fc3b8431274635cf6fa885bf864cd7
3
- size 514
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:029782347840b5091eda21c61d5845573352c87961154bf82c9a3168c7791fbd
3
- size 1906
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:6dbac6049c485dd790063d80419ca94160b2ee006463a3ae92e133023008746a
3
- size 2017
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:d5fa6e20480de4e6c01db8ff472d37a30e71964787f84fbb0aafee866d7bdf13
3
- size 553
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:0ac714e6f565c9bf4dd30c291a2e13d67da441b07cb5dcf6bb618537596702de
3
- size 1870
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:7d6c299bd6ecda7026c4c29b99239ca305f7dfc7c46bfd5cb14f7beb65476bea
3
- size 354
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:ab3226dc3a8bfb9d985ef75ae9bd227be2a56ffb408f03d16cf54d335ad12395
3
- size 341
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:e393e3cac1370d0e27feb59a03b10a6abc0c73323a350b79edd95ad2d146a185
3
- size 354
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:88a9dd94a1f3568bbfa965ef20555b55a84a1b28f4c1440cf240c2efb7df6cab
3
- size 273
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:cb8fc82009d8a5c6d437bf17301e7a99760b51f756b4867360d48eaf5b7a7505
3
- size 1588
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:dc0c6077a89a1ac6de65d47ad382cfd69fb4fe286ed962508c7a9fab75de1216
3
- size 3253
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:025bb26b92bb4b12eb68169e1e888baf847d4b9326538e5494ec8eace7b8cf18
3
- size 654
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:6361a98bbeb999a365730f1da21f9b72236b29d19084f59f86e4464f542d4ba8
3
- size 342
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:226ea6c374a2bfd103793a4134d353c41147032a289157e4f888cb996f5bc5aa
3
- size 11190
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:306ce1bc92556a4c706722c403b69a8e2b404b68427826b1b91b3669eaffbb7b
3
- size 1911
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:10fb5ca7e6b0a8e0d43a780f2e4568a31a77ec75e9f8b78f2bb7cd4c0dde0bc3
3
- size 162
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:823cf1e89c00beb0df0799a86573d038f725f7d7612bab4e9e40df5dab3330d8
3
- size 132
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:1f674c41197c026e6945a7eebefc12420cb924b67b6fb246934003c2ed87de06
3
- size 1609
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:d13761b40f49a864409fef85b011b0c1d5afe71fd8b6be63dc33811a344342af
3
- size 1569
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:9f5905448537352e0af199e5d1b66a2d51585b6fc91ad2078809fda097a428ab
3
- size 1894
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:26c02b987bfc67d4f6702cbb3cb1e1b3df30a1e6d4301aead75d1eba791a478e
3
- size 1609
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:62175309558d4a75da4fd723ccb47dc558cdbb89fa224e61921c4ee2d5b48094
3
- size 1133