@mat3ra/made 2026.8.13-0 → 2026.8.26-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 (493) hide show
  1. package/package.json +9 -5
  2. package/.babelrc +0 -10
  3. package/.eslintrc.json +0 -11
  4. package/.gitattributes +0 -1
  5. package/.husky/post-checkout +0 -3
  6. package/.husky/post-commit +0 -3
  7. package/.husky/post-merge +0 -3
  8. package/.husky/pre-commit +0 -6
  9. package/.husky/pre-push +0 -3
  10. package/.mocharc.json +0 -5
  11. package/.pre-commit-config.yaml +0 -26
  12. package/.prettierignore +0 -2
  13. package/.prettierrc +0 -6
  14. package/AGENTS.md +0 -133
  15. package/MANIFEST.in +0 -1
  16. package/data/constants.json +0 -13
  17. package/data/reciprocal_paths.json +0 -111
  18. package/images/made/tools/tools_diagram_general.png +0 -3
  19. package/images/made/tools/tools_diagram_interface.png +0 -3
  20. package/pyproject.toml +0 -123
  21. package/scripts/generate-mixins.ts +0 -28
  22. package/src/__init__.py +0 -0
  23. package/src/js/Material.ts +0 -618
  24. package/src/js/basis/basis.ts +0 -634
  25. package/src/js/basis/constrained_basis.ts +0 -115
  26. package/src/js/basis/coordinates.ts +0 -92
  27. package/src/js/basis/elements.ts +0 -24
  28. package/src/js/basis/helpers.ts +0 -20
  29. package/src/js/basis/labels.ts +0 -6
  30. package/src/js/cell/cell.ts +0 -149
  31. package/src/js/cell/conventional_cell.ts +0 -86
  32. package/src/js/cell/primitive_cell.ts +0 -166
  33. package/src/js/constants/molecule.ts +0 -18
  34. package/src/js/constants.ts +0 -4
  35. package/src/js/constraints/constraints.ts +0 -45
  36. package/src/js/generated/MaterialSchemaMixin.ts +0 -79
  37. package/src/js/lattice/lattice.ts +0 -308
  38. package/src/js/lattice/lattice_types.ts +0 -134
  39. package/src/js/lattice/reciprocal/lattice_reciprocal.ts +0 -206
  40. package/src/js/lattice/reciprocal/paths.ts +0 -39
  41. package/src/js/lattice/reciprocal/symmetry_points.ts +0 -886
  42. package/src/js/lattice/unit_cell.ts +0 -66
  43. package/src/js/made.ts +0 -62
  44. package/src/js/parsers/cif.ts +0 -25
  45. package/src/js/parsers/errors.ts +0 -6
  46. package/src/js/parsers/espresso.ts +0 -29
  47. package/src/js/parsers/native_format_parsers.ts +0 -52
  48. package/src/js/parsers/parsers.ts +0 -13
  49. package/src/js/parsers/poscar.ts +0 -218
  50. package/src/js/parsers/xyz.ts +0 -190
  51. package/src/js/parsers/xyz_combinatorial_basis.ts +0 -268
  52. package/src/js/tools/basis.ts +0 -131
  53. package/src/js/tools/cell.ts +0 -40
  54. package/src/js/tools/index.ts +0 -11
  55. package/src/js/tools/material.ts +0 -64
  56. package/src/js/tools/supercell.ts +0 -89
  57. package/src/js/tools/surface.ts +0 -213
  58. package/src/py/__init__.py +0 -0
  59. package/src/py/mat3ra/__init__.py +0 -1
  60. package/src/py/mat3ra/made/__init__.py +0 -7
  61. package/src/py/mat3ra/made/basis/__init__.py +0 -255
  62. package/src/py/mat3ra/made/basis/coordinates.py +0 -43
  63. package/src/py/mat3ra/made/cell/__init__.py +0 -55
  64. package/src/py/mat3ra/made/cell/primitive_cell.py +0 -156
  65. package/src/py/mat3ra/made/data_helper.py +0 -5
  66. package/src/py/mat3ra/made/lattice.py +0 -195
  67. package/src/py/mat3ra/made/material.py +0 -135
  68. package/src/py/mat3ra/made/metadata.py +0 -45
  69. package/src/py/mat3ra/made/reciprocal/__init__.py +0 -5
  70. package/src/py/mat3ra/made/reciprocal/lattice_reciprocal.py +0 -147
  71. package/src/py/mat3ra/made/reciprocal/paths.py +0 -30
  72. package/src/py/mat3ra/made/reciprocal/symmetry_points.py +0 -385
  73. package/src/py/mat3ra/made/tools/README.md +0 -173
  74. package/src/py/mat3ra/made/tools/__init__.py +0 -0
  75. package/src/py/mat3ra/made/tools/analyze/__init__.py +0 -31
  76. package/src/py/mat3ra/made/tools/analyze/basis/__init__.py +0 -3
  77. package/src/py/mat3ra/made/tools/analyze/basis/analyzer.py +0 -50
  78. package/src/py/mat3ra/made/tools/analyze/build_metadata_analyzer.py +0 -32
  79. package/src/py/mat3ra/made/tools/analyze/build_metadata_analyzer_factory.py +0 -31
  80. package/src/py/mat3ra/made/tools/analyze/coordination.py +0 -56
  81. package/src/py/mat3ra/made/tools/analyze/crystal_site/__init__.py +0 -0
  82. package/src/py/mat3ra/made/tools/analyze/crystal_site/adatom_crystal_site_material_analyzer.py +0 -35
  83. package/src/py/mat3ra/made/tools/analyze/crystal_site/adatom_material_analyzer.py +0 -49
  84. package/src/py/mat3ra/made/tools/analyze/crystal_site/crystal_site_analyzer.py +0 -65
  85. package/src/py/mat3ra/made/tools/analyze/crystal_site/voronoi_crystal_site_analyzer.py +0 -47
  86. package/src/py/mat3ra/made/tools/analyze/enums.py +0 -33
  87. package/src/py/mat3ra/made/tools/analyze/fingerprint/__init__.py +0 -4
  88. package/src/py/mat3ra/made/tools/analyze/fingerprint/layers/__init__.py +0 -0
  89. package/src/py/mat3ra/made/tools/analyze/fingerprint/layers/layered_fingerprint_along_axis.py +0 -83
  90. package/src/py/mat3ra/made/tools/analyze/fingerprint/layers/unique_element_string_per_layer.py +0 -9
  91. package/src/py/mat3ra/made/tools/analyze/interface/__init__.py +0 -20
  92. package/src/py/mat3ra/made/tools/analyze/interface/commensurate.py +0 -156
  93. package/src/py/mat3ra/made/tools/analyze/interface/enums.py +0 -60
  94. package/src/py/mat3ra/made/tools/analyze/interface/grain_boundary.py +0 -80
  95. package/src/py/mat3ra/made/tools/analyze/interface/simple.py +0 -251
  96. package/src/py/mat3ra/made/tools/analyze/interface/twisted_nanoribbons.py +0 -91
  97. package/src/py/mat3ra/made/tools/analyze/interface/utils/__init__.py +0 -77
  98. package/src/py/mat3ra/made/tools/analyze/interface/utils/holders.py +0 -14
  99. package/src/py/mat3ra/made/tools/analyze/interface/utils/vector.py +0 -56
  100. package/src/py/mat3ra/made/tools/analyze/interface/zsl.py +0 -259
  101. package/src/py/mat3ra/made/tools/analyze/interface_material.py +0 -45
  102. package/src/py/mat3ra/made/tools/analyze/lattice/__init__.py +0 -2
  103. package/src/py/mat3ra/made/tools/analyze/lattice/analyzer.py +0 -126
  104. package/src/py/mat3ra/made/tools/analyze/lattice/helpers.py +0 -31
  105. package/src/py/mat3ra/made/tools/analyze/lattice_lines.py +0 -30
  106. package/src/py/mat3ra/made/tools/analyze/lattice_planes.py +0 -192
  107. package/src/py/mat3ra/made/tools/analyze/lattice_swap_analyzer.py +0 -105
  108. package/src/py/mat3ra/made/tools/analyze/material.py +0 -276
  109. package/src/py/mat3ra/made/tools/analyze/other.py +0 -434
  110. package/src/py/mat3ra/made/tools/analyze/rdf.py +0 -74
  111. package/src/py/mat3ra/made/tools/analyze/slab.py +0 -76
  112. package/src/py/mat3ra/made/tools/analyze/solid_solution_analyzer.py +0 -171
  113. package/src/py/mat3ra/made/tools/analyze/terrace.py +0 -105
  114. package/src/py/mat3ra/made/tools/analyze/utils.py +0 -162
  115. package/src/py/mat3ra/made/tools/bond_directions/__init__.py +0 -0
  116. package/src/py/mat3ra/made/tools/bond_directions/bond_directions.py +0 -150
  117. package/src/py/mat3ra/made/tools/bond_directions/bond_directions_for_element_list.py +0 -7
  118. package/src/py/mat3ra/made/tools/bond_directions/bond_directions_templates_enum.py +0 -8
  119. package/src/py/mat3ra/made/tools/bond_directions/bond_directions_templates_for_element.py +0 -16
  120. package/src/py/mat3ra/made/tools/build/__init__.py +0 -25
  121. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/heterostructure/__init__.py +0 -7
  122. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/heterostructure/helpers.py +0 -59
  123. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/heterostructure/types.py +0 -26
  124. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/heterostructure/utils.py +0 -139
  125. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/interface/__init__.py +0 -47
  126. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/interface/base/__init__.py +0 -11
  127. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/interface/base/build_parameters.py +0 -5
  128. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/interface/base/builder.py +0 -164
  129. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/interface/base/configuration.py +0 -48
  130. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/interface/base/helpers.py +0 -134
  131. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/interface/commensurate/__init__.py +0 -6
  132. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/interface/commensurate/helpers.py +0 -157
  133. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/interface/enums.py +0 -7
  134. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/interface/twisted/__init__.py +0 -7
  135. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/interface/twisted/configuration.py +0 -13
  136. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/interface/twisted/helpers.py +0 -70
  137. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/interface/utils.py +0 -87
  138. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/interface/zsl/__init__.py +0 -6
  139. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/interface/zsl/helpers.py +0 -129
  140. package/src/py/mat3ra/made/tools/build/defective_structures/__init__.py +0 -0
  141. package/src/py/mat3ra/made/tools/build/defective_structures/one_dimensional/__init__.py +0 -0
  142. package/src/py/mat3ra/made/tools/build/defective_structures/one_dimensional/grain_boundary_linear/__init__.py +0 -0
  143. package/src/py/mat3ra/made/tools/build/defective_structures/one_dimensional/grain_boundary_linear/build_parameters.py +0 -12
  144. package/src/py/mat3ra/made/tools/build/defective_structures/one_dimensional/grain_boundary_linear/builder.py +0 -17
  145. package/src/py/mat3ra/made/tools/build/defective_structures/one_dimensional/grain_boundary_linear/configuration.py +0 -40
  146. package/src/py/mat3ra/made/tools/build/defective_structures/one_dimensional/grain_boundary_linear/helpers.py +0 -82
  147. package/src/py/mat3ra/made/tools/build/defective_structures/three_dimensional/__init__.py +0 -1
  148. package/src/py/mat3ra/made/tools/build/defective_structures/three_dimensional/solid_solution/__init__.py +0 -9
  149. package/src/py/mat3ra/made/tools/build/defective_structures/three_dimensional/solid_solution/builder.py +0 -37
  150. package/src/py/mat3ra/made/tools/build/defective_structures/three_dimensional/solid_solution/configuration.py +0 -30
  151. package/src/py/mat3ra/made/tools/build/defective_structures/three_dimensional/solid_solution/enums.py +0 -8
  152. package/src/py/mat3ra/made/tools/build/defective_structures/three_dimensional/solid_solution/helpers.py +0 -76
  153. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/__init__.py +0 -0
  154. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/adatom/__init__.py +0 -0
  155. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/adatom/builder.py +0 -11
  156. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/adatom/configuration.py +0 -18
  157. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/adatom/helpers.py +0 -137
  158. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/adatom/types.py +0 -22
  159. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/grain_boundary_planar/__init__.py +0 -0
  160. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/grain_boundary_planar/builder.py +0 -28
  161. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/grain_boundary_planar/configuration.py +0 -55
  162. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/grain_boundary_planar/helpers.py +0 -75
  163. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/island/builder.py +0 -15
  164. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/island/configuration.py +0 -16
  165. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/island/helpers.py +0 -116
  166. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/terrace/build_parameters.py +0 -10
  167. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/terrace/builder.py +0 -30
  168. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/terrace/configuration.py +0 -11
  169. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/terrace/helpers.py +0 -78
  170. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/__init__.py +0 -0
  171. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/pair_defect/__init__.py +0 -0
  172. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/pair_defect/builder.py +0 -31
  173. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/pair_defect/configuration.py +0 -45
  174. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/pair_defect/helpers.py +0 -80
  175. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/__init__.py +0 -40
  176. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/atom_placement_method_enum.py +0 -14
  177. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/base/__init__.py +0 -7
  178. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/base/builder.py +0 -42
  179. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/base/configuration.py +0 -27
  180. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/complex_defect_type_enum.py +0 -5
  181. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/factories.py +0 -69
  182. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/helpers.py +0 -92
  183. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/interstitial/__init__.py +0 -7
  184. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/interstitial/builder.py +0 -8
  185. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/interstitial/configuration.py +0 -29
  186. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/interstitial/helpers.py +0 -48
  187. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/interstitial/interstitial_placement_method_enum.py +0 -8
  188. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/point_defect_type_enum.py +0 -8
  189. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/substitutional/__init__.py +0 -7
  190. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/substitutional/builder.py +0 -6
  191. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/substitutional/configuration.py +0 -41
  192. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/substitutional/helpers.py +0 -43
  193. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/substitutional/substitution_placement_method_enum.py +0 -7
  194. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/types.py +0 -24
  195. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/vacancy/__init__.py +0 -7
  196. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/vacancy/builder.py +0 -19
  197. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/vacancy/configuration.py +0 -27
  198. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/vacancy/helpers.py +0 -42
  199. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/vacancy/vacancy_placement_method_enum.py +0 -7
  200. package/src/py/mat3ra/made/tools/build/pristine_structures/__init__.py +0 -0
  201. package/src/py/mat3ra/made/tools/build/pristine_structures/three_dimensional/ideal_crystal/__init__.py +0 -0
  202. package/src/py/mat3ra/made/tools/build/pristine_structures/three_dimensional/ideal_crystal/builder.py +0 -80
  203. package/src/py/mat3ra/made/tools/build/pristine_structures/three_dimensional/ideal_crystal/configurations.py +0 -22
  204. package/src/py/mat3ra/made/tools/build/pristine_structures/three_dimensional/ideal_crystal/helpers.py +0 -40
  205. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/__init__.py +0 -0
  206. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/nanoribbon/__init__.py +0 -29
  207. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/nanoribbon/build_parameters.py +0 -5
  208. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/nanoribbon/builders.py +0 -56
  209. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/nanoribbon/configuration.py +0 -33
  210. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/nanoribbon/helpers.py +0 -76
  211. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/nanotape/__init__.py +0 -11
  212. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/nanotape/build_parameters.py +0 -9
  213. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/nanotape/builders.py +0 -83
  214. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/nanotape/configuration.py +0 -35
  215. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/nanotape/helpers.py +0 -62
  216. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/slab/__init__.py +0 -9
  217. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/slab/build_parameters.py +0 -8
  218. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/slab/builder.py +0 -42
  219. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/slab/configuration.py +0 -99
  220. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/slab/helpers.py +0 -95
  221. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/slab/termination_utils.py +0 -14
  222. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/slab/utils.py +0 -61
  223. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/slab_strained_supercell/builder.py +0 -22
  224. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/slab_strained_supercell/configuration.py +0 -17
  225. package/src/py/mat3ra/made/tools/build/pristine_structures/zero_dimensional/__init__.py +0 -0
  226. package/src/py/mat3ra/made/tools/build/pristine_structures/zero_dimensional/nanoparticle/__init__.py +0 -19
  227. package/src/py/mat3ra/made/tools/build/pristine_structures/zero_dimensional/nanoparticle/analyzer.py +0 -86
  228. package/src/py/mat3ra/made/tools/build/pristine_structures/zero_dimensional/nanoparticle/ase_based/__init__.py +0 -7
  229. package/src/py/mat3ra/made/tools/build/pristine_structures/zero_dimensional/nanoparticle/ase_based/builder.py +0 -54
  230. package/src/py/mat3ra/made/tools/build/pristine_structures/zero_dimensional/nanoparticle/ase_based/configuration.py +0 -19
  231. package/src/py/mat3ra/made/tools/build/pristine_structures/zero_dimensional/nanoparticle/enums.py +0 -42
  232. package/src/py/mat3ra/made/tools/build/pristine_structures/zero_dimensional/nanoparticle/helpers.py +0 -127
  233. package/src/py/mat3ra/made/tools/build/pristine_structures/zero_dimensional/nanoparticle/merge_based/__init__.py +0 -7
  234. package/src/py/mat3ra/made/tools/build/pristine_structures/zero_dimensional/nanoparticle/merge_based/builder.py +0 -33
  235. package/src/py/mat3ra/made/tools/build/pristine_structures/zero_dimensional/nanoparticle/merge_based/configuration.py +0 -16
  236. package/src/py/mat3ra/made/tools/build/processed_structures/__init__.py +0 -0
  237. package/src/py/mat3ra/made/tools/build/processed_structures/two_dimensional/__init__.py +0 -0
  238. package/src/py/mat3ra/made/tools/build/processed_structures/two_dimensional/passivation/__init__.py +0 -0
  239. package/src/py/mat3ra/made/tools/build/processed_structures/two_dimensional/passivation/analyzers/__init__.py +0 -9
  240. package/src/py/mat3ra/made/tools/build/processed_structures/two_dimensional/passivation/analyzers/coordination_based_passivation_material_analyzer.py +0 -112
  241. package/src/py/mat3ra/made/tools/build/processed_structures/two_dimensional/passivation/analyzers/passivation_material_analyzer.py +0 -16
  242. package/src/py/mat3ra/made/tools/build/processed_structures/two_dimensional/passivation/analyzers/surface_passivation_material_analyzer.py +0 -32
  243. package/src/py/mat3ra/made/tools/build/processed_structures/two_dimensional/passivation/builder.py +0 -23
  244. package/src/py/mat3ra/made/tools/build/processed_structures/two_dimensional/passivation/configuration.py +0 -31
  245. package/src/py/mat3ra/made/tools/build/processed_structures/two_dimensional/passivation/enums.py +0 -7
  246. package/src/py/mat3ra/made/tools/build/processed_structures/two_dimensional/passivation/helpers.py +0 -151
  247. package/src/py/mat3ra/made/tools/build_components/__init__.py +0 -10
  248. package/src/py/mat3ra/made/tools/build_components/entities/__init__.py +0 -0
  249. package/src/py/mat3ra/made/tools/build_components/entities/auxiliary/__init__.py +0 -0
  250. package/src/py/mat3ra/made/tools/build_components/entities/auxiliary/one_dimensional/miller_indices_2d.py +0 -0
  251. package/src/py/mat3ra/made/tools/build_components/entities/auxiliary/two_dimensional/miller_indices.py +0 -18
  252. package/src/py/mat3ra/made/tools/build_components/entities/auxiliary/two_dimensional/termination.py +0 -33
  253. package/src/py/mat3ra/made/tools/build_components/entities/auxiliary/zero_dimensional/__init__.py +0 -0
  254. package/src/py/mat3ra/made/tools/build_components/entities/auxiliary/zero_dimensional/crystal_site/__init__.py +0 -2
  255. package/src/py/mat3ra/made/tools/build_components/entities/auxiliary/zero_dimensional/crystal_site/crystal_site.py +0 -24
  256. package/src/py/mat3ra/made/tools/build_components/entities/auxiliary/zero_dimensional/crystal_site/crystal_site_list.py +0 -9
  257. package/src/py/mat3ra/made/tools/build_components/entities/auxiliary/zero_dimensional/point_defect_site/builder.py +0 -32
  258. package/src/py/mat3ra/made/tools/build_components/entities/auxiliary/zero_dimensional/point_defect_site/configuration.py +0 -14
  259. package/src/py/mat3ra/made/tools/build_components/entities/auxiliary/zero_dimensional/void_region/__init__.py +0 -0
  260. package/src/py/mat3ra/made/tools/build_components/entities/auxiliary/zero_dimensional/void_region/builder.py +0 -29
  261. package/src/py/mat3ra/made/tools/build_components/entities/auxiliary/zero_dimensional/void_region/configuration.py +0 -19
  262. package/src/py/mat3ra/made/tools/build_components/entities/core/two_dimensional/vacuum/builder.py +0 -48
  263. package/src/py/mat3ra/made/tools/build_components/entities/core/two_dimensional/vacuum/configuration.py +0 -17
  264. package/src/py/mat3ra/made/tools/build_components/entities/core/zero_dimensional/atom/builder.py +0 -25
  265. package/src/py/mat3ra/made/tools/build_components/entities/core/zero_dimensional/atom/configuration.py +0 -8
  266. package/src/py/mat3ra/made/tools/build_components/entities/reusable/__init__.py +0 -0
  267. package/src/py/mat3ra/made/tools/build_components/entities/reusable/base_builder/__init__.py +0 -16
  268. package/src/py/mat3ra/made/tools/build_components/entities/reusable/base_builder/base_configuration_pydantic.py +0 -5
  269. package/src/py/mat3ra/made/tools/build_components/entities/reusable/base_builder/base_single_builder.py +0 -87
  270. package/src/py/mat3ra/made/tools/build_components/entities/reusable/base_builder/build_parameters.py +0 -5
  271. package/src/py/mat3ra/made/tools/build_components/entities/reusable/one_dimensional/__init__.py +0 -0
  272. package/src/py/mat3ra/made/tools/build_components/entities/reusable/one_dimensional/crystal_lattice_lines/__init__.py +0 -4
  273. package/src/py/mat3ra/made/tools/build_components/entities/reusable/one_dimensional/crystal_lattice_lines/builder.py +0 -46
  274. package/src/py/mat3ra/made/tools/build_components/entities/reusable/one_dimensional/crystal_lattice_lines/configuration.py +0 -19
  275. package/src/py/mat3ra/made/tools/build_components/entities/reusable/one_dimensional/crystal_lattice_lines/edge_types.py +0 -51
  276. package/src/py/mat3ra/made/tools/build_components/entities/reusable/one_dimensional/crystal_lattice_lines/helpers.py +0 -58
  277. package/src/py/mat3ra/made/tools/build_components/entities/reusable/one_dimensional/crystal_lattice_lines_unique_repeated/__init__.py +0 -4
  278. package/src/py/mat3ra/made/tools/build_components/entities/reusable/one_dimensional/crystal_lattice_lines_unique_repeated/builder.py +0 -42
  279. package/src/py/mat3ra/made/tools/build_components/entities/reusable/one_dimensional/crystal_lattice_lines_unique_repeated/configuration.py +0 -21
  280. package/src/py/mat3ra/made/tools/build_components/entities/reusable/three_dimensional/supercell/__init__.py +0 -0
  281. package/src/py/mat3ra/made/tools/build_components/entities/reusable/three_dimensional/supercell/configuration.py +0 -11
  282. package/src/py/mat3ra/made/tools/build_components/entities/reusable/three_dimensional/supercell/helpers.py +0 -38
  283. package/src/py/mat3ra/made/tools/build_components/entities/reusable/two_dimensional/__init__.py +0 -24
  284. package/src/py/mat3ra/made/tools/build_components/entities/reusable/two_dimensional/atomic_layers_unique_repeated/__init__.py +0 -7
  285. package/src/py/mat3ra/made/tools/build_components/entities/reusable/two_dimensional/atomic_layers_unique_repeated/builder.py +0 -62
  286. package/src/py/mat3ra/made/tools/build_components/entities/reusable/two_dimensional/atomic_layers_unique_repeated/configuration.py +0 -14
  287. package/src/py/mat3ra/made/tools/build_components/entities/reusable/two_dimensional/atomic_layers_unique_repeated/helpers.py +0 -42
  288. package/src/py/mat3ra/made/tools/build_components/entities/reusable/two_dimensional/crystal_lattice_planes/__init__.py +0 -7
  289. package/src/py/mat3ra/made/tools/build_components/entities/reusable/two_dimensional/crystal_lattice_planes/builder.py +0 -39
  290. package/src/py/mat3ra/made/tools/build_components/entities/reusable/two_dimensional/crystal_lattice_planes/configuration.py +0 -24
  291. package/src/py/mat3ra/made/tools/build_components/entities/reusable/two_dimensional/slab_stack/__init__.py +0 -10
  292. package/src/py/mat3ra/made/tools/build_components/entities/reusable/two_dimensional/slab_stack/builder.py +0 -36
  293. package/src/py/mat3ra/made/tools/build_components/entities/reusable/two_dimensional/slab_stack/configuration.py +0 -31
  294. package/src/py/mat3ra/made/tools/build_components/entities/reusable/two_dimensional/slab_stack/helpers.py +0 -80
  295. package/src/py/mat3ra/made/tools/build_components/entities/reusable/zero_dimensional/__init__.py +0 -0
  296. package/src/py/mat3ra/made/tools/build_components/entities/reusable/zero_dimensional/coordinates_shape_enum.py +0 -8
  297. package/src/py/mat3ra/made/tools/build_components/metadata/__init__.py +0 -2
  298. package/src/py/mat3ra/made/tools/build_components/metadata/build_metadata.py +0 -7
  299. package/src/py/mat3ra/made/tools/build_components/metadata/material_build_metadata.py +0 -35
  300. package/src/py/mat3ra/made/tools/build_components/metadata/material_with_build_metadata.py +0 -8
  301. package/src/py/mat3ra/made/tools/build_components/mixins/__init__.py +0 -2
  302. package/src/py/mat3ra/made/tools/build_components/mixins/convert_generated_items_ase_atoms_mixin.py +0 -8
  303. package/src/py/mat3ra/made/tools/build_components/mixins/convert_generated_items_pymatgen_structure_mixin.py +0 -8
  304. package/src/py/mat3ra/made/tools/build_components/operations/core/combinations/__init__.py +0 -0
  305. package/src/py/mat3ra/made/tools/build_components/operations/core/combinations/enums.py +0 -11
  306. package/src/py/mat3ra/made/tools/build_components/operations/core/combinations/merge/__init__.py +0 -6
  307. package/src/py/mat3ra/made/tools/build_components/operations/core/combinations/merge/build_parameters.py +0 -18
  308. package/src/py/mat3ra/made/tools/build_components/operations/core/combinations/merge/builder.py +0 -93
  309. package/src/py/mat3ra/made/tools/build_components/operations/core/combinations/merge/configuration.py +0 -20
  310. package/src/py/mat3ra/made/tools/build_components/operations/core/combinations/stack/builder.py +0 -83
  311. package/src/py/mat3ra/made/tools/build_components/operations/core/combinations/stack/configuration.py +0 -24
  312. package/src/py/mat3ra/made/tools/build_components/operations/core/modifications/perturb/__init__.py +0 -15
  313. package/src/py/mat3ra/made/tools/build_components/operations/core/modifications/perturb/build_parameters.py +0 -5
  314. package/src/py/mat3ra/made/tools/build_components/operations/core/modifications/perturb/builders/base.py +0 -33
  315. package/src/py/mat3ra/made/tools/build_components/operations/core/modifications/perturb/builders/isometric.py +0 -25
  316. package/src/py/mat3ra/made/tools/build_components/operations/core/modifications/perturb/configuration.py +0 -24
  317. package/src/py/mat3ra/made/tools/build_components/operations/core/modifications/perturb/functions/__init__.py +0 -13
  318. package/src/py/mat3ra/made/tools/build_components/operations/core/modifications/perturb/functions/atomic_mass_dependent_function_holder.py +0 -32
  319. package/src/py/mat3ra/made/tools/build_components/operations/core/modifications/perturb/functions/function_holder.py +0 -80
  320. package/src/py/mat3ra/made/tools/build_components/operations/core/modifications/perturb/functions/maxwell_boltzmann.py +0 -39
  321. package/src/py/mat3ra/made/tools/build_components/operations/core/modifications/perturb/functions/perturbation_function_holder.py +0 -45
  322. package/src/py/mat3ra/made/tools/build_components/operations/core/modifications/perturb/functions/sine_wave_perturbation_function_holder.py +0 -29
  323. package/src/py/mat3ra/made/tools/build_components/operations/core/modifications/perturb/helpers.py +0 -83
  324. package/src/py/mat3ra/made/tools/build_components/operations/core/modifications/strain/__init__.py +0 -5
  325. package/src/py/mat3ra/made/tools/build_components/operations/core/modifications/strain/builder.py +0 -25
  326. package/src/py/mat3ra/made/tools/build_components/operations/core/modifications/strain/configuration.py +0 -23
  327. package/src/py/mat3ra/made/tools/build_components/operations/core/modifications/strain/helpers.py +0 -49
  328. package/src/py/mat3ra/made/tools/build_components/utils.py +0 -44
  329. package/src/py/mat3ra/made/tools/calculate/__init__.py +0 -149
  330. package/src/py/mat3ra/made/tools/calculate/ase/__init__.py +0 -133
  331. package/src/py/mat3ra/made/tools/calculate/ase/constraints.py +0 -91
  332. package/src/py/mat3ra/made/tools/calculate/calculators/__init__.py +0 -4
  333. package/src/py/mat3ra/made/tools/calculate/calculators/interface_material_calculator.py +0 -70
  334. package/src/py/mat3ra/made/tools/calculate/calculators/interface_material_calculator_parameters.py +0 -14
  335. package/src/py/mat3ra/made/tools/calculate/calculators/material_calculator.py +0 -32
  336. package/src/py/mat3ra/made/tools/calculate/calculators/material_calculator_parameters.py +0 -17
  337. package/src/py/mat3ra/made/tools/calculate/interaction_functions.py +0 -23
  338. package/src/py/mat3ra/made/tools/convert/__init__.py +0 -286
  339. package/src/py/mat3ra/made/tools/convert/interface_parts_enum.py +0 -9
  340. package/src/py/mat3ra/made/tools/convert/utils.py +0 -96
  341. package/src/py/mat3ra/made/tools/entities/__init__.py +0 -5
  342. package/src/py/mat3ra/made/tools/entities/coordinate/__init__.py +0 -14
  343. package/src/py/mat3ra/made/tools/entities/coordinate/box_coordinate_condition.py +0 -15
  344. package/src/py/mat3ra/made/tools/entities/coordinate/coordinate_condition.py +0 -16
  345. package/src/py/mat3ra/made/tools/entities/coordinate/coordinate_functions.py +0 -158
  346. package/src/py/mat3ra/made/tools/entities/coordinate/cylinder_coordinate_condition.py +0 -17
  347. package/src/py/mat3ra/made/tools/entities/coordinate/plane_coordinate_condition.py +0 -14
  348. package/src/py/mat3ra/made/tools/entities/coordinate/sphere_coordinate_condition.py +0 -15
  349. package/src/py/mat3ra/made/tools/entities/coordinate/triangular_prism_coordinate_condition.py +0 -26
  350. package/src/py/mat3ra/made/tools/entities/termination_holder.py +0 -12
  351. package/src/py/mat3ra/made/tools/helpers.py +0 -168
  352. package/src/py/mat3ra/made/tools/modify.py +0 -627
  353. package/src/py/mat3ra/made/tools/operations/core/binary.py +0 -106
  354. package/src/py/mat3ra/made/tools/operations/core/unary.py +0 -170
  355. package/src/py/mat3ra/made/tools/operations/core/utils.py +0 -138
  356. package/src/py/mat3ra/made/tools/operations/reusable/unary.py +0 -53
  357. package/src/py/mat3ra/made/tools/optimize.py +0 -55
  358. package/src/py/mat3ra/made/tools/third_party.py +0 -69
  359. package/src/py/mat3ra/made/tools/utils.py +0 -182
  360. package/src/py/mat3ra/made/utils.py +0 -144
  361. package/tests/.gitattributes +0 -1
  362. package/tests/fixtures/AsGe-basis.json +0 -3
  363. package/tests/fixtures/C2H4-translated.json +0 -3
  364. package/tests/fixtures/C2H4.json +0 -3
  365. package/tests/fixtures/FeLiSi-basis.json +0 -3
  366. package/tests/fixtures/FeO.json +0 -3
  367. package/tests/fixtures/Ge2-basis.json +0 -3
  368. package/tests/fixtures/Graphene.json +0 -3
  369. package/tests/fixtures/Graphene.poscar +0 -3
  370. package/tests/fixtures/H2+H-final.json +0 -3
  371. package/tests/fixtures/H2+H-image.json +0 -3
  372. package/tests/fixtures/H2+H-initial.json +0 -3
  373. package/tests/fixtures/H2O.poscar +0 -3
  374. package/tests/fixtures/LiFeSi-basis-labels.json +0 -3
  375. package/tests/fixtures/LiFeSi-basis.json +0 -3
  376. package/tests/fixtures/Na.json +0 -3
  377. package/tests/fixtures/Na4Cl4-cartesian.json +0 -3
  378. package/tests/fixtures/Na4Cl4.json +0 -3
  379. package/tests/fixtures/Na4Cl4.poscar +0 -3
  380. package/tests/fixtures/Ni-hex.json +0 -3
  381. package/tests/fixtures/Ni-hex.poscar +0 -3
  382. package/tests/fixtures/OSi-basis.json +0 -3
  383. package/tests/fixtures/Si-hex.poscar +0 -3
  384. package/tests/fixtures/Si-pwscf.in +0 -3
  385. package/tests/fixtures/Si-slab.json +0 -3
  386. package/tests/fixtures/Si-supercell.json +0 -3
  387. package/tests/fixtures/Si2-basis-repeated.json +0 -3
  388. package/tests/fixtures/Si2-basis.json +0 -3
  389. package/tests/fixtures/Zr1H23Zr1H1.json +0 -3
  390. package/tests/fixtures/Zr1H23Zr1H1.poscar +0 -3
  391. package/tests/fixtures/atomic-constraints.json +0 -3
  392. package/tests/fixtures/hashes.json +0 -3
  393. package/tests/fixtures/si-slab-100.json +0 -3
  394. package/tests/fixtures/si-slab-111-0-vacuum.json +0 -3
  395. package/tests/fixtures/si-slab-111-0.5-vacuum-gamma-120.json +0 -3
  396. package/tests/fixtures/si-slab-111-0.5-vacuum-ratio.json +0 -3
  397. package/tests/fixtures/si-standata.json +0 -3
  398. package/tests/js/basis/basis.ts +0 -247
  399. package/tests/js/cell/cell.ts +0 -182
  400. package/tests/js/cell/primitive_cell.ts +0 -21
  401. package/tests/js/constraints/constraints.ts +0 -11
  402. package/tests/js/fixtures.ts +0 -123
  403. package/tests/js/lattice/lattice.ts +0 -43
  404. package/tests/js/lattice/lattice_reciprocal.ts +0 -104
  405. package/tests/js/material/material.ts +0 -161
  406. package/tests/js/parsers/espresso.ts +0 -12
  407. package/tests/js/parsers/native_formats.ts +0 -35
  408. package/tests/js/parsers/poscar.ts +0 -89
  409. package/tests/js/parsers/xyz.ts +0 -33
  410. package/tests/js/parsers/xyz_combinatorial_basis.ts +0 -156
  411. package/tests/js/register-esse-schemas.cjs +0 -10
  412. package/tests/js/setup.ts +0 -6
  413. package/tests/js/tools/basis.ts +0 -22
  414. package/tests/js/tools/supercell.ts +0 -58
  415. package/tests/js/tools/surface.ts +0 -111
  416. package/tests/py/conftest.py +0 -34
  417. package/tests/py/mat3ra/debug_utils.py +0 -75
  418. package/tests/py/unit/__init__.py +0 -0
  419. package/tests/py/unit/fixtures/__init__.py +0 -0
  420. package/tests/py/unit/fixtures/adatom.py +0 -60
  421. package/tests/py/unit/fixtures/bulk.py +0 -162
  422. package/tests/py/unit/fixtures/cuts.py +0 -118
  423. package/tests/py/unit/fixtures/grain_boundary.py +0 -875
  424. package/tests/py/unit/fixtures/interface/commensurate.py +0 -498
  425. package/tests/py/unit/fixtures/interface/gaas_dia.py +0 -837
  426. package/tests/py/unit/fixtures/interface/gr_ni_111_top_hcp.py +0 -123
  427. package/tests/py/unit/fixtures/interface/simple.py +0 -84
  428. package/tests/py/unit/fixtures/interface/twisted_nanoribbons.py +0 -131
  429. package/tests/py/unit/fixtures/interface/zsl.py +0 -756
  430. package/tests/py/unit/fixtures/island.py +0 -336
  431. package/tests/py/unit/fixtures/merge.py +0 -147
  432. package/tests/py/unit/fixtures/monolayer.py +0 -46
  433. package/tests/py/unit/fixtures/nanoparticle.py +0 -116
  434. package/tests/py/unit/fixtures/nanoribbon/__init__.py +0 -0
  435. package/tests/py/unit/fixtures/nanoribbon/armchair.py +0 -102
  436. package/tests/py/unit/fixtures/nanoribbon/nanoribbon.py +0 -145
  437. package/tests/py/unit/fixtures/nanoribbon/zigzag.py +0 -54
  438. package/tests/py/unit/fixtures/pair_defects.py +0 -41
  439. package/tests/py/unit/fixtures/passivated/nanoribbon.py +0 -69
  440. package/tests/py/unit/fixtures/passivated/slab.py +0 -58
  441. package/tests/py/unit/fixtures/point_defects.py +0 -158
  442. package/tests/py/unit/fixtures/slab.py +0 -606
  443. package/tests/py/unit/fixtures/strain.py +0 -42
  444. package/tests/py/unit/fixtures/supercell.py +0 -64
  445. package/tests/py/unit/fixtures/terrace.py +0 -70
  446. package/tests/py/unit/fixtures/thrid_party/ase_atoms.py +0 -13
  447. package/tests/py/unit/test_analyze_lattice_planes.py +0 -131
  448. package/tests/py/unit/test_cell.py +0 -104
  449. package/tests/py/unit/test_data_files.py +0 -68
  450. package/tests/py/unit/test_lattice.py +0 -103
  451. package/tests/py/unit/test_lattice_type_extended.py +0 -53
  452. package/tests/py/unit/test_material.py +0 -158
  453. package/tests/py/unit/test_operations.py +0 -126
  454. package/tests/py/unit/test_primitive_cell.py +0 -118
  455. package/tests/py/unit/test_reciprocal_lattice.py +0 -86
  456. package/tests/py/unit/test_reciprocal_paths.py +0 -64
  457. package/tests/py/unit/test_symmetry_points.py +0 -151
  458. package/tests/py/unit/test_tools_analyze.py +0 -219
  459. package/tests/py/unit/test_tools_analyze_basis.py +0 -105
  460. package/tests/py/unit/test_tools_analyze_interface.py +0 -223
  461. package/tests/py/unit/test_tools_analyze_interface_material.py +0 -63
  462. package/tests/py/unit/test_tools_analyze_interface_zsl.py +0 -187
  463. package/tests/py/unit/test_tools_analyze_lattice.py +0 -74
  464. package/tests/py/unit/test_tools_analyze_swap.py +0 -80
  465. package/tests/py/unit/test_tools_build.py +0 -158
  466. package/tests/py/unit/test_tools_build_defect/__init__.py +0 -0
  467. package/tests/py/unit/test_tools_build_defect/test_adatom.py +0 -84
  468. package/tests/py/unit/test_tools_build_defect/test_island.py +0 -45
  469. package/tests/py/unit/test_tools_build_defect/test_pair_defect.py +0 -84
  470. package/tests/py/unit/test_tools_build_defect/test_point_defect.py +0 -196
  471. package/tests/py/unit/test_tools_build_defect/test_slab_stack.py +0 -30
  472. package/tests/py/unit/test_tools_build_defect/test_solid_solution.py +0 -90
  473. package/tests/py/unit/test_tools_build_defect/test_terrace.py +0 -44
  474. package/tests/py/unit/test_tools_build_grain_boundary.py +0 -133
  475. package/tests/py/unit/test_tools_build_heterostructure.py +0 -46
  476. package/tests/py/unit/test_tools_build_interface.py +0 -292
  477. package/tests/py/unit/test_tools_build_interface_zsl.py +0 -263
  478. package/tests/py/unit/test_tools_build_maxwell_disorder.py +0 -123
  479. package/tests/py/unit/test_tools_build_metadata.py +0 -79
  480. package/tests/py/unit/test_tools_build_monolayer.py +0 -33
  481. package/tests/py/unit/test_tools_build_nanoparticle.py +0 -42
  482. package/tests/py/unit/test_tools_build_nanoribbon.py +0 -45
  483. package/tests/py/unit/test_tools_build_passivation.py +0 -85
  484. package/tests/py/unit/test_tools_build_perturbation.py +0 -103
  485. package/tests/py/unit/test_tools_build_slab.py +0 -382
  486. package/tests/py/unit/test_tools_build_strain.py +0 -36
  487. package/tests/py/unit/test_tools_build_supercell.py +0 -47
  488. package/tests/py/unit/test_tools_calculate.py +0 -67
  489. package/tests/py/unit/test_tools_convert.py +0 -174
  490. package/tests/py/unit/test_tools_modify.py +0 -248
  491. package/tests/py/unit/utils.py +0 -142
  492. package/tsconfig-transpile.json +0 -3
  493. 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).getBasis();
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).getBasis();
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).getBasis();
45
- const basis2 = new Material(Na4Cl4Cartesian).getBasis();
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).getBasis();
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).getBasis();
199
- assertDeepAlmostEqual(basis.standardRepresentation, Na4Cl4.basis, ["constraints"]);
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,123 +0,0 @@
1
- import {
2
- AtomicConstraintsSchema,
3
- BasisSchema,
4
- MaterialHashedSchema,
5
- MaterialSchema,
6
- } from "@mat3ra/esse/dist/js/types";
7
- import { MaterialStandata } from "@mat3ra/standata";
8
- import fs from "fs";
9
- import path from "path";
10
-
11
- import AsGeBasis_JSON from "../fixtures/AsGe-basis.json";
12
- import atomicConstraints_JSON from "../fixtures/atomic-constraints.json";
13
- import C2H4_JSON from "../fixtures/C2H4.json";
14
- import C2H4Translated_JSON from "../fixtures/C2H4-translated.json";
15
- import FeLiSiBasis_JSON from "../fixtures/FeLiSi-basis.json";
16
- import FeO_JSON from "../fixtures/FeO.json";
17
- import Ge2Basis_JSON from "../fixtures/Ge2-basis.json";
18
- import Graphene_JSON from "../fixtures/Graphene.json";
19
- import H2HFinal_JSON from "../fixtures/H2+H-final.json";
20
- import H2HImage_JSON from "../fixtures/H2+H-image.json";
21
- import H2HInitial_JSON from "../fixtures/H2+H-initial.json";
22
- import LiFeSiBasis_JSON from "../fixtures/LiFeSi-basis.json";
23
- import LiFeSiBasisLabels_JSON from "../fixtures/LiFeSi-basis-labels.json";
24
- import Na_JSON from "../fixtures/Na.json";
25
- import Na4Cl4_JSON from "../fixtures/Na4Cl4.json";
26
- import Na4Cl4Cartesian_JSON from "../fixtures/Na4Cl4-cartesian.json";
27
- import NiHex_JSON from "../fixtures/Ni-hex.json";
28
- import OSiBasis_JSON from "../fixtures/OSi-basis.json";
29
- import SiSlab_JSON from "../fixtures/Si-slab.json";
30
- import SiSlab100_JSON from "../fixtures/si-slab-100.json";
31
- import SiSlab111Gamma120_JSON from "../fixtures/si-slab-111-0.5-vacuum-gamma-120.json";
32
- import SiSlab111_JSON from "../fixtures/si-slab-111-0.5-vacuum-ratio.json";
33
- import SiSlab111NoVacuum_JSON from "../fixtures/si-slab-111-0-vacuum.json";
34
- import Silicon_JSON from "../fixtures/si-standata.json";
35
- import SiSupercell_JSON from "../fixtures/Si-supercell.json";
36
- import Si2Basis_JSON from "../fixtures/Si2-basis.json";
37
- import Si2BasisRepeated_JSON from "../fixtures/Si2-basis-repeated.json";
38
- import Zr1H23Zr1H1_JSON from "../fixtures/Zr1H23Zr1H1.json";
39
-
40
- // Material
41
- const Silicon = Silicon_JSON as unknown as MaterialHashedSchema;
42
- const SiSupercell = SiSupercell_JSON as unknown as MaterialHashedSchema;
43
- const SiSlab = SiSlab_JSON as unknown as MaterialSchema;
44
- const SiSlab100 = SiSlab100_JSON as unknown as MaterialSchema;
45
- const SiSlab111 = SiSlab111_JSON as unknown as MaterialSchema;
46
- const SiSlab111Gamma120 = SiSlab111Gamma120_JSON as unknown as MaterialSchema;
47
- const SiSlab111NoVacuum = SiSlab111NoVacuum_JSON as unknown as MaterialSchema;
48
- const FeO = FeO_JSON as unknown as MaterialSchema;
49
- const FeOStandata = MaterialStandata.getRuntimeDataConfigs().find((m: any) =>
50
- m.name?.includes("FeO"),
51
- ) as MaterialHashedSchema;
52
- const Na4Cl4 = Na4Cl4_JSON as unknown as MaterialSchema;
53
- const Na4Cl4Cartesian = Na4Cl4Cartesian_JSON as unknown as MaterialSchema;
54
- const C2H4 = C2H4_JSON as unknown as MaterialSchema;
55
- const C2H4Translated = C2H4Translated_JSON as unknown as MaterialSchema;
56
- const Na = Na_JSON as unknown as MaterialSchema;
57
- const H2HInitial = H2HInitial_JSON as unknown as MaterialSchema;
58
- const H2HFinal = H2HFinal_JSON as unknown as MaterialSchema;
59
- const H2HImage = H2HImage_JSON as unknown as MaterialSchema;
60
- const Zr1H23Zr1H1 = Zr1H23Zr1H1_JSON as unknown as MaterialSchema;
61
- const Graphene = Graphene_JSON as unknown as MaterialHashedSchema;
62
- const NiHex = NiHex_JSON as unknown as MaterialSchema;
63
-
64
- // Basis
65
- const Si2Basis = Si2Basis_JSON as BasisSchema;
66
- const Si2BasisRepeated = Si2BasisRepeated_JSON as BasisSchema;
67
- const OSiBasis = OSiBasis_JSON as BasisSchema;
68
- const Ge2Basis = Ge2Basis_JSON as BasisSchema;
69
- const AsGeBasis = AsGeBasis_JSON as BasisSchema;
70
- const FeLiSiBasis = FeLiSiBasis_JSON as BasisSchema;
71
- const LiFeSiBasis = LiFeSiBasis_JSON as BasisSchema;
72
- const LiFeSiBasisLabels = LiFeSiBasisLabels_JSON as BasisSchema;
73
-
74
- // Other
75
- const atomicConstraints = atomicConstraints_JSON as AtomicConstraintsSchema;
76
-
77
- export {
78
- // Silicon
79
- Silicon,
80
- SiSupercell,
81
- SiSlab,
82
- SiSlab100,
83
- SiSlab111,
84
- SiSlab111Gamma120,
85
- SiSlab111NoVacuum,
86
- Si2Basis,
87
- Si2BasisRepeated,
88
- // Other
89
- FeO,
90
- FeOStandata,
91
- Na4Cl4,
92
- Na4Cl4Cartesian,
93
- C2H4,
94
- C2H4Translated,
95
- Na,
96
- OSiBasis,
97
- Ge2Basis,
98
- AsGeBasis,
99
- FeLiSiBasis,
100
- LiFeSiBasis,
101
- LiFeSiBasisLabels,
102
- atomicConstraints,
103
- H2HInitial,
104
- H2HFinal,
105
- H2HImage,
106
- Zr1H23Zr1H1,
107
- Graphene,
108
- NiHex,
109
- };
110
-
111
- // NON-JSON
112
- export const FIXTURES_DIR = path.resolve(__dirname, "../fixtures");
113
-
114
- // NON-JSON
115
- export const Na4Cl4Poscar = fs.readFileSync(path.join(FIXTURES_DIR, "Na4Cl4.poscar"), "utf8");
116
- export const SiPWSCFInput = fs.readFileSync(path.join(FIXTURES_DIR, "Si-pwscf.in"), "utf8");
117
- export const Zr1H23Zr1H1Poscar = fs.readFileSync(
118
- path.join(FIXTURES_DIR, "Zr1H23Zr1H1.poscar"),
119
- "utf8",
120
- );
121
- export const H2OPoscar = fs.readFileSync(path.join(FIXTURES_DIR, "H2O.poscar"), "utf8");
122
- export const GraphenePoscar = fs.readFileSync(path.join(FIXTURES_DIR, "Graphene.poscar"), "utf8");
123
- 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
- });