@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,247 +0,0 @@
1
- import "../setup";
2
-
3
- import { Vector3DSchema } from "@mat3ra/esse/dist/js/types";
4
- import { Utils } from "@mat3ra/utils";
5
- import { expect } from "chai";
6
-
7
- import { Basis } from "../../../src/js/basis/basis";
8
- import { Material } from "../../../src/js/material";
9
- import {
10
- AsGeBasis,
11
- C2H4,
12
- C2H4Translated,
13
- FeLiSiBasis,
14
- LiFeSiBasis,
15
- LiFeSiBasisLabels,
16
- Na,
17
- Na4Cl4,
18
- Na4Cl4Cartesian,
19
- } from "../fixtures";
20
-
21
- const { assertDeepAlmostEqual } = Utils.assertion;
22
- const TOLERANCE = 1e-4;
23
-
24
- describe("Basis", () => {
25
- it("should return true if basises are equal", () => {
26
- const basis1 = new Basis(FeLiSiBasis);
27
- const basis2 = new Basis(LiFeSiBasis);
28
- expect(basis1.isEqualTo(basis2)).to.be.equal(true);
29
- });
30
-
31
- it("should return true when basis is compared to its clone", () => {
32
- const basis1 = new Material(Na4Cl4).Basis;
33
- const basis2 = basis1.clone();
34
- expect(basis1.isEqualTo(basis2)).to.be.equal(true);
35
- expect(basis1.hasEquivalentCellTo(basis2)).to.be.equal(true);
36
- });
37
-
38
- it("should return jsonified basis", () => {
39
- const basis = new Material(Na4Cl4).Basis;
40
- expect(basis.toJSON()).to.be.deep.almost.equal(Na4Cl4.basis);
41
- });
42
-
43
- it("should return true if cells are equal", () => {
44
- const basis1 = new Material(Na4Cl4).Basis;
45
- const basis2 = new Material(Na4Cl4Cartesian).Basis;
46
- expect(basis1.hasEquivalentCellTo(basis2)).to.be.equal(true);
47
- });
48
-
49
- /**
50
- * Elements
51
- */
52
-
53
- it("should return Na4Cl4 as unitCellFormula", () => {
54
- const basis = new Basis(Na4Cl4.basis);
55
- expect(basis.unitCellFormula).to.be.equal("Na4Cl4");
56
- });
57
-
58
- it("should return NaCl as formula", () => {
59
- const basis = new Basis(Na4Cl4.basis);
60
- expect(basis.formula).to.be.equal("NaCl");
61
- });
62
-
63
- it("should return elements", () => {
64
- const basis = new Basis(Na4Cl4.basis);
65
- expect(basis.elements).to.be.deep.almost.equal(Na4Cl4.basis.elements);
66
- });
67
-
68
- it("should return unique elements", () => {
69
- const basis = new Basis(Na4Cl4.basis);
70
- expect(basis.uniqueElements).to.be.deep.equal(["Na", "Cl"]);
71
- });
72
-
73
- it("should return elements count", () => {
74
- const basis = new Basis(Na4Cl4.basis);
75
- expect(basis.elementCounts).to.be.deep.equal([
76
- {
77
- value: "Na",
78
- count: 4,
79
- },
80
- {
81
- value: "Cl",
82
- count: 4,
83
- },
84
- ]);
85
- });
86
-
87
- it("should set elements", () => {
88
- const basis = new Basis(Na4Cl4.basis);
89
- basis.elements = AsGeBasis.elements;
90
- expect(basis.elements).to.be.deep.equal(AsGeBasis.elements);
91
- });
92
-
93
- /**
94
- * Coordinates
95
- */
96
-
97
- it("should return coordinates", () => {
98
- const basis = new Basis(Na4Cl4.basis);
99
- expect(basis.coordinates).to.be.deep.almost.equal(Na4Cl4.basis.coordinates);
100
- });
101
-
102
- it("should set coordinates", () => {
103
- const basis = new Basis(Na4Cl4.basis);
104
- basis.coordinates = AsGeBasis.coordinates;
105
- expect(basis.coordinates).to.be.deep.almost.equal(AsGeBasis.coordinates);
106
- });
107
-
108
- it("should return coordinate by id", () => {
109
- const basis = new Basis(Na4Cl4.basis);
110
- expect(basis.getCoordinateValueById(3)).to.be.deep.equal([0.5, 0.5, 0]);
111
- });
112
-
113
- /**
114
- * Units
115
- */
116
-
117
- it("should return true if basis is in crystal units", () => {
118
- const basis = new Basis(Na4Cl4.basis);
119
- expect(basis.isInCrystalUnits).to.be.equal(true);
120
- });
121
-
122
- it("should convert crystal to cartesian", () => {
123
- const basis = new Material(Na4Cl4).Basis;
124
- basis.toCartesian();
125
- expect(basis.isInCartesianUnits).to.be.equal(true);
126
- expect(basis.coordinates).to.be.deep.almost.equal(Na4Cl4Cartesian.basis.coordinates);
127
- });
128
-
129
- /**
130
- * Labels
131
- */
132
-
133
- it("should return elements with labels", () => {
134
- const basis = new Basis(LiFeSiBasisLabels);
135
- const elementsWithLabels = basis.elementsWithLabelsArray;
136
- const expectedElementsWithLabels = ["Li0", "Fe1", "Si2"];
137
- expect(elementsWithLabels).to.be.deep.equal(expectedElementsWithLabels);
138
- });
139
-
140
- /**
141
- * Atoms
142
- */
143
-
144
- it("should add a new atom", () => {
145
- const basis = new Basis(Na4Cl4.basis);
146
- basis.addAtom({
147
- element: "Ge",
148
- coordinate: [0, 0.25, 0.25],
149
- });
150
- expect(basis.elements).to.be.deep.equal([
151
- ...Na4Cl4.basis.elements,
152
- {
153
- id: 8,
154
- value: "Ge",
155
- },
156
- ]);
157
- expect(basis.coordinates).to.be.deep.almost.equal([
158
- ...Na4Cl4.basis.coordinates,
159
- {
160
- id: 8,
161
- value: [0, 0.25, 0.25],
162
- },
163
- ]);
164
- });
165
-
166
- it("should remove an atom", () => {
167
- const basis = new Basis(Na4Cl4.basis);
168
- basis.removeAtom({
169
- id: 3,
170
- element: "Na",
171
- coordinate: [0.5, 0.5, 0],
172
- });
173
- expect(basis.elements.length).to.be.equal(7);
174
- expect(basis.coordinates.length).to.be.equal(7);
175
- });
176
-
177
- it("should return number of atoms", () => {
178
- const basis = new Basis(Na4Cl4.basis);
179
- expect(basis.nAtoms).to.be.equal(8);
180
- });
181
-
182
- /**
183
- * Hash
184
- */
185
-
186
- it("should return the string", () => {
187
- const basis = new Basis(Na4Cl4.basis);
188
- const string =
189
- "Cl 0,0,0.5;Cl 0,0.5,0;Cl 0.5,0,0;Cl 0.5,0.5,0.5;Na 0,0,0;Na 0,0.5,0.5;Na 0.5,0,0.5;Na 0.5,0.5,0;";
190
- expect(basis.getAsSortedString()).to.be.equal(string);
191
- });
192
-
193
- /**
194
- * Representation
195
- */
196
-
197
- it("should return standard representation", () => {
198
- const basis = new Material(Na4Cl4Cartesian).Basis;
199
- expect(basis.standardRepresentation).to.be.deep.almost.equal(Na4Cl4.basis);
200
- });
201
-
202
- /**
203
- * Minimum lattice size generated for a molecule with more than one atom.
204
- * The minimumLatticeSize is the maximum pairwise distance between two atoms
205
- * of the structure, C2H4 in this case.
206
- */
207
- it("should return minimum lattice size for a molecule", () => {
208
- const basis = new Basis(C2H4.basis);
209
- const minimumLatticeSize = 3.1622776601683795;
210
- const latticeSize = basis.getMinimumLatticeSize();
211
- expect(latticeSize).to.be.almost(minimumLatticeSize, TOLERANCE);
212
- });
213
-
214
- /**
215
- * Minimum lattice size generated for a structure made up of a single atom.
216
- * The minimumLatticeSize is the atomic radii of the atom, Na in this case, in units of angstroms.
217
- */
218
- it("should return minimum lattice size for an atom", () => {
219
- const basis = new Basis(Na.basis);
220
- const minimumLatticeSize = 3;
221
- const latticeSize = basis.getMinimumLatticeSize();
222
- expect(latticeSize).to.be.equal(minimumLatticeSize);
223
- });
224
-
225
- //* * Pairwise Distance */
226
- it("should return max distance", () => {
227
- const basis = new Basis(C2H4.basis);
228
- const maxDistance = 1.5811388300841898;
229
- expect(basis.maxPairwiseDistance).to.be.almost(maxDistance, TOLERANCE);
230
- });
231
-
232
- //* * Center of Coordinates */
233
- it("should return center of coordinates", () => {
234
- const basis = new Basis(C2H4.basis);
235
- const centerOfCoordinatesArray = [0.3333, -0.0417, 0.0917];
236
- const basisCenterOfCoordinatesPoint = basis.centerOfCoordinatesPoint;
237
- assertDeepAlmostEqual(basisCenterOfCoordinatesPoint, centerOfCoordinatesArray);
238
- });
239
-
240
- //* * Translation by Vector */
241
- it("should return the updated basis coordinates", () => {
242
- const basis = new Basis(C2H4.basis);
243
- const translationVector = [1.6917, 1.9667, 2] as Vector3DSchema;
244
- basis.translateByVector(translationVector);
245
- assertDeepAlmostEqual(basis.coordinates, C2H4Translated.basis.coordinates);
246
- });
247
- });
@@ -1,182 +0,0 @@
1
- import { Coordinate3DSchema, Matrix3X3Schema } from "@mat3ra/esse/dist/js/types";
2
- import { Utils } from "@mat3ra/utils";
3
- import { expect } from "chai";
4
-
5
- import { Cell } from "../../../src/js/cell/cell";
6
-
7
- const { assertDeepAlmostEqual } = Utils.assertion;
8
-
9
- const VECTORS: Matrix3X3Schema = [
10
- [1.0, 0.0, 0.0],
11
- [0.0, 2.0, 0.0],
12
- [0.0, 0.0, 3.0],
13
- ];
14
-
15
- const CELL_JSON = {
16
- a: VECTORS[0],
17
- b: VECTORS[1],
18
- c: VECTORS[2],
19
- alat: 1,
20
- units: "angstrom",
21
- };
22
-
23
- const POINT_IN_CELL_CRYSTAL: Coordinate3DSchema = [0.5, 0.5, 0.5];
24
- const POINT_OUTSIDE_CELL_CRYSTAL: Coordinate3DSchema = [1.1, 1.1, 1.1];
25
- const POINT_IN_CELL_CARTESIAN: Coordinate3DSchema = [0.5, 1.0, 1.5];
26
-
27
- const POINT_IN_CELL: Coordinate3DSchema = [0.5, 0.5, 0.5];
28
- const POINT_OUTSIDE_CELL: Coordinate3DSchema = [1.5, 1.5, 1.5];
29
-
30
- // This is in crystal coordinates, but since VECTORS[0] is [1,0,0], it's the same in cartesian
31
- const POINT_IN_CELL_TOLERANCE = 0.01;
32
- const POINT_IN_CELL_WITH_TOLERANCE_0_1: Coordinate3DSchema = [0.99, 0.5, 0.5];
33
- const POINT_OUTSIDE_CELL_WITH_TOLERANCE_0_1: Coordinate3DSchema = [1.01, 0.5, 0.5];
34
- const POINT_OUTSIDE_CELL_WITH_TOLERANCE_0_1_ALT: Coordinate3DSchema = [0.999, 0.5, 0.5];
35
-
36
- const VECTORS_VOLUME = 6.0;
37
-
38
- const VECTORS_EQUAL_UP_TO_PRECISION_4: Matrix3X3Schema = [
39
- [1.00001, 0.0, 0.0],
40
- [0.0, 2.00001, 0.0],
41
- [0.0, 0.0, 3.00001],
42
- ];
43
-
44
- const VECTORS_EQUAL_UP_TO_PRECISION_4_VOLUME = 6.000110000600001;
45
- const VECTORS_EQUAL_UP_TO_PRECISION_4_VOLUME_ROUNDED_TO_PRECISION_4 = 6.0001;
46
- const VECTORS_EQUAL_UP_TO_PRECISION_4_VOLUME_ROUNDED_TO_PRECISION_5 = 6.00011;
47
-
48
- const SCALING_MATRIX: Matrix3X3Schema = [
49
- [2, 0, 0],
50
- [0, 2, 0],
51
- [0, 0, 2],
52
- ];
53
-
54
- const VECTORS_SCALED_BY_MATRIX = [
55
- [2.0, 0.0, 0.0],
56
- [0.0, 4.0, 0.0],
57
- [0.0, 0.0, 6.0],
58
- ];
59
-
60
- describe("Cell", () => {
61
- it("cell creation", () => {
62
- const cell = new Cell({
63
- a: VECTORS[0],
64
- b: VECTORS[1],
65
- c: VECTORS[2],
66
- });
67
- expect(cell.a).to.deep.equal(VECTORS[0]);
68
- expect(cell.b).to.deep.equal(VECTORS[1]);
69
- expect(cell.c).to.deep.equal(VECTORS[2]);
70
- });
71
- it("cell creation default", () => {
72
- const cell = new Cell();
73
- expect(cell.a).to.deep.equal(Cell.defaultConfig.a);
74
- expect(cell.b).to.deep.equal(Cell.defaultConfig.b);
75
- expect(cell.c).to.deep.equal(Cell.defaultConfig.c);
76
- });
77
- it("from vectors array", () => {
78
- const cell = Cell.fromVectorsArray(VECTORS);
79
- expect(cell.a).to.deep.equal(VECTORS[0]);
80
- expect(cell.b).to.deep.equal(VECTORS[1]);
81
- expect(cell.c).to.deep.equal(VECTORS[2]);
82
- });
83
- it("get vector arrays", () => {
84
- const cell = new Cell({
85
- a: VECTORS[0],
86
- b: VECTORS[1],
87
- c: VECTORS[2],
88
- });
89
- expect(cell.vectorArrays).to.deep.equal(VECTORS);
90
- });
91
- it("vector arrays including rounded", () => {
92
- const classReference = Cell;
93
- classReference.RoundedVector3DClassReference.roundPrecision = 4;
94
- const cell = classReference.fromVectorsArray(VECTORS_EQUAL_UP_TO_PRECISION_4);
95
- expect(cell.vectorArrays).to.deep.equal(VECTORS_EQUAL_UP_TO_PRECISION_4);
96
- expect(cell.vectorArraysRounded).to.deep.equal(VECTORS);
97
-
98
- classReference.RoundedVector3DClassReference.roundPrecision = 5;
99
- const cellRounded = classReference.fromVectorsArray(VECTORS_EQUAL_UP_TO_PRECISION_4);
100
- expect(cellRounded.vectorArrays).to.deep.equal(VECTORS_EQUAL_UP_TO_PRECISION_4);
101
- expect(cellRounded.vectorArraysRounded).not.to.deep.equal(VECTORS);
102
- });
103
- it("convert point to cartesian", () => {
104
- const cell = Cell.fromVectorsArray(VECTORS);
105
- const cartesian = cell.convertPointToCartesian(POINT_IN_CELL_CRYSTAL);
106
- expect(cartesian).to.deep.equal(POINT_IN_CELL_CARTESIAN);
107
- });
108
- it("convert point to crystal", () => {
109
- const cell = Cell.fromVectorsArray(VECTORS);
110
- const point = cell.convertPointToCrystal(POINT_IN_CELL_CARTESIAN);
111
- expect(point).to.deep.equal(POINT_IN_CELL_CRYSTAL);
112
- });
113
- it("volume", () => {
114
- const cell = Cell.fromVectorsArray(VECTORS);
115
- const { volume } = cell;
116
- expect(volume).to.equal(VECTORS_VOLUME);
117
- });
118
- it("volume rounded", () => {
119
- const classReference = Cell;
120
- classReference.roundPrecision = 4;
121
- const cell = classReference.fromVectorsArray(VECTORS_EQUAL_UP_TO_PRECISION_4);
122
- const { volume, volumeRounded } = cell;
123
- expect(volume).to.equal(VECTORS_EQUAL_UP_TO_PRECISION_4_VOLUME);
124
- expect(volumeRounded).to.equal(
125
- VECTORS_EQUAL_UP_TO_PRECISION_4_VOLUME_ROUNDED_TO_PRECISION_4,
126
- );
127
-
128
- classReference.roundPrecision = 5;
129
- const cellRounded1 = classReference.fromVectorsArray(VECTORS_EQUAL_UP_TO_PRECISION_4);
130
- expect(cellRounded1.volume).to.equal(VECTORS_EQUAL_UP_TO_PRECISION_4_VOLUME);
131
- expect(cellRounded1.volumeRounded).to.equal(
132
- VECTORS_EQUAL_UP_TO_PRECISION_4_VOLUME_ROUNDED_TO_PRECISION_5,
133
- );
134
- expect(cellRounded1.volumeRounded).not.to.equal(
135
- VECTORS_EQUAL_UP_TO_PRECISION_4_VOLUME_ROUNDED_TO_PRECISION_4,
136
- );
137
- });
138
-
139
- // Unique to JS/TS
140
-
141
- it("clone", () => {
142
- const cell = Cell.fromVectorsArray(VECTORS);
143
- const clonedCell = cell.clone();
144
- expect(clonedCell).not.to.equal(cell);
145
- expect(clonedCell).to.deep.equal(cell);
146
- });
147
- it("clone and scale by matrix", () => {
148
- const cell = Cell.fromVectorsArray(VECTORS);
149
- const clonedCell = cell.cloneAndScaleByMatrix(SCALING_MATRIX);
150
- expect(clonedCell).not.to.equal(cell);
151
- assertDeepAlmostEqual(clonedCell.vectorArrays, VECTORS_SCALED_BY_MATRIX);
152
- });
153
- it("scale by matrix", () => {
154
- const cell = Cell.fromVectorsArray(VECTORS);
155
- cell.scaleByMatrix(SCALING_MATRIX);
156
- assertDeepAlmostEqual(cell.vectorArrays, VECTORS_SCALED_BY_MATRIX);
157
- });
158
- it("is point inside cell", () => {
159
- const cell = Cell.fromVectorsArray(VECTORS);
160
- expect(cell.isPointInsideCell(POINT_IN_CELL)).to.equal(true);
161
- expect(cell.isPointInsideCell(POINT_OUTSIDE_CELL)).to.equal(false);
162
- });
163
- it("is point inside cell with tolerance", () => {
164
- const classReference = Cell;
165
- classReference.tolerance = POINT_IN_CELL_TOLERANCE;
166
- const cell = Cell.fromVectorsArray(VECTORS);
167
- expect(cell.isPointInsideCell(POINT_IN_CELL_WITH_TOLERANCE_0_1)).to.equal(true);
168
- expect(cell.isPointInsideCell(POINT_OUTSIDE_CELL_WITH_TOLERANCE_0_1)).to.equal(false);
169
- expect(cell.isPointInsideCell(POINT_OUTSIDE_CELL_WITH_TOLERANCE_0_1_ALT)).to.equal(false);
170
- });
171
- it("is point inside cell crystal", () => {
172
- const cell = Cell.fromVectorsArray(VECTORS);
173
- const pointInCellCrystal = cell.convertPointToCrystal(POINT_IN_CELL_CARTESIAN);
174
- expect(cell.isPointInsideCellCrystal(pointInCellCrystal)).to.equal(true);
175
- expect(cell.isPointInsideCellCrystal(POINT_OUTSIDE_CELL_CRYSTAL)).to.equal(false);
176
- });
177
- it("toJSON", () => {
178
- const cell = Cell.fromVectorsArray(VECTORS);
179
- const json = cell.toJSON();
180
- expect(json).to.deep.equal(CELL_JSON);
181
- });
182
- });
@@ -1,21 +0,0 @@
1
- import { LatticeSchema } from "@mat3ra/esse/dist/js/types";
2
- import { Utils } from "@mat3ra/utils";
3
-
4
- import { getPrimitiveLatticeVectorsFromConfig } from "../../../src/js/cell/primitive_cell";
5
- import { Lattice } from "../../../src/js/lattice/lattice";
6
- import { Na4Cl4 } from "../fixtures";
7
-
8
- const { assertDeepAlmostEqual } = Utils.assertion;
9
-
10
- describe("Primitive Cell", () => {
11
- it("should return primitive lattice", () => {
12
- const lattice = new Lattice(Na4Cl4.lattice as LatticeSchema);
13
- const actualPrimitiveCell = getPrimitiveLatticeVectorsFromConfig(lattice);
14
- const expectedPrimitiveCell = [
15
- [5.691694, 0, 0],
16
- [0, 5.691694, 0],
17
- [0, 0, 5.691694],
18
- ];
19
- assertDeepAlmostEqual(expectedPrimitiveCell, actualPrimitiveCell);
20
- });
21
- });
@@ -1,11 +0,0 @@
1
- import { expect } from "chai";
2
-
3
- import { AtomicConstraints } from "../../../src/js/constraints/constraints";
4
- import { atomicConstraints } from "../fixtures";
5
-
6
- describe("AtomicConstraints", () => {
7
- it("should return constraints as string", () => {
8
- const constraints = AtomicConstraints.fromObjects(atomicConstraints);
9
- expect(constraints.getAsStringByIndex(0)).to.be.equal("1 1 0");
10
- });
11
- });
@@ -1,120 +0,0 @@
1
- import { AtomicConstraintsSchema, BasisSchema, MaterialSchema } from "@mat3ra/esse/dist/js/types";
2
- import { MaterialStandata } from "@mat3ra/standata";
3
- import fs from "fs";
4
- import path from "path";
5
-
6
- import AsGeBasis_JSON from "../fixtures/AsGe-basis.json";
7
- import atomicConstraints_JSON from "../fixtures/atomic-constraints.json";
8
- import C2H4_JSON from "../fixtures/C2H4.json";
9
- import C2H4Translated_JSON from "../fixtures/C2H4-translated.json";
10
- import FeLiSiBasis_JSON from "../fixtures/FeLiSi-basis.json";
11
- import FeO_JSON from "../fixtures/FeO.json";
12
-
13
- import Ge2Basis_JSON from "../fixtures/Ge2-basis.json";
14
- import Graphene_JSON from "../fixtures/Graphene.json";
15
- import H2HFinal_JSON from "../fixtures/H2+H-final.json";
16
- import H2HImage_JSON from "../fixtures/H2+H-image.json";
17
- import H2HInitial_JSON from "../fixtures/H2+H-initial.json";
18
- import LiFeSiBasis_JSON from "../fixtures/LiFeSi-basis.json";
19
- import LiFeSiBasisLabels_JSON from "../fixtures/LiFeSi-basis-labels.json";
20
- import Na_JSON from "../fixtures/Na.json";
21
- import Na4Cl4_JSON from "../fixtures/Na4Cl4.json";
22
- import Na4Cl4Cartesian_JSON from "../fixtures/Na4Cl4-cartesian.json";
23
- import NiHex_JSON from "../fixtures/Ni-hex.json";
24
- import OSiBasis_JSON from "../fixtures/OSi-basis.json";
25
- import SiSlab_JSON from "../fixtures/Si-slab.json";
26
- import SiSlab100_JSON from "../fixtures/si-slab-100.json";
27
- import SiSlab111Gamma120_JSON from "../fixtures/si-slab-111-0.5-vacuum-gamma-120.json";
28
- import SiSlab111_JSON from "../fixtures/si-slab-111-0.5-vacuum-ratio.json";
29
- import SiSlab111NoVacuum_JSON from "../fixtures/si-slab-111-0-vacuum.json";
30
- import Silicon_JSON from "../fixtures/si-standata.json";
31
-
32
- import SiSupercell_JSON from "../fixtures/Si-supercell.json";
33
- import Si2Basis_JSON from "../fixtures/Si2-basis.json";
34
- import Si2BasisRepeated_JSON from "../fixtures/Si2-basis-repeated.json";
35
- import Zr1H23Zr1H1_JSON from "../fixtures/Zr1H23Zr1H1.json";
36
-
37
- // Material
38
- const Silicon = Silicon_JSON as unknown as MaterialSchema;
39
- const SiSupercell = SiSupercell_JSON as unknown as MaterialSchema;
40
- const SiSlab = SiSlab_JSON as unknown as MaterialSchema;
41
- const SiSlab100 = SiSlab100_JSON as unknown as MaterialSchema;
42
- const SiSlab111 = SiSlab111_JSON as unknown as MaterialSchema;
43
- const SiSlab111Gamma120 = SiSlab111Gamma120_JSON as unknown as MaterialSchema;
44
- const SiSlab111NoVacuum = SiSlab111NoVacuum_JSON as unknown as MaterialSchema;
45
- const FeO = FeO_JSON as unknown as MaterialSchema;
46
- const FeOStandata = MaterialStandata.getRuntimeDataConfigs().find(
47
- (m: any) => m.name?.includes("FeO"),
48
- ) as MaterialSchema;
49
- const Na4Cl4 = Na4Cl4_JSON as unknown as MaterialSchema;
50
- const Na4Cl4Cartesian = Na4Cl4Cartesian_JSON as unknown as MaterialSchema;
51
- const C2H4 = C2H4_JSON as unknown as MaterialSchema;
52
- const C2H4Translated = C2H4Translated_JSON as unknown as MaterialSchema;
53
- const Na = Na_JSON as unknown as MaterialSchema;
54
- const H2HInitial = H2HInitial_JSON as unknown as MaterialSchema;
55
- const H2HFinal = H2HFinal_JSON as unknown as MaterialSchema;
56
- const H2HImage = H2HImage_JSON as unknown as MaterialSchema;
57
- const Zr1H23Zr1H1 = Zr1H23Zr1H1_JSON as unknown as MaterialSchema;
58
- const Graphene = Graphene_JSON as unknown as MaterialSchema;
59
- const NiHex = NiHex_JSON as unknown as MaterialSchema;
60
-
61
- // Basis
62
- const Si2Basis = Si2Basis_JSON as BasisSchema;
63
- const Si2BasisRepeated = Si2BasisRepeated_JSON as BasisSchema;
64
- const OSiBasis = OSiBasis_JSON as BasisSchema;
65
- const Ge2Basis = Ge2Basis_JSON as BasisSchema;
66
- const AsGeBasis = AsGeBasis_JSON as BasisSchema;
67
- const FeLiSiBasis = FeLiSiBasis_JSON as BasisSchema;
68
- const LiFeSiBasis = LiFeSiBasis_JSON as BasisSchema;
69
- const LiFeSiBasisLabels = LiFeSiBasisLabels_JSON as BasisSchema;
70
-
71
- // Other
72
- const atomicConstraints = atomicConstraints_JSON as AtomicConstraintsSchema;
73
-
74
- export {
75
- // Silicon
76
- Silicon,
77
- SiSupercell,
78
- SiSlab,
79
- SiSlab100,
80
- SiSlab111,
81
- SiSlab111Gamma120,
82
- SiSlab111NoVacuum,
83
- Si2Basis,
84
- Si2BasisRepeated,
85
- // Other
86
- FeO,
87
- FeOStandata,
88
- Na4Cl4,
89
- Na4Cl4Cartesian,
90
- C2H4,
91
- C2H4Translated,
92
- Na,
93
- OSiBasis,
94
- Ge2Basis,
95
- AsGeBasis,
96
- FeLiSiBasis,
97
- LiFeSiBasis,
98
- LiFeSiBasisLabels,
99
- atomicConstraints,
100
- H2HInitial,
101
- H2HFinal,
102
- H2HImage,
103
- Zr1H23Zr1H1,
104
- Graphene,
105
- NiHex,
106
- };
107
-
108
- // NON-JSON
109
- export const FIXTURES_DIR = path.resolve(__dirname, "../fixtures");
110
-
111
- // NON-JSON
112
- export const Na4Cl4Poscar = fs.readFileSync(path.join(FIXTURES_DIR, "Na4Cl4.poscar"), "utf8");
113
- export const SiPWSCFInput = fs.readFileSync(path.join(FIXTURES_DIR, "Si-pwscf.in"), "utf8");
114
- export const Zr1H23Zr1H1Poscar = fs.readFileSync(
115
- path.join(FIXTURES_DIR, "Zr1H23Zr1H1.poscar"),
116
- "utf8",
117
- );
118
- export const H2OPoscar = fs.readFileSync(path.join(FIXTURES_DIR, "H2O.poscar"), "utf8");
119
- export const GraphenePoscar = fs.readFileSync(path.join(FIXTURES_DIR, "Graphene.poscar"), "utf8");
120
- export const NiHexPoscar = fs.readFileSync(path.join(FIXTURES_DIR, "Ni-hex.poscar"), "utf8");
@@ -1,43 +0,0 @@
1
- import "../setup";
2
-
3
- import { LatticeSchema, LatticeVectorsSchema } from "@mat3ra/esse/dist/js/types";
4
- import { Utils } from "@mat3ra/utils";
5
- import { expect } from "chai";
6
-
7
- import { Lattice } from "../../../src/js/lattice/lattice";
8
- import { Na4Cl4, Silicon } from "../fixtures";
9
-
10
- const { assertDeepAlmostEqual } = Utils.assertion;
11
-
12
- describe("Lattice", () => {
13
- it("should create a lattice", () => {
14
- const lattice = Lattice.fromConfig(Silicon.lattice);
15
- expect(lattice).to.be.instanceOf(Lattice);
16
- expect(lattice.a).to.be.equal(Silicon.lattice.a);
17
- });
18
- it("should return lattice type", () => {
19
- const lattice = new Lattice(Silicon.lattice as LatticeSchema);
20
- expect(lattice.type).to.be.equal("FCC");
21
- });
22
-
23
- it("should return lattice cell volume", () => {
24
- const lattice = new Lattice(Silicon.lattice as LatticeSchema);
25
- expect(lattice.volume).to.be.almost.equal(40.889096881496656);
26
- });
27
-
28
- it("should return lattice from vectors", () => {
29
- const lattice = Lattice.fromVectors(Na4Cl4.lattice.vectors as LatticeVectorsSchema);
30
- assertDeepAlmostEqual(Na4Cl4.lattice, lattice.toJSON(), ["type"]);
31
- });
32
-
33
- it("should return lattice type", () => {
34
- const lattice = new Lattice(Silicon.lattice as LatticeSchema);
35
- expect(lattice.typeExtended).to.be.equal("FCC");
36
- });
37
-
38
- it("should return lattice hash string", () => {
39
- const lattice = new Lattice(Na4Cl4.lattice as LatticeSchema);
40
- expect(lattice.getHashString()).to.be.equal("5.692;5.692;5.692;90;90;90;");
41
- });
42
- // TODO: add more tests
43
- });