@spglib/moyo-wasm 0.10.0 → 0.12.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.
- package/README.md +24 -26
- package/moyo_wasm.d.ts +68 -0
- package/moyo_wasm.js +54 -0
- package/moyo_wasm_bg.wasm +0 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,22 +1,26 @@
|
|
|
1
|
-
#
|
|
1
|
+
# moyo-wasm
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[](https://www.npmjs.com/package/@spglib/moyo-wasm)
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
JavaScript and WebAssembly interface of [moyo](https://github.com/spglib/moyo), a fast and robust crystal symmetry finder.
|
|
6
|
+
|
|
7
|
+
- npm: <https://www.npmjs.com/package/@spglib/moyo-wasm>
|
|
6
8
|
|
|
7
|
-
|
|
9
|
+
## Installation
|
|
8
10
|
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
# or from cloned repo during development
|
|
12
|
-
|
|
11
|
+
```shell
|
|
12
|
+
npm install @spglib/moyo-wasm
|
|
13
|
+
# or from a cloned repo during development
|
|
14
|
+
npm install file:/path/to/moyo/moyo-wasm/pkg
|
|
13
15
|
```
|
|
14
16
|
|
|
17
|
+
## Usage
|
|
18
|
+
|
|
15
19
|
Initialize and analyze a structure:
|
|
16
20
|
|
|
17
21
|
```ts
|
|
18
|
-
import init, { analyze_cell, type MoyoDataset, type MoyoCell } from 'moyo-wasm'
|
|
19
|
-
import wasm_url from 'moyo-wasm/moyo_wasm_bg.wasm?url'
|
|
22
|
+
import init, { analyze_cell, type MoyoDataset, type MoyoCell } from '@spglib/moyo-wasm'
|
|
23
|
+
import wasm_url from '@spglib/moyo-wasm/moyo_wasm_bg.wasm?url'
|
|
20
24
|
|
|
21
25
|
await init(wasm_url)
|
|
22
26
|
|
|
@@ -36,24 +40,18 @@ console.log(`Wyckoffs: ${result.wyckoffs.join(', ')}`)
|
|
|
36
40
|
|
|
37
41
|
The package exports TypeScript types generated from Rust (e.g. `MoyoDataset`).
|
|
38
42
|
|
|
39
|
-
##
|
|
43
|
+
## Development
|
|
40
44
|
|
|
41
|
-
|
|
42
|
-
wasm-pack build moyo-wasm --target web --release
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
The package code ready for publishing is in `moyo-wasm/pkg`.
|
|
45
|
+
Run from the repo root with `just` (or the equivalent npm commands from this directory):
|
|
46
46
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
# Install dependencies
|
|
52
|
-
npm install
|
|
53
|
-
# Run tests
|
|
54
|
-
npm test
|
|
47
|
+
```shell
|
|
48
|
+
just js-install # npm install
|
|
49
|
+
just js-build # wasm-pack build --target web --release --scope spglib
|
|
50
|
+
just js-test # npm test
|
|
55
51
|
```
|
|
56
52
|
|
|
57
|
-
|
|
53
|
+
The package code ready for publishing is generated in `moyo-wasm/pkg`. It is published to npm by CI when a new git tag is pushed to the monorepo.
|
|
54
|
+
|
|
55
|
+
## How to cite moyo-wasm
|
|
58
56
|
|
|
59
|
-
|
|
57
|
+
See the citation information in [the root README](https://github.com/spglib/moyo/blob/main/README.md)
|
package/moyo_wasm.d.ts
CHANGED
|
@@ -81,6 +81,25 @@ export interface MoyoLayerHallSymbolEntry {
|
|
|
81
81
|
centering: MoyoLayerCentering;
|
|
82
82
|
}
|
|
83
83
|
|
|
84
|
+
export interface MoyoLayerWyckoffPosition {
|
|
85
|
+
/**
|
|
86
|
+
* Multiplicity in the conventional layer cell.
|
|
87
|
+
*/
|
|
88
|
+
multiplicity: number;
|
|
89
|
+
/**
|
|
90
|
+
* Wyckoff letter.
|
|
91
|
+
*/
|
|
92
|
+
letter: string;
|
|
93
|
+
/**
|
|
94
|
+
* Site-symmetry symbol.
|
|
95
|
+
*/
|
|
96
|
+
site_symmetry: string;
|
|
97
|
+
/**
|
|
98
|
+
* Representative coordinate triplet (e.g. `x,y,z`).
|
|
99
|
+
*/
|
|
100
|
+
coordinates: string;
|
|
101
|
+
}
|
|
102
|
+
|
|
84
103
|
export interface MoyoMagneticHallSymbolEntry {
|
|
85
104
|
uni_number: number;
|
|
86
105
|
magnetic_hall_symbol: string;
|
|
@@ -120,6 +139,25 @@ export interface MoyoSpaceGroupType {
|
|
|
120
139
|
crystal_family: string;
|
|
121
140
|
}
|
|
122
141
|
|
|
142
|
+
export interface MoyoWyckoffPosition {
|
|
143
|
+
/**
|
|
144
|
+
* Multiplicity in the conventional cell.
|
|
145
|
+
*/
|
|
146
|
+
multiplicity: number;
|
|
147
|
+
/**
|
|
148
|
+
* Wyckoff letter.
|
|
149
|
+
*/
|
|
150
|
+
letter: string;
|
|
151
|
+
/**
|
|
152
|
+
* Site-symmetry symbol.
|
|
153
|
+
*/
|
|
154
|
+
site_symmetry: string;
|
|
155
|
+
/**
|
|
156
|
+
* Representative coordinate triplet (e.g. `x,y,z`).
|
|
157
|
+
*/
|
|
158
|
+
coordinates: string;
|
|
159
|
+
}
|
|
160
|
+
|
|
123
161
|
export type AngleTolerance = { type: "Radian"; value: number } | { type: "Default" };
|
|
124
162
|
|
|
125
163
|
export type MoyoCentering = "P" | "A" | "B" | "C" | "I" | "R" | "F";
|
|
@@ -141,6 +179,12 @@ export function analyze_cell(cell_json: string, symprec: number, setting: string
|
|
|
141
179
|
*/
|
|
142
180
|
export function arithmetic_crystal_class(arithmetic_number: number): MoyoArithmeticCrystalClass;
|
|
143
181
|
|
|
182
|
+
/**
|
|
183
|
+
* Return all Hall-symbol entries for the given ITA space-group `number` (1 - 230),
|
|
184
|
+
* ordered by Hall number. Each entry corresponds to one setting of the space group.
|
|
185
|
+
*/
|
|
186
|
+
export function hall_symbol_entries_from_number(number: number): MoyoHallSymbolEntry[];
|
|
187
|
+
|
|
144
188
|
/**
|
|
145
189
|
* Return the Hall-symbol entry for the given `hall_number` (1 - 530).
|
|
146
190
|
*/
|
|
@@ -156,11 +200,24 @@ export function layer_arithmetic_crystal_class(arithmetic_number: number): MoyoL
|
|
|
156
200
|
*/
|
|
157
201
|
export function layer_group_type(number: number): MoyoLayerGroupType;
|
|
158
202
|
|
|
203
|
+
/**
|
|
204
|
+
* Return all layer Hall-symbol entries for the given layer-group `number` (1 - 80),
|
|
205
|
+
* ordered by Hall number. Each entry corresponds to one setting of the layer group.
|
|
206
|
+
*/
|
|
207
|
+
export function layer_hall_symbol_entries_from_number(number: number): MoyoLayerHallSymbolEntry[];
|
|
208
|
+
|
|
159
209
|
/**
|
|
160
210
|
* Return the layer Hall-symbol entry for the given `hall_number` (1 - 116).
|
|
161
211
|
*/
|
|
162
212
|
export function layer_hall_symbol_entry(hall_number: number): MoyoLayerHallSymbolEntry;
|
|
163
213
|
|
|
214
|
+
/**
|
|
215
|
+
* Return all Wyckoff positions for the given layer Hall number (1 - 116), ordered
|
|
216
|
+
* general-position-first then descending multiplicity. Returns an empty array for
|
|
217
|
+
* unknown Hall numbers.
|
|
218
|
+
*/
|
|
219
|
+
export function layer_wyckoff_positions(hall_number: number): MoyoLayerWyckoffPosition[];
|
|
220
|
+
|
|
164
221
|
/**
|
|
165
222
|
* Return the magnetic Hall-symbol entry for the given `uni_number` (1 - 1651).
|
|
166
223
|
*/
|
|
@@ -191,18 +248,29 @@ export function operations_from_number(number: number, setting: MoyoSetting, pri
|
|
|
191
248
|
*/
|
|
192
249
|
export function space_group_type(number: number): MoyoSpaceGroupType;
|
|
193
250
|
|
|
251
|
+
/**
|
|
252
|
+
* Return all Wyckoff positions for the given `hall_number` (1 - 530), ordered
|
|
253
|
+
* general-position-first then descending multiplicity. Returns an empty array for
|
|
254
|
+
* unknown Hall numbers.
|
|
255
|
+
*/
|
|
256
|
+
export function wyckoff_positions(hall_number: number): MoyoWyckoffPosition[];
|
|
257
|
+
|
|
194
258
|
export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;
|
|
195
259
|
|
|
196
260
|
export interface InitOutput {
|
|
197
261
|
readonly memory: WebAssembly.Memory;
|
|
198
262
|
readonly layer_arithmetic_crystal_class: (a: number) => [number, number, number];
|
|
199
263
|
readonly layer_group_type: (a: number) => [number, number, number];
|
|
264
|
+
readonly layer_hall_symbol_entries_from_number: (a: number) => [number, number];
|
|
200
265
|
readonly layer_hall_symbol_entry: (a: number) => [number, number, number];
|
|
266
|
+
readonly layer_wyckoff_positions: (a: number) => [number, number];
|
|
201
267
|
readonly operations_from_layer_number: (a: number, b: any, c: number) => [number, number, number, number];
|
|
202
268
|
readonly arithmetic_crystal_class: (a: number) => [number, number, number];
|
|
269
|
+
readonly hall_symbol_entries_from_number: (a: number) => [number, number];
|
|
203
270
|
readonly hall_symbol_entry: (a: number) => [number, number, number];
|
|
204
271
|
readonly operations_from_number: (a: number, b: any, c: number) => [number, number, number, number];
|
|
205
272
|
readonly space_group_type: (a: number) => [number, number, number];
|
|
273
|
+
readonly wyckoff_positions: (a: number) => [number, number];
|
|
206
274
|
readonly analyze_cell: (a: number, b: number, c: number, d: number, e: number) => [number, number, number];
|
|
207
275
|
readonly magnetic_hall_symbol_entry: (a: number) => [number, number, number];
|
|
208
276
|
readonly magnetic_operations_from_uni_number: (a: number, b: number) => [number, number, number, number];
|
package/moyo_wasm.js
CHANGED
|
@@ -32,6 +32,19 @@ export function arithmetic_crystal_class(arithmetic_number) {
|
|
|
32
32
|
return takeFromExternrefTable0(ret[0]);
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
+
/**
|
|
36
|
+
* Return all Hall-symbol entries for the given ITA space-group `number` (1 - 230),
|
|
37
|
+
* ordered by Hall number. Each entry corresponds to one setting of the space group.
|
|
38
|
+
* @param {number} number
|
|
39
|
+
* @returns {MoyoHallSymbolEntry[]}
|
|
40
|
+
*/
|
|
41
|
+
export function hall_symbol_entries_from_number(number) {
|
|
42
|
+
const ret = wasm.hall_symbol_entries_from_number(number);
|
|
43
|
+
var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
|
|
44
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
|
|
45
|
+
return v1;
|
|
46
|
+
}
|
|
47
|
+
|
|
35
48
|
/**
|
|
36
49
|
* Return the Hall-symbol entry for the given `hall_number` (1 - 530).
|
|
37
50
|
* @param {number} hall_number
|
|
@@ -71,6 +84,19 @@ export function layer_group_type(number) {
|
|
|
71
84
|
return takeFromExternrefTable0(ret[0]);
|
|
72
85
|
}
|
|
73
86
|
|
|
87
|
+
/**
|
|
88
|
+
* Return all layer Hall-symbol entries for the given layer-group `number` (1 - 80),
|
|
89
|
+
* ordered by Hall number. Each entry corresponds to one setting of the layer group.
|
|
90
|
+
* @param {number} number
|
|
91
|
+
* @returns {MoyoLayerHallSymbolEntry[]}
|
|
92
|
+
*/
|
|
93
|
+
export function layer_hall_symbol_entries_from_number(number) {
|
|
94
|
+
const ret = wasm.layer_hall_symbol_entries_from_number(number);
|
|
95
|
+
var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
|
|
96
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
|
|
97
|
+
return v1;
|
|
98
|
+
}
|
|
99
|
+
|
|
74
100
|
/**
|
|
75
101
|
* Return the layer Hall-symbol entry for the given `hall_number` (1 - 116).
|
|
76
102
|
* @param {number} hall_number
|
|
@@ -84,6 +110,20 @@ export function layer_hall_symbol_entry(hall_number) {
|
|
|
84
110
|
return takeFromExternrefTable0(ret[0]);
|
|
85
111
|
}
|
|
86
112
|
|
|
113
|
+
/**
|
|
114
|
+
* Return all Wyckoff positions for the given layer Hall number (1 - 116), ordered
|
|
115
|
+
* general-position-first then descending multiplicity. Returns an empty array for
|
|
116
|
+
* unknown Hall numbers.
|
|
117
|
+
* @param {number} hall_number
|
|
118
|
+
* @returns {MoyoLayerWyckoffPosition[]}
|
|
119
|
+
*/
|
|
120
|
+
export function layer_wyckoff_positions(hall_number) {
|
|
121
|
+
const ret = wasm.layer_wyckoff_positions(hall_number);
|
|
122
|
+
var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
|
|
123
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
|
|
124
|
+
return v1;
|
|
125
|
+
}
|
|
126
|
+
|
|
87
127
|
/**
|
|
88
128
|
* Return the magnetic Hall-symbol entry for the given `uni_number` (1 - 1651).
|
|
89
129
|
* @param {number} uni_number
|
|
@@ -172,6 +212,20 @@ export function space_group_type(number) {
|
|
|
172
212
|
}
|
|
173
213
|
return takeFromExternrefTable0(ret[0]);
|
|
174
214
|
}
|
|
215
|
+
|
|
216
|
+
/**
|
|
217
|
+
* Return all Wyckoff positions for the given `hall_number` (1 - 530), ordered
|
|
218
|
+
* general-position-first then descending multiplicity. Returns an empty array for
|
|
219
|
+
* unknown Hall numbers.
|
|
220
|
+
* @param {number} hall_number
|
|
221
|
+
* @returns {MoyoWyckoffPosition[]}
|
|
222
|
+
*/
|
|
223
|
+
export function wyckoff_positions(hall_number) {
|
|
224
|
+
const ret = wasm.wyckoff_positions(hall_number);
|
|
225
|
+
var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
|
|
226
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
|
|
227
|
+
return v1;
|
|
228
|
+
}
|
|
175
229
|
function __wbg_get_imports() {
|
|
176
230
|
const import0 = {
|
|
177
231
|
__proto__: null,
|
package/moyo_wasm_bg.wasm
CHANGED
|
Binary file
|
package/package.json
CHANGED