@mat3ra/made 2024.3.22-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 (176) hide show
  1. package/.babelrc +10 -0
  2. package/.eslintrc.json +11 -0
  3. package/.mocharc.json +5 -0
  4. package/.prettierignore +1 -0
  5. package/.prettierrc +6 -0
  6. package/LICENSE.md +15 -0
  7. package/README.md +167 -0
  8. package/dist/abstract/array_with_ids.d.ts +43 -0
  9. package/dist/abstract/array_with_ids.js +88 -0
  10. package/dist/abstract/scalar_with_id.d.ts +25 -0
  11. package/dist/abstract/scalar_with_id.js +44 -0
  12. package/dist/basis/basis.d.ts +269 -0
  13. package/dist/basis/basis.js +499 -0
  14. package/dist/basis/constrained_basis.d.ts +56 -0
  15. package/dist/basis/constrained_basis.js +90 -0
  16. package/dist/basis/types.d.ts +1 -0
  17. package/dist/basis/types.js +2 -0
  18. package/dist/cell/cell.d.ts +45 -0
  19. package/dist/cell/cell.js +88 -0
  20. package/dist/cell/conventional_cell.d.ts +22 -0
  21. package/dist/cell/conventional_cell.js +83 -0
  22. package/dist/cell/primitive_cell.d.ts +9 -0
  23. package/dist/cell/primitive_cell.js +166 -0
  24. package/dist/constants.d.ts +2 -0
  25. package/dist/constants.js +25 -0
  26. package/dist/constraints/constraints.d.ts +45 -0
  27. package/dist/constraints/constraints.js +49 -0
  28. package/dist/lattice/lattice.d.ts +104 -0
  29. package/dist/lattice/lattice.js +208 -0
  30. package/dist/lattice/lattice_bravais.d.ts +59 -0
  31. package/dist/lattice/lattice_bravais.js +120 -0
  32. package/dist/lattice/lattice_vectors.d.ts +46 -0
  33. package/dist/lattice/lattice_vectors.js +98 -0
  34. package/dist/lattice/reciprocal/lattice_reciprocal.d.ts +75 -0
  35. package/dist/lattice/reciprocal/lattice_reciprocal.js +148 -0
  36. package/dist/lattice/reciprocal/paths.d.ts +24 -0
  37. package/dist/lattice/reciprocal/paths.js +136 -0
  38. package/dist/lattice/reciprocal/symmetry_points.d.ts +8 -0
  39. package/dist/lattice/reciprocal/symmetry_points.js +866 -0
  40. package/dist/lattice/types.d.ts +49 -0
  41. package/dist/lattice/types.js +127 -0
  42. package/dist/lattice/unit_cell.d.ts +30 -0
  43. package/dist/lattice/unit_cell.js +31 -0
  44. package/dist/made.d.ts +40 -0
  45. package/dist/made.js +39 -0
  46. package/dist/material.d.ts +1562 -0
  47. package/dist/material.js +317 -0
  48. package/dist/math.d.ts +395 -0
  49. package/dist/math.js +7 -0
  50. package/dist/parsers/cif.d.ts +10 -0
  51. package/dist/parsers/cif.js +21 -0
  52. package/dist/parsers/errors.d.ts +5 -0
  53. package/dist/parsers/errors.js +11 -0
  54. package/dist/parsers/espresso.d.ts +10 -0
  55. package/dist/parsers/espresso.js +24 -0
  56. package/dist/parsers/native_format_parsers.d.ts +26 -0
  57. package/dist/parsers/native_format_parsers.js +52 -0
  58. package/dist/parsers/parsers.d.ts +13 -0
  59. package/dist/parsers/parsers.js +17 -0
  60. package/dist/parsers/poscar.d.ts +31 -0
  61. package/dist/parsers/poscar.js +180 -0
  62. package/dist/parsers/xyz.d.ts +62 -0
  63. package/dist/parsers/xyz.js +167 -0
  64. package/dist/parsers/xyz_combinatorial_basis.d.ts +64 -0
  65. package/dist/parsers/xyz_combinatorial_basis.js +241 -0
  66. package/dist/tools/basis.d.ts +22 -0
  67. package/dist/tools/basis.js +100 -0
  68. package/dist/tools/cell.d.ts +9 -0
  69. package/dist/tools/cell.js +39 -0
  70. package/dist/tools/index.d.ts +11 -0
  71. package/dist/tools/index.js +15 -0
  72. package/dist/tools/material.d.ts +25 -0
  73. package/dist/tools/material.js +54 -0
  74. package/dist/tools/supercell.d.ts +22 -0
  75. package/dist/tools/supercell.js +62 -0
  76. package/dist/tools/surface.d.ts +10 -0
  77. package/dist/tools/surface.js +147 -0
  78. package/dist/types.d.ts +3 -0
  79. package/dist/types.js +2 -0
  80. package/package.json +89 -0
  81. package/pyproject.toml +77 -0
  82. package/src/js/abstract/array_with_ids.ts +100 -0
  83. package/src/js/abstract/scalar_with_id.ts +53 -0
  84. package/src/js/basis/basis.ts +607 -0
  85. package/src/js/basis/constrained_basis.ts +107 -0
  86. package/src/js/basis/types.ts +1 -0
  87. package/src/js/cell/cell.ts +109 -0
  88. package/src/js/cell/conventional_cell.ts +89 -0
  89. package/src/js/cell/primitive_cell.ts +189 -0
  90. package/src/js/constants.js +4 -0
  91. package/src/js/constraints/constraints.ts +63 -0
  92. package/src/js/lattice/lattice.ts +229 -0
  93. package/src/js/lattice/lattice_bravais.ts +170 -0
  94. package/src/js/lattice/lattice_vectors.ts +126 -0
  95. package/src/js/lattice/reciprocal/lattice_reciprocal.js +155 -0
  96. package/src/js/lattice/reciprocal/paths.js +134 -0
  97. package/src/js/lattice/reciprocal/symmetry_points.ts +886 -0
  98. package/src/js/lattice/types.ts +142 -0
  99. package/src/js/lattice/unit_cell.ts +66 -0
  100. package/src/js/made.js +36 -0
  101. package/src/js/material.ts +398 -0
  102. package/src/js/math.js +6 -0
  103. package/src/js/parsers/cif.js +22 -0
  104. package/src/js/parsers/errors.js +7 -0
  105. package/src/js/parsers/espresso.ts +30 -0
  106. package/src/js/parsers/native_format_parsers.js +51 -0
  107. package/src/js/parsers/parsers.js +13 -0
  108. package/src/js/parsers/poscar.ts +201 -0
  109. package/src/js/parsers/xyz.ts +216 -0
  110. package/src/js/parsers/xyz_combinatorial_basis.js +243 -0
  111. package/src/js/tools/basis.js +116 -0
  112. package/src/js/tools/cell.js +36 -0
  113. package/src/js/tools/index.js +11 -0
  114. package/src/js/tools/material.js +60 -0
  115. package/src/js/tools/supercell.ts +80 -0
  116. package/src/js/tools/surface.js +176 -0
  117. package/src/js/types.ts +4 -0
  118. package/src/py/__init__.py +0 -0
  119. package/src/py/mat3ra/__init__.py +0 -0
  120. package/src/py/mat3ra/made/__init__.py +5 -0
  121. package/tests/.gitattributes +1 -0
  122. package/tests/fixtures/AsGe-basis.json +3 -0
  123. package/tests/fixtures/C2H4-translated.json +3 -0
  124. package/tests/fixtures/C2H4.json +3 -0
  125. package/tests/fixtures/FeLiSi-basis.json +3 -0
  126. package/tests/fixtures/FeO.json +3 -0
  127. package/tests/fixtures/Ge2-basis.json +3 -0
  128. package/tests/fixtures/Graphene.json +3 -0
  129. package/tests/fixtures/Graphene.poscar +3 -0
  130. package/tests/fixtures/H2+H-final.json +3 -0
  131. package/tests/fixtures/H2+H-image.json +3 -0
  132. package/tests/fixtures/H2+H-initial.json +3 -0
  133. package/tests/fixtures/H2O.poscar +3 -0
  134. package/tests/fixtures/LiFeSi-basis.json +3 -0
  135. package/tests/fixtures/Na.json +3 -0
  136. package/tests/fixtures/Na4Cl4-cartesian.json +3 -0
  137. package/tests/fixtures/Na4Cl4.json +3 -0
  138. package/tests/fixtures/Na4Cl4.poscar +3 -0
  139. package/tests/fixtures/Ni-hex.json +3 -0
  140. package/tests/fixtures/Ni-hex.poscar +3 -0
  141. package/tests/fixtures/OSi-basis.json +3 -0
  142. package/tests/fixtures/Si-hex.json +3 -0
  143. package/tests/fixtures/Si-hex.poscar +3 -0
  144. package/tests/fixtures/Si-pwscf.in +3 -0
  145. package/tests/fixtures/Si-slab.json +3 -0
  146. package/tests/fixtures/Si-supercell.json +3 -0
  147. package/tests/fixtures/Si.json +3 -0
  148. package/tests/fixtures/Si2-basis-repeated.json +3 -0
  149. package/tests/fixtures/Si2-basis.json +3 -0
  150. package/tests/fixtures/Zr1H23Zr1H1.json +3 -0
  151. package/tests/fixtures/Zr1H23Zr1H1.poscar +3 -0
  152. package/tests/fixtures/atomic-constraints.json +3 -0
  153. package/tests/js/basis/basis.js +221 -0
  154. package/tests/js/cell/cell.js +21 -0
  155. package/tests/js/cell/primitive_cell.js +17 -0
  156. package/tests/js/constraints/constraints.js +27 -0
  157. package/tests/js/enums.js +40 -0
  158. package/tests/js/lattice/lattice.js +31 -0
  159. package/tests/js/lattice/lattice_bravais.js +17 -0
  160. package/tests/js/lattice/lattice_reciprocal.js +99 -0
  161. package/tests/js/lattice/lattice_vectors.js +10 -0
  162. package/tests/js/material.test.js +11 -0
  163. package/tests/js/parsers/espresso.js +12 -0
  164. package/tests/js/parsers/native_formats.js +30 -0
  165. package/tests/js/parsers/poscar.js +21 -0
  166. package/tests/js/parsers/xyz.js +25 -0
  167. package/tests/js/parsers/xyz_combinatorial_basis.js +153 -0
  168. package/tests/js/setup.js +6 -0
  169. package/tests/js/tools/basis.js +18 -0
  170. package/tests/js/tools/supercell.js +23 -0
  171. package/tests/js/tools/surface.js +12 -0
  172. package/tests/js/utils.js +17 -0
  173. package/tests/py/__init__.py +0 -0
  174. package/tests/py/unit/__init__.py +0 -0
  175. package/tests/py/unit/test_sample.py +10 -0
  176. package/tsconfig.json +3 -0
