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.
Files changed (28) hide show
  1. {wavesimpro-1.10.2 → wavesimpro-1.16.0}/PKG-INFO +3 -2
  2. {wavesimpro-1.10.2 → wavesimpro-1.16.0}/README.md +55 -54
  3. {wavesimpro-1.10.2 → wavesimpro-1.16.0}/pyproject.toml +1 -1
  4. {wavesimpro-1.10.2 → wavesimpro-1.16.0}/src/wavesimpro/__init__.py +2 -1
  5. {wavesimpro-1.10.2 → wavesimpro-1.16.0}/src/wavesimpro/execute.py +857 -848
  6. {wavesimpro-1.10.2 → wavesimpro-1.16.0}/src/wavesimpro/json_helper.py +1447 -1336
  7. {wavesimpro-1.10.2 → wavesimpro-1.16.0}/src/wavesimpro/runs.py +28 -0
  8. {wavesimpro-1.10.2 → wavesimpro-1.16.0}/src/wavesimpro/simulate.py +4 -0
  9. wavesimpro-1.16.0/src/wavesimpro/studio_mode.py +161 -0
  10. {wavesimpro-1.10.2 → wavesimpro-1.16.0}/src/wavesimpro.egg-info/PKG-INFO +3 -2
  11. {wavesimpro-1.10.2 → wavesimpro-1.16.0}/src/wavesimpro.egg-info/SOURCES.txt +5 -1
  12. wavesimpro-1.16.0/tests/test_boundary_profile.py +33 -0
  13. wavesimpro-1.16.0/tests/test_engine_mode.py +64 -0
  14. wavesimpro-1.16.0/tests/test_studio_mode.py +100 -0
  15. {wavesimpro-1.10.2 → wavesimpro-1.16.0}/setup.cfg +0 -0
  16. {wavesimpro-1.10.2 → wavesimpro-1.16.0}/src/wavesimpro/__main__.py +0 -0
  17. {wavesimpro-1.10.2 → wavesimpro-1.16.0}/src/wavesimpro/binary_utils.py +0 -0
  18. {wavesimpro-1.10.2 → wavesimpro-1.16.0}/src/wavesimpro/client.py +0 -0
  19. {wavesimpro-1.10.2 → wavesimpro-1.16.0}/src/wavesimpro/config.py +0 -0
  20. {wavesimpro-1.10.2 → wavesimpro-1.16.0}/src/wavesimpro/exceptions.py +0 -0
  21. {wavesimpro-1.10.2 → wavesimpro-1.16.0}/src/wavesimpro/model.py +0 -0
  22. {wavesimpro-1.10.2 → wavesimpro-1.16.0}/src/wavesimpro/py.typed +0 -0
  23. {wavesimpro-1.10.2 → wavesimpro-1.16.0}/src/wavesimpro/setup.py +0 -0
  24. {wavesimpro-1.10.2 → wavesimpro-1.16.0}/src/wavesimpro/validate.py +0 -0
  25. {wavesimpro-1.10.2 → wavesimpro-1.16.0}/src/wavesimpro.egg-info/dependency_links.txt +0 -0
  26. {wavesimpro-1.10.2 → wavesimpro-1.16.0}/src/wavesimpro.egg-info/requires.txt +0 -0
  27. {wavesimpro-1.10.2 → wavesimpro-1.16.0}/src/wavesimpro.egg-info/top_level.txt +0 -0
  28. {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.10.2
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
- sources=[wp.create_mode_source("in", 0, 0, -8.0, polarization="X")],
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
- sources=[wp.create_mode_source("in", 0, 0, -8.0, polarization="X")],
31
- monitors=[wp.create_monitor("out", 0, 0, 8.0, 10, 10, 0)],
32
- )
33
- run = wp.simulate(props, name="strip waveguide")
34
- field = wp.read_binary_field(run.download("output.bin"))
35
- ```
36
-
37
- ## What the API covers
38
-
39
- - Setup helpers for domains, media, primitives (box, sphere, ellipsoid, cylinder, cone,
40
- N-sided prism, STL, GDSII layouts, voxel arrays), sources (point, plane wave, Gaussian beam,
41
- custom field, custom-from-file, engine-solved waveguide mode) and monitors:
42
- `create_box_primitive`, `create_sphere_primitive`, `create_ellipsoid_primitive`,
43
- `create_cylinder_primitive`, `create_cone_primitive`, `create_prism_primitive`,
44
- `create_stl_primitive`, `create_gds_primitive` (with `create_gds_layer_config` /
45
- `create_gds_structure_override`), `create_voxels_model_primitive`.
46
- - Per-primitive sub-pixel flag (`subpixel=True/False` on every shape, STL and GDSII helper)
47
- to choose which shapes get smoothed interfaces. Off by default: a setup with no averaged
48
- shape is voxelised exactly as before 1.10 and runs on every compute node.
49
- - Per-axis pixel sizes (`pixel_size=[dx, dy, dz]`) and sub-pixel permittivity averaging
50
- (`subpixel_factor=`), when the compute node supports them.
51
- - Preflight memory check and cost estimate before a run.
52
- - Binary upload/download helpers for permittivity volumes, source fields and monitors.
53
-
54
- See `CHANGELOG.md` for what each version added. Issues and feature requests: support@rayfos.com.
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.10.2"
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.10.2"
58
+ __version__ = "1.16.0"
58
59
  __all__ = [
59
60
  # Client
60
61
  "RayfosClient",