wavesimpro 1.6.2__tar.gz → 1.9.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.9.0/PKG-INFO +69 -0
- wavesimpro-1.9.0/README.md +46 -0
- {wavesimpro-1.6.2 → wavesimpro-1.9.0}/pyproject.toml +1 -1
- {wavesimpro-1.6.2 → wavesimpro-1.9.0}/src/wavesimpro/__init__.py +3 -1
- {wavesimpro-1.6.2 → wavesimpro-1.9.0}/src/wavesimpro/binary_utils.py +630 -630
- {wavesimpro-1.6.2 → wavesimpro-1.9.0}/src/wavesimpro/client.py +48 -33
- {wavesimpro-1.6.2 → wavesimpro-1.9.0}/src/wavesimpro/execute.py +848 -823
- {wavesimpro-1.6.2 → wavesimpro-1.9.0}/src/wavesimpro/json_helper.py +127 -6
- {wavesimpro-1.6.2 → wavesimpro-1.9.0}/src/wavesimpro/setup.py +4 -4
- {wavesimpro-1.6.2 → wavesimpro-1.9.0}/src/wavesimpro/simulate.py +11 -7
- {wavesimpro-1.6.2 → wavesimpro-1.9.0}/src/wavesimpro/validate.py +46 -21
- wavesimpro-1.9.0/src/wavesimpro.egg-info/PKG-INFO +69 -0
- {wavesimpro-1.6.2 → wavesimpro-1.9.0}/src/wavesimpro.egg-info/SOURCES.txt +1 -0
- wavesimpro-1.6.2/PKG-INFO +0 -22
- wavesimpro-1.6.2/src/wavesimpro.egg-info/PKG-INFO +0 -22
- {wavesimpro-1.6.2 → wavesimpro-1.9.0}/setup.cfg +0 -0
- {wavesimpro-1.6.2 → wavesimpro-1.9.0}/src/wavesimpro/__main__.py +0 -0
- {wavesimpro-1.6.2 → wavesimpro-1.9.0}/src/wavesimpro/config.py +0 -0
- {wavesimpro-1.6.2 → wavesimpro-1.9.0}/src/wavesimpro/exceptions.py +0 -0
- {wavesimpro-1.6.2 → wavesimpro-1.9.0}/src/wavesimpro/py.typed +0 -0
- {wavesimpro-1.6.2 → wavesimpro-1.9.0}/src/wavesimpro.egg-info/dependency_links.txt +0 -0
- {wavesimpro-1.6.2 → wavesimpro-1.9.0}/src/wavesimpro.egg-info/requires.txt +0 -0
- {wavesimpro-1.6.2 → wavesimpro-1.9.0}/src/wavesimpro.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: wavesimpro
|
|
3
|
+
Version: 1.9.0
|
|
4
|
+
Summary: WavesimPro Python API — cloud execution client for the Rayfos simulation platform
|
|
5
|
+
Author: Rayfos
|
|
6
|
+
Project-URL: Repository, https://github.com/rayfos/wavesimpro
|
|
7
|
+
Keywords: wavesim,simulation,electromagnetic,rayfos,api
|
|
8
|
+
Classifier: Development Status :: 4 - Beta
|
|
9
|
+
Classifier: Intended Audience :: Developers
|
|
10
|
+
Classifier: Intended Audience :: Science/Research
|
|
11
|
+
Classifier: Programming Language :: Python :: 3
|
|
12
|
+
Classifier: Topic :: Scientific/Engineering
|
|
13
|
+
Requires-Python: >=3.8
|
|
14
|
+
Description-Content-Type: text/markdown
|
|
15
|
+
Requires-Dist: numpy>=1.20.0
|
|
16
|
+
Requires-Dist: requests>=2.28.0
|
|
17
|
+
Requires-Dist: python-dotenv>=1.0.0
|
|
18
|
+
Requires-Dist: tqdm>=4.60.0
|
|
19
|
+
Provides-Extra: dev
|
|
20
|
+
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
21
|
+
Requires-Dist: black>=23.0.0; extra == "dev"
|
|
22
|
+
Requires-Dist: mypy>=1.0.0; extra == "dev"
|
|
23
|
+
|
|
24
|
+
# wavesimpro
|
|
25
|
+
|
|
26
|
+
Python client for the Rayfos Wavesim cloud: build a simulation setup, run it on a Rayfos
|
|
27
|
+
compute node, and read the results back as NumPy arrays.
|
|
28
|
+
|
|
29
|
+
Wavesim is a single-wavelength frequency-domain solver (vectorial Maxwell when a polarized
|
|
30
|
+
source is present, scalar Helmholtz otherwise). This package talks to the Rayfos JobServer
|
|
31
|
+
REST API; it does not contain the solver.
|
|
32
|
+
|
|
33
|
+
## Install
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
pip install wavesimpro
|
|
37
|
+
python -m wavesimpro setup # one-time: API key + server URL wizard
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
The wizard stores the credentials; `wavesimpro.configure(api_key=..., api_url=...)` sets
|
|
41
|
+
them for one process instead.
|
|
42
|
+
|
|
43
|
+
## Quick start
|
|
44
|
+
|
|
45
|
+
```python
|
|
46
|
+
import wavesimpro as wp
|
|
47
|
+
|
|
48
|
+
props = wp.create_wavesim_properties(
|
|
49
|
+
wavelength=1.0, pixel_size=0.1, boundary_width=5.0,
|
|
50
|
+
domain=wp.create_simulation_domain(20, 20, 20),
|
|
51
|
+
mediums=[wp.create_medium("Silicon", 3.48, 0.0)],
|
|
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")],
|
|
54
|
+
monitors=[wp.create_monitor("out", 0, 0, 8.0, 10, 10, 0)],
|
|
55
|
+
)
|
|
56
|
+
run = wp.simulate(props, name="strip waveguide")
|
|
57
|
+
field = wp.read_binary_field(run.download("output.bin"))
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## What the API covers
|
|
61
|
+
|
|
62
|
+
- Setup helpers for domains, media, primitives (box, STL, voxel arrays), sources
|
|
63
|
+
(point, plane wave, Gaussian beam, custom field, engine-solved waveguide mode) and monitors.
|
|
64
|
+
- Per-axis pixel sizes (`pixel_size=[dx, dy, dz]`) and sub-pixel permittivity averaging
|
|
65
|
+
(`subpixel_factor=`), when the compute node supports them.
|
|
66
|
+
- Preflight memory check and cost estimate before a run.
|
|
67
|
+
- Binary upload/download helpers for permittivity volumes, source fields and monitors.
|
|
68
|
+
|
|
69
|
+
See `CHANGELOG.md` for what each version added. Issues and feature requests: support@rayfos.com.
|
|
@@ -0,0 +1,46 @@
|
|
|
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, STL, voxel arrays), sources
|
|
40
|
+
(point, plane wave, Gaussian beam, custom field, engine-solved waveguide mode) and monitors.
|
|
41
|
+
- Per-axis pixel sizes (`pixel_size=[dx, dy, dz]`) and sub-pixel permittivity averaging
|
|
42
|
+
(`subpixel_factor=`), when the compute node supports them.
|
|
43
|
+
- Preflight memory check and cost estimate before a run.
|
|
44
|
+
- Binary upload/download helpers for permittivity volumes, source fields and monitors.
|
|
45
|
+
|
|
46
|
+
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.9.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"
|
|
@@ -37,6 +37,7 @@ from .json_helper import (
|
|
|
37
37
|
create_point_source,
|
|
38
38
|
create_plane_wave_source,
|
|
39
39
|
create_gaussian_beam_source,
|
|
40
|
+
create_mode_source,
|
|
40
41
|
create_voxels_model_primitive,
|
|
41
42
|
create_custom_field_source,
|
|
42
43
|
create_custom_from_file_source,
|
|
@@ -45,7 +46,7 @@ from .json_helper import (
|
|
|
45
46
|
parse_progress_data,
|
|
46
47
|
)
|
|
47
48
|
|
|
48
|
-
__version__ = "1.
|
|
49
|
+
__version__ = "1.9.0"
|
|
49
50
|
__all__ = [
|
|
50
51
|
# Client
|
|
51
52
|
"RayfosClient",
|
|
@@ -81,6 +82,7 @@ __all__ = [
|
|
|
81
82
|
"create_point_source",
|
|
82
83
|
"create_plane_wave_source",
|
|
83
84
|
"create_gaussian_beam_source",
|
|
85
|
+
"create_mode_source",
|
|
84
86
|
"create_voxels_model_primitive",
|
|
85
87
|
"create_custom_field_source",
|
|
86
88
|
"create_custom_from_file_source",
|