@@ -0,0 +1,148 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ReciprocalLattice = void 0;
7
+ const constants_1 = require("@exabyte-io/code.js/dist/constants");
8
+ const array_almost_equal_1 = __importDefault(require("array-almost-equal"));
9
+ const lodash_1 = __importDefault(require("lodash"));
10
+ const math_1 = __importDefault(require("../../math"));
11
+ const lattice_1 = require("../lattice");
12
+ const paths_1 = require("./paths");
13
+ const symmetry_points_1 = require("./symmetry_points");
14
+ class ReciprocalLattice extends lattice_1.Lattice {
15
+ /**
16
+ * Get reciprocal vectors for the current Lattice in cartesian (2pi / a) units
17
+ * @return {Array[]}
18
+ */
19
+ get reciprocalVectors() {
20
+ const vectors_ = this.vectors.vectorArrays;
21
+ const a = math_1.default.vlen(vectors_[0]);
22
+ const divider = math_1.default.multiply(vectors_[0], math_1.default.cross(vectors_[1], vectors_[2])) / a;
23
+ return [
24
+ math_1.default.multiply(math_1.default.cross(vectors_[1], vectors_[2]), 1 / divider),
25
+ math_1.default.multiply(math_1.default.cross(vectors_[2], vectors_[0]), 1 / divider),
26
+ math_1.default.multiply(math_1.default.cross(vectors_[0], vectors_[1]), 1 / divider),
27
+ ];
28
+ }
29
+ /**
30
+ * Norms of reciprocal vectors.
31
+ * @return {number[]}
32
+ */
33
+ get reciprocalVectorNorms() {
34
+ return this.reciprocalVectors.map((vec) => math_1.default.norm(vec));
35
+ }
36
+ /**
37
+ * Ratio of reciprocal vector norms scaled by the inverse of the largest component.
38
+ * @return {number[]}
39
+ */
40
+ get reciprocalVectorRatios() {
41
+ const norms = this.reciprocalVectorNorms;
42
+ const maxNorm = math_1.default.max(...norms);
43
+ return norms.map((n) => n / maxNorm);
44
+ }
45
+ /**
46
+ * Get point (in crystal coordinates) in cartesian coordinates.
47
+ * @param {Array} point - point in 3D space
48
+ * @return {Array}
49
+ */
50
+ getCartesianCoordinates(point) {
51
+ return math_1.default.multiply(point, this.reciprocalVectors);
52
+ }
53
+ /**
54
+ * Get the list of high-symmetry points for the current lattice.
55
+ * @return {Object[]}
56
+ */
57
+ get symmetryPoints() {
58
+ return (0, symmetry_points_1.symmetryPoints)(this);
59
+ }
60
+ /**
61
+ * Get the default path in reciprocal space for the current lattice.
62
+ * @return {Array[]}
63
+ */
64
+ get defaultKpointPath() {
65
+ return paths_1.paths[this.typeExtended] || paths_1.paths[this.type];
66
+ }
67
+ /**
68
+ * Find/mark the high symmetry points on a list with raw data and return the edited list.
69
+ * @param {Array} dataPoints - list of point coordinates
70
+ * @return {Object[]}
71
+ */
72
+ extractKpointPath(dataPoints = []) {
73
+ const kpointPath = [];
74
+ const symmPoints = this.symmetryPoints;
75
+ dataPoints.forEach((point, index) => {
76
+ const symmPoint = symmPoints.find((x) => {
77
+ return (0, array_almost_equal_1.default)(x.coordinates, point, 1e-4);
78
+ });
79
+ if (symmPoint) {
80
+ kpointPath.push({
81
+ point: symmPoint.point,
82
+ steps: index,
83
+ coordinates: symmPoint.coordinates,
84
+ });
85
+ }
86
+ });
87
+ return kpointPath;
88
+ }
89
+ /**
90
+ * Calculate grid dimension based on reciprocal lattice vectors.
91
+ * @param {number} nPoints - Total number of points
92
+ * @param {number} index - Index of reciprocal vector
93
+ * @return {number} - Grid dimension in direction of reciprocal vector
94
+ * @todo This could be moved to a separate KGrid class.
95
+ */
96
+ calculateDimension(nPoints, index) {
97
+ const norms = this.reciprocalVectorNorms;
98
+ const [j, k] = [0, 1, 2].filter((i) => i !== index); // get indices of other two dimensions
99
+ const N = math_1.default.cbrt((nPoints * norms[index] ** 2) / (norms[j] * norms[k]));
100
+ return math_1.default.max(1, math_1.default.ceil(N));
101
+ }
102
+ /**
103
+ * Calculate grid dimensions from total number of k-points.
104
+ * @param {number} nKpoints - Total number of k-points.
105
+ * @return {number[]} - Grid dimensions
106
+ */
107
+ getDimensionsFromPointsCount(nKpoints) {
108
+ const indices = [0, 1, 2];
109
+ return indices.map((i) => this.calculateDimension(nKpoints, i));
110
+ }
111
+ get conversionTable() {
112
+ const { a } = this;
113
+ return {
114
+ [constants_1.ATOMIC_COORD_UNITS.cartesian]: {
115
+ [constants_1.units.angstrom]: (2 * math_1.default.PI) / a,
116
+ },
117
+ [constants_1.units.angstrom]: {
118
+ [constants_1.ATOMIC_COORD_UNITS.cartesian]: a / (2 * math_1.default.PI),
119
+ },
120
+ };
121
+ }
122
+ /**
123
+ * Calculate grid dimensions from k-point spacing, i.e.
124
+ * the maximum distance between adjacent points along a reciprocal axis.
125
+ * Note: just as the lattice vectors spacing is in cartesian (2pi / a) units by default
126
+ * @param {number} spacing - maximum Spacing between k-points
127
+ * @param {string} units - units of spacing parameter (default: 2pi / a)
128
+ * @return {number[]}
129
+ */
130
+ getDimensionsFromSpacing(spacing, units = constants_1.ATOMIC_COORD_UNITS.cartesian) {
131
+ const factor = this.conversionTable[units][constants_1.ATOMIC_COORD_UNITS.cartesian] || 1;
132
+ return this.reciprocalVectorNorms.map((norm) => {
133
+ return math_1.default.max(1, math_1.default.ceil(lodash_1.default.round(norm / (spacing * factor), 4)));
134
+ });
135
+ }
136
+ /**
137
+ * Calculate grid spacing as average of spacing along individual reciprocal axes.
138
+ * @param {number[]} dimensions - Array of dimensions
139
+ * @param {string} units - units of spacing parameter (default: 2pi / a)
140
+ * @return {number} - average grid spacing
141
+ */
142
+ getSpacingFromDimensions(dimensions, units = constants_1.ATOMIC_COORD_UNITS.cartesian) {
143
+ const factor = this.conversionTable[constants_1.ATOMIC_COORD_UNITS.cartesian][units] || 1;
144
+ const norms = this.reciprocalVectorNorms;
145
+ return factor * math_1.default.mean(dimensions.map((dim, i) => norms[i] / math_1.default.max(1, dim)));
146
+ }
147
+ }
148
+ exports.ReciprocalLattice = ReciprocalLattice;
@@ -0,0 +1,24 @@
1
+ export const paths: {
2
+ CUB: string[][];
3
+ BCC: string[][];
4
+ FCC: string[][];
5
+ TET: string[][];
6
+ "BCT-1": string[][];
7
+ "BCT-2": string[][];
8
+ ORC: string[][];
9
+ "ORCF-1": string[][];
10
+ "ORCF-2": string[][];
11
+ "ORCF-3": string[][];
12
+ ORCI: string[][];
13
+ ORCC: string[][];
14
+ HEX: string[][];
15
+ "RHL-1": string[][];
16
+ "RHL-2": string[][];
17
+ MCL: string[][];
18
+ "MCLC-1": string[][];
19
+ "MCLC-2": string[][];
20
+ "MCLC-3": string[][];
21
+ "MCLC-4": string[][];
22
+ "MCLC-5": string[][];
23
+ TRI: string[][];
24
+ };
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.paths = void 0;
7
+ const underscore_1 = __importDefault(require("underscore"));
8
+ /**
9
+ * Default kpoing paths according to:
10
+ * [AFLOW](https://arxiv.org/abs/1004.2974) methodology.
11
+ * Paths are split in parts for clarity.
12
+ */
13
+ const points = {
14
+ CUB: [
15
+ ["Г", "X", "M", "Г", "R", "X"],
16
+ ["M", "R"],
17
+ ],
18
+ BCC: [
19
+ ["Г", "H", "N", "Г", "P", "H"],
20
+ ["P", "N"],
21
+ ],
22
+ FCC: [
23
+ ["Г", "X", "W", "K", "Г", "L", "U", "W", "L"],
24
+ ["U", "X"],
25
+ ],
26
+ TET: [
27
+ ["Г", "X", "M", "Г", "Z", "R", "A", "Z"],
28
+ ["X", "R"],
29
+ ["M", "A"],
30
+ ],
31
+ "BCT-1": [
32
+ ["Г", "X", "M", "Г", "Z", "P", "N", "Z1", "M"],
33
+ ["X", "P"],
34
+ ],
35
+ "BCT-2": [
36
+ ["Г", "X", "Y", "∑", "Г", "Z", "∑1", "N", "P", "Y1", "Z"],
37
+ ["X", "P"],
38
+ ],
39
+ ORC: [
40
+ ["Г", "X", "S", "Y", "Г", "Z", "U", "R", "T", "Z"],
41
+ ["Y", "T"],
42
+ ["U", "X"],
43
+ ["S", "R"],
44
+ ],
45
+ "ORCF-1": [
46
+ ["Г", "Y", "T", "Z", "Г", "X", "A1", "Y"],
47
+ ["T", "X1"],
48
+ ["X", "A", "Z"],
49
+ ["L", "Г"],
50
+ ],
51
+ "ORCF-2": [
52
+ ["Г", "Y", "C", "D", "X", "Г", "Z", "D1", "H", "C"],
53
+ ["C1", "Z"],
54
+ ["X", "H1"],
55
+ ["H", "Y"],
56
+ ["L", "Г"],
57
+ ],
58
+ "ORCF-3": [
59
+ ["Г", "Y", "T", "Z", "Г", "X", "A1", "Y"],
60
+ ["X", "A", "Z"],
61
+ ["L", "Г"],
62
+ ],
63
+ ORCI: [
64
+ ["Г", "X", "L", "T", "W", "R", "X1", "Z", "Г", "Y", "S", "W"],
65
+ ["L1", "Y"],
66
+ ["Y1", "Z"],
67
+ ],
68
+ ORCC: [
69
+ ["Г", "X", "S", "R", "A", "Z", "Г", "Y", "X1", "A1", "T", "Y"],
70
+ ["Z", "T"],
71
+ ],
72
+ HEX: [
73
+ ["Г", "M", "K", "Г", "A", "L", "H", "A"],
74
+ ["L", "M"],
75
+ ["K", "H"],
76
+ ],
77
+ "RHL-1": [
78
+ ["Г", "L", "B1"],
79
+ ["B", "Z", "Г", "X"],
80
+ ["Q", "F", "P1", "Z"],
81
+ ["L", "P"],
82
+ ],
83
+ "RHL-2": [["Г", "P", "Z", "Q", "Г", "F", "P1", "Q1", "L", "Z"]],
84
+ MCL: [
85
+ ["Г", "Y", "H", "C", "E", "M1", "A", "X", "H1"],
86
+ ["M", "D", "Z"],
87
+ ["Y", "D"],
88
+ ],
89
+ "MCLC-1": [
90
+ ["Г", "Y", "Г", "L", "I"],
91
+ ["I1", "Z", "F1"],
92
+ ["Y", "X1"],
93
+ ["X", "Г", "N"],
94
+ ["M", "Г"],
95
+ ],
96
+ "MCLC-2": [
97
+ ["Г", "Y", "F", "L", "I"],
98
+ ["I1", "Z", "F1"],
99
+ ["N", "Г", "M"],
100
+ ],
101
+ "MCLC-3": [
102
+ ["Г", "Y", "F", "H", "Z", "I", "F1"],
103
+ ["H1", "Y1", "X", "Г", "N"],
104
+ ["M", "Г"],
105
+ ],
106
+ "MCLC-4": [
107
+ ["Г", "Y", "F", "H", "Z", "I"],
108
+ ["H1", "Y1", "X", "Г", "N"],
109
+ ["M", "Г"],
110
+ ],
111
+ "MCLC-5": [
112
+ ["Г", "Y", "F", "L", "I"],
113
+ ["I1", "Z", "H", "F1"],
114
+ ["H1", "Y1", "X", "Г", "N"],
115
+ ["M", "Г"],
116
+ ],
117
+ TRI: [
118
+ ["X", "Г", "Y"],
119
+ ["L", "Г", "Z"],
120
+ ["N", "Г", "M"],
121
+ ["R", "Г"],
122
+ ],
123
+ };
124
+ exports.paths = underscore_1.default.each(points, (val, key, obj) => {
125
+ // merge sub-arrays
126
+ // eslint-disable-next-line no-param-reassign
127
+ val = val.reduce((a, b) => a.concat(b));
128
+ underscore_1.default.each(val, (el, idx, list) => {
129
+ list[idx] = {
130
+ point: el,
131
+ // TODO: calculate number of steps based on distance in k-space
132
+ steps: 10,
133
+ };
134
+ });
135
+ obj[key] = val;
136
+ });
@@ -0,0 +1,8 @@
1
+ import { Lattice } from "../lattice";
2
+ /**
3
+ * Returns a list of symmetry points for the specified lattice.
4
+ */
5
+ export declare function symmetryPoints(lattice: Lattice): {
6
+ point: string;
7
+ coordinates: number[];
8
+ }[];