wavesimpro 1.10.2__tar.gz → 1.16.0__tar.gz
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.
- {wavesimpro-1.10.2 → wavesimpro-1.16.0}/PKG-INFO +3 -2
- {wavesimpro-1.10.2 → wavesimpro-1.16.0}/README.md +55 -54
- {wavesimpro-1.10.2 → wavesimpro-1.16.0}/pyproject.toml +1 -1
- {wavesimpro-1.10.2 → wavesimpro-1.16.0}/src/wavesimpro/__init__.py +2 -1
- {wavesimpro-1.10.2 → wavesimpro-1.16.0}/src/wavesimpro/execute.py +857 -848
- {wavesimpro-1.10.2 → wavesimpro-1.16.0}/src/wavesimpro/json_helper.py +1447 -1336
- {wavesimpro-1.10.2 → wavesimpro-1.16.0}/src/wavesimpro/runs.py +28 -0
- {wavesimpro-1.10.2 → wavesimpro-1.16.0}/src/wavesimpro/simulate.py +4 -0
- wavesimpro-1.16.0/src/wavesimpro/studio_mode.py +161 -0
- {wavesimpro-1.10.2 → wavesimpro-1.16.0}/src/wavesimpro.egg-info/PKG-INFO +3 -2
- {wavesimpro-1.10.2 → wavesimpro-1.16.0}/src/wavesimpro.egg-info/SOURCES.txt +5 -1
- wavesimpro-1.16.0/tests/test_boundary_profile.py +33 -0
- wavesimpro-1.16.0/tests/test_engine_mode.py +64 -0
- wavesimpro-1.16.0/tests/test_studio_mode.py +100 -0
- {wavesimpro-1.10.2 → wavesimpro-1.16.0}/setup.cfg +0 -0
- {wavesimpro-1.10.2 → wavesimpro-1.16.0}/src/wavesimpro/__main__.py +0 -0
- {wavesimpro-1.10.2 → wavesimpro-1.16.0}/src/wavesimpro/binary_utils.py +0 -0
- {wavesimpro-1.10.2 → wavesimpro-1.16.0}/src/wavesimpro/client.py +0 -0
- {wavesimpro-1.10.2 → wavesimpro-1.16.0}/src/wavesimpro/config.py +0 -0
- {wavesimpro-1.10.2 → wavesimpro-1.16.0}/src/wavesimpro/exceptions.py +0 -0
- {wavesimpro-1.10.2 → wavesimpro-1.16.0}/src/wavesimpro/model.py +0 -0
- {wavesimpro-1.10.2 → wavesimpro-1.16.0}/src/wavesimpro/py.typed +0 -0
- {wavesimpro-1.10.2 → wavesimpro-1.16.0}/src/wavesimpro/setup.py +0 -0
- {wavesimpro-1.10.2 → wavesimpro-1.16.0}/src/wavesimpro/validate.py +0 -0
- {wavesimpro-1.10.2 → wavesimpro-1.16.0}/src/wavesimpro.egg-info/dependency_links.txt +0 -0
- {wavesimpro-1.10.2 → wavesimpro-1.16.0}/src/wavesimpro.egg-info/requires.txt +0 -0
- {wavesimpro-1.10.2 → wavesimpro-1.16.0}/src/wavesimpro.egg-info/top_level.txt +0 -0
- {wavesimpro-1.10.2 → wavesimpro-1.16.0}/tests/test_command_wait.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: wavesimpro
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.16.0
|
|
4
4
|
Summary: WavesimPro Python API — cloud execution client for the Rayfos simulation platform
|
|
5
5
|
Author: Rayfos
|
|
6
6
|
Project-URL: Repository, https://github.com/rayfos/wavesimpro
|
|
@@ -50,7 +50,8 @@ props = wp.create_wavesim_properties(
|
|
|
50
50
|
domain=wp.create_simulation_domain(20, 20, 20),
|
|
51
51
|
mediums=[wp.create_medium("Silicon", 3.48, 0.0)],
|
|
52
52
|
primitives=[wp.create_box_primitive("core", 0, 0, 0, 10, 0.5, 20, medium="Silicon")],
|
|
53
|
-
|
|
53
|
+
# TE0 solved by the engine on the z = -6 um voxel layer (index 40 of 200), launched along +z
|
|
54
|
+
sources=[wp.create_mode_source("in", 0, 0, -6.0, axis="z", plane_index=40, polarization="TE")],
|
|
54
55
|
monitors=[wp.create_monitor("out", 0, 0, 8.0, 10, 10, 0)],
|
|
55
56
|
)
|
|
56
57
|
run = wp.simulate(props, name="strip waveguide")
|
|
@@ -1,54 +1,55 @@
|
|
|
1
|
-
# wavesimpro
|
|
2
|
-
|
|
3
|
-
Python client for the Rayfos Wavesim cloud: build a simulation setup, run it on a Rayfos
|
|
4
|
-
compute node, and read the results back as NumPy arrays.
|
|
5
|
-
|
|
6
|
-
Wavesim is a single-wavelength frequency-domain solver (vectorial Maxwell when a polarized
|
|
7
|
-
source is present, scalar Helmholtz otherwise). This package talks to the Rayfos JobServer
|
|
8
|
-
REST API; it does not contain the solver.
|
|
9
|
-
|
|
10
|
-
## Install
|
|
11
|
-
|
|
12
|
-
```bash
|
|
13
|
-
pip install wavesimpro
|
|
14
|
-
python -m wavesimpro setup # one-time: API key + server URL wizard
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
The wizard stores the credentials; `wavesimpro.configure(api_key=..., api_url=...)` sets
|
|
18
|
-
them for one process instead.
|
|
19
|
-
|
|
20
|
-
## Quick start
|
|
21
|
-
|
|
22
|
-
```python
|
|
23
|
-
import wavesimpro as wp
|
|
24
|
-
|
|
25
|
-
props = wp.create_wavesim_properties(
|
|
26
|
-
wavelength=1.0, pixel_size=0.1, boundary_width=5.0,
|
|
27
|
-
domain=wp.create_simulation_domain(20, 20, 20),
|
|
28
|
-
mediums=[wp.create_medium("Silicon", 3.48, 0.0)],
|
|
29
|
-
primitives=[wp.create_box_primitive("core", 0, 0, 0, 10, 0.5, 20, medium="Silicon")],
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
)
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
`
|
|
44
|
-
`
|
|
45
|
-
`
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
-
|
|
53
|
-
|
|
54
|
-
|
|
1
|
+
# wavesimpro
|
|
2
|
+
|
|
3
|
+
Python client for the Rayfos Wavesim cloud: build a simulation setup, run it on a Rayfos
|
|
4
|
+
compute node, and read the results back as NumPy arrays.
|
|
5
|
+
|
|
6
|
+
Wavesim is a single-wavelength frequency-domain solver (vectorial Maxwell when a polarized
|
|
7
|
+
source is present, scalar Helmholtz otherwise). This package talks to the Rayfos JobServer
|
|
8
|
+
REST API; it does not contain the solver.
|
|
9
|
+
|
|
10
|
+
## Install
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
pip install wavesimpro
|
|
14
|
+
python -m wavesimpro setup # one-time: API key + server URL wizard
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
The wizard stores the credentials; `wavesimpro.configure(api_key=..., api_url=...)` sets
|
|
18
|
+
them for one process instead.
|
|
19
|
+
|
|
20
|
+
## Quick start
|
|
21
|
+
|
|
22
|
+
```python
|
|
23
|
+
import wavesimpro as wp
|
|
24
|
+
|
|
25
|
+
props = wp.create_wavesim_properties(
|
|
26
|
+
wavelength=1.0, pixel_size=0.1, boundary_width=5.0,
|
|
27
|
+
domain=wp.create_simulation_domain(20, 20, 20),
|
|
28
|
+
mediums=[wp.create_medium("Silicon", 3.48, 0.0)],
|
|
29
|
+
primitives=[wp.create_box_primitive("core", 0, 0, 0, 10, 0.5, 20, medium="Silicon")],
|
|
30
|
+
# TE0 solved by the engine on the z = -6 um voxel layer (index 40 of 200), launched along +z
|
|
31
|
+
sources=[wp.create_mode_source("in", 0, 0, -6.0, axis="z", plane_index=40, polarization="TE")],
|
|
32
|
+
monitors=[wp.create_monitor("out", 0, 0, 8.0, 10, 10, 0)],
|
|
33
|
+
)
|
|
34
|
+
run = wp.simulate(props, name="strip waveguide")
|
|
35
|
+
field = wp.read_binary_field(run.download("output.bin"))
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## What the API covers
|
|
39
|
+
|
|
40
|
+
- Setup helpers for domains, media, primitives (box, sphere, ellipsoid, cylinder, cone,
|
|
41
|
+
N-sided prism, STL, GDSII layouts, voxel arrays), sources (point, plane wave, Gaussian beam,
|
|
42
|
+
custom field, custom-from-file, engine-solved waveguide mode) and monitors:
|
|
43
|
+
`create_box_primitive`, `create_sphere_primitive`, `create_ellipsoid_primitive`,
|
|
44
|
+
`create_cylinder_primitive`, `create_cone_primitive`, `create_prism_primitive`,
|
|
45
|
+
`create_stl_primitive`, `create_gds_primitive` (with `create_gds_layer_config` /
|
|
46
|
+
`create_gds_structure_override`), `create_voxels_model_primitive`.
|
|
47
|
+
- Per-primitive sub-pixel flag (`subpixel=True/False` on every shape, STL and GDSII helper)
|
|
48
|
+
to choose which shapes get smoothed interfaces. Off by default: a setup with no averaged
|
|
49
|
+
shape is voxelised exactly as before 1.10 and runs on every compute node.
|
|
50
|
+
- Per-axis pixel sizes (`pixel_size=[dx, dy, dz]`) and sub-pixel permittivity averaging
|
|
51
|
+
(`subpixel_factor=`), when the compute node supports them.
|
|
52
|
+
- Preflight memory check and cost estimate before a run.
|
|
53
|
+
- Binary upload/download helpers for permittivity volumes, source fields and monitors.
|
|
54
|
+
|
|
55
|
+
See `CHANGELOG.md` for what each version added. Issues and feature requests: support@rayfos.com.
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "wavesimpro"
|
|
7
|
-
version = "1.
|
|
7
|
+
version = "1.16.0"
|
|
8
8
|
description = "WavesimPro Python API — cloud execution client for the Rayfos simulation platform"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.8"
|
|
@@ -29,6 +29,7 @@ from .binary_utils import (
|
|
|
29
29
|
from .validate import validate_parameters, ParameterValidationError
|
|
30
30
|
from .execute import execute_via_api
|
|
31
31
|
from .simulate import simulate, simulate_pro, configure
|
|
32
|
+
from .studio_mode import solve_studio_mode, add_studio_mode_source, mode_slice
|
|
32
33
|
from .json_helper import (
|
|
33
34
|
create_simulation_domain,
|
|
34
35
|
create_stl_primitive,
|
|
@@ -54,7 +55,7 @@ from .json_helper import (
|
|
|
54
55
|
parse_progress_data,
|
|
55
56
|
)
|
|
56
57
|
|
|
57
|
-
__version__ = "1.
|
|
58
|
+
__version__ = "1.16.0"
|
|
58
59
|
__all__ = [
|
|
59
60
|
# Client
|
|
60
61
|
"RayfosClient",
|