ansys-speos-core 0.5.1__tar.gz → 0.6.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 (46) hide show
  1. {ansys_speos_core-0.5.1 → ansys_speos_core-0.6.0}/PKG-INFO +24 -12
  2. {ansys_speos_core-0.5.1 → ansys_speos_core-0.6.0}/README.rst +16 -4
  3. {ansys_speos_core-0.5.1 → ansys_speos_core-0.6.0}/pyproject.toml +8 -8
  4. {ansys_speos_core-0.5.1 → ansys_speos_core-0.6.0}/src/ansys/speos/core/body.py +30 -0
  5. {ansys_speos_core-0.5.1 → ansys_speos_core-0.6.0}/src/ansys/speos/core/bsdf.py +436 -45
  6. {ansys_speos_core-0.5.1 → ansys_speos_core-0.6.0}/src/ansys/speos/core/generic/general_methods.py +83 -0
  7. {ansys_speos_core-0.5.1 → ansys_speos_core-0.6.0}/src/ansys/speos/core/generic/visualization_methods.py +147 -14
  8. {ansys_speos_core-0.5.1 → ansys_speos_core-0.6.0}/src/ansys/speos/core/kernel/face.py +156 -45
  9. {ansys_speos_core-0.5.1 → ansys_speos_core-0.6.0}/src/ansys/speos/core/kernel/proto_message_utils.py +2 -0
  10. {ansys_speos_core-0.5.1 → ansys_speos_core-0.6.0}/src/ansys/speos/core/kernel/scene.py +16 -2
  11. {ansys_speos_core-0.5.1 → ansys_speos_core-0.6.0}/src/ansys/speos/core/lxp.py +1 -52
  12. {ansys_speos_core-0.5.1 → ansys_speos_core-0.6.0}/src/ansys/speos/core/project.py +278 -177
  13. {ansys_speos_core-0.5.1 → ansys_speos_core-0.6.0}/src/ansys/speos/core/proto_message_utils.py +5 -2
  14. {ansys_speos_core-0.5.1 → ansys_speos_core-0.6.0}/src/ansys/speos/core/sensor.py +734 -33
  15. {ansys_speos_core-0.5.1 → ansys_speos_core-0.6.0}/src/ansys/speos/core/simulation.py +204 -5
  16. {ansys_speos_core-0.5.1 → ansys_speos_core-0.6.0}/src/ansys/speos/core/source.py +828 -3
  17. ansys_speos_core-0.6.0/src/ansys/speos/core/workflow/open_result.py +404 -0
  18. ansys_speos_core-0.5.1/src/ansys/speos/core/workflow/open_result.py +0 -144
  19. {ansys_speos_core-0.5.1 → ansys_speos_core-0.6.0}/LICENSE +0 -0
  20. {ansys_speos_core-0.5.1 → ansys_speos_core-0.6.0}/src/ansys/speos/core/__init__.py +0 -0
  21. {ansys_speos_core-0.5.1 → ansys_speos_core-0.6.0}/src/ansys/speos/core/face.py +0 -0
  22. {ansys_speos_core-0.5.1 → ansys_speos_core-0.6.0}/src/ansys/speos/core/generic/constants.py +0 -0
  23. {ansys_speos_core-0.5.1 → ansys_speos_core-0.6.0}/src/ansys/speos/core/geo_ref.py +0 -0
  24. {ansys_speos_core-0.5.1 → ansys_speos_core-0.6.0}/src/ansys/speos/core/intensity.py +0 -0
  25. {ansys_speos_core-0.5.1 → ansys_speos_core-0.6.0}/src/ansys/speos/core/kernel/__init__.py +0 -0
  26. {ansys_speos_core-0.5.1 → ansys_speos_core-0.6.0}/src/ansys/speos/core/kernel/body.py +0 -0
  27. {ansys_speos_core-0.5.1 → ansys_speos_core-0.6.0}/src/ansys/speos/core/kernel/client.py +0 -0
  28. {ansys_speos_core-0.5.1 → ansys_speos_core-0.6.0}/src/ansys/speos/core/kernel/crud.py +0 -0
  29. {ansys_speos_core-0.5.1 → ansys_speos_core-0.6.0}/src/ansys/speos/core/kernel/intensity_template.py +0 -0
  30. {ansys_speos_core-0.5.1 → ansys_speos_core-0.6.0}/src/ansys/speos/core/kernel/job.py +0 -0
  31. {ansys_speos_core-0.5.1 → ansys_speos_core-0.6.0}/src/ansys/speos/core/kernel/part.py +0 -0
  32. {ansys_speos_core-0.5.1 → ansys_speos_core-0.6.0}/src/ansys/speos/core/kernel/sensor_template.py +0 -0
  33. {ansys_speos_core-0.5.1 → ansys_speos_core-0.6.0}/src/ansys/speos/core/kernel/simulation_template.py +0 -0
  34. {ansys_speos_core-0.5.1 → ansys_speos_core-0.6.0}/src/ansys/speos/core/kernel/sop_template.py +0 -0
  35. {ansys_speos_core-0.5.1 → ansys_speos_core-0.6.0}/src/ansys/speos/core/kernel/source_template.py +0 -0
  36. {ansys_speos_core-0.5.1 → ansys_speos_core-0.6.0}/src/ansys/speos/core/kernel/spectrum.py +0 -0
  37. {ansys_speos_core-0.5.1 → ansys_speos_core-0.6.0}/src/ansys/speos/core/kernel/vop_template.py +0 -0
  38. {ansys_speos_core-0.5.1 → ansys_speos_core-0.6.0}/src/ansys/speos/core/launcher.py +0 -0
  39. {ansys_speos_core-0.5.1 → ansys_speos_core-0.6.0}/src/ansys/speos/core/logger.py +0 -0
  40. {ansys_speos_core-0.5.1 → ansys_speos_core-0.6.0}/src/ansys/speos/core/opt_prop.py +0 -0
  41. {ansys_speos_core-0.5.1 → ansys_speos_core-0.6.0}/src/ansys/speos/core/part.py +0 -0
  42. {ansys_speos_core-0.5.1 → ansys_speos_core-0.6.0}/src/ansys/speos/core/py.typed +0 -0
  43. {ansys_speos_core-0.5.1 → ansys_speos_core-0.6.0}/src/ansys/speos/core/spectrum.py +0 -0
  44. {ansys_speos_core-0.5.1 → ansys_speos_core-0.6.0}/src/ansys/speos/core/speos.py +0 -0
  45. {ansys_speos_core-0.5.1 → ansys_speos_core-0.6.0}/src/ansys/speos/core/workflow/__init__.py +0 -0
  46. {ansys_speos_core-0.5.1 → ansys_speos_core-0.6.0}/src/ansys/speos/core/workflow/combine_speos.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ansys-speos-core
3
- Version: 0.5.1
3
+ Version: 0.6.0
4
4
  Summary: A Python wrapper for Ansys Speos
5
5
  Author-email: "ANSYS, Inc." <pyansys.core@ansys.com>
6
6
  Maintainer-email: "ANSYS, Inc." <pyansys.core@ansys.com>
@@ -23,11 +23,11 @@ License-File: LICENSE
23
23
  Requires-Dist: protobuf>=3.20,<7
24
24
  Requires-Dist: grpcio>=1.50.0,<1.71
25
25
  Requires-Dist: grpcio-health-checking>=1.45.0,<1.68
26
- Requires-Dist: ansys-api-speos==0.14.2
26
+ Requires-Dist: ansys-api-speos==0.15.2
27
27
  Requires-Dist: ansys-tools-path>=0.3.1
28
28
  Requires-Dist: numpy>=1.20.3,<3
29
29
  Requires-Dist: comtypes>=1.4,<1.5
30
- Requires-Dist: ansys-sphinx-theme==1.4.4 ; extra == "doc"
30
+ Requires-Dist: ansys-sphinx-theme==1.5.2 ; extra == "doc"
31
31
  Requires-Dist: numpydoc==1.8.0 ; extra == "doc"
32
32
  Requires-Dist: Sphinx==8.1.3 ; extra == "doc"
33
33
  Requires-Dist: sphinx-copybutton==0.5.2 ; extra == "doc"
@@ -37,8 +37,8 @@ Requires-Dist: sphinx-jinja==2.0.2 ; extra == "doc"
37
37
  Requires-Dist: sphinxcontrib-mermaid==1.0.0 ; extra == "doc"
38
38
  Requires-Dist: myst-parser==4.0.1 ; extra == "doc"
39
39
  Requires-Dist: nbsphinx==0.9.7 ; extra == "doc"
40
- Requires-Dist: jupytext==1.17.1 ; extra == "doc"
41
- Requires-Dist: jupyterlab==4.4.2 ; extra == "doc"
40
+ Requires-Dist: jupytext==1.17.2 ; extra == "doc"
41
+ Requires-Dist: jupyterlab==4.4.3 ; extra == "doc"
42
42
  Requires-Dist: jupyter-server==2.16.0 ; extra == "doc"
43
43
  Requires-Dist: nbconvert==7.16.6 ; extra == "doc"
44
44
  Requires-Dist: pyvista[jupyter]>=0.43,<0.46 ; extra == "doc"
@@ -50,13 +50,13 @@ Requires-Dist: jupyterlab>=3 ; extra == "jupyter"
50
50
  Requires-Dist: ipywidgets ; extra == "jupyter"
51
51
  Requires-Dist: pyvista[jupyter]>=0.43,<0.46 ; extra == "jupyter"
52
52
  Requires-Dist: ansys-tools-visualization-interface>=0.8.3 ; extra == "jupyter"
53
- Requires-Dist: notebook==7.4.2 ; extra == "jupyter"
53
+ Requires-Dist: notebook==7.4.3 ; extra == "jupyter"
54
54
  Requires-Dist: psutil==7.0.0 ; extra == "tests"
55
- Requires-Dist: pytest==8.3.5 ; extra == "tests"
55
+ Requires-Dist: pytest==8.4.1 ; extra == "tests"
56
56
  Requires-Dist: pyvista>=0.40.0,<0.46 ; extra == "tests"
57
57
  Requires-Dist: ansys-tools-visualization-interface>=0.8.3 ; extra == "tests"
58
58
  Requires-Dist: ansys-platform-instancemanagement>=1.0.3 ; extra == "tests"
59
- Requires-Dist: pytest-cov==6.1.1 ; extra == "tests"
59
+ Requires-Dist: pytest-cov==6.2.1 ; extra == "tests"
60
60
  Project-URL: Changelog, https://github.com/ansys/pyspeos/blob/main/doc/source/changelog.rst
61
61
  Project-URL: Discussions, https://github.com/ansys/pyspeos/discussions
62
62
  Project-URL: Documentation, https://speos.docs.pyansys.com/
@@ -70,12 +70,24 @@ Provides-Extra: tests
70
70
 
71
71
  PySpeos library
72
72
  ================
73
- |pyansys| |GH-CI| |MIT| |ruff|
73
+ |pyansys| |python| |pypi| |codecov| |GH-CI| |MIT| |ruff|
74
74
 
75
75
  .. |pyansys| image:: https://img.shields.io/badge/Py-Ansys-ffc107.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAABDklEQVQ4jWNgoDfg5mD8vE7q/3bpVyskbW0sMRUwofHD7Dh5OBkZGBgW7/3W2tZpa2tLQEOyOzeEsfumlK2tbVpaGj4N6jIs1lpsDAwMJ278sveMY2BgCA0NFRISwqkhyQ1q/Nyd3zg4OBgYGNjZ2ePi4rB5loGBhZnhxTLJ/9ulv26Q4uVk1NXV/f///////69du4Zdg78lx//t0v+3S88rFISInD59GqIH2esIJ8G9O2/XVwhjzpw5EAam1xkkBJn/bJX+v1365hxxuCAfH9+3b9/+////48cPuNehNsS7cDEzMTAwMMzb+Q2u4dOnT2vWrMHu9ZtzxP9vl/69RVpCkBlZ3N7enoDXBwEAAA+YYitOilMVAAAAAElFTkSuQmCC
76
76
  :target: https://docs.pyansys.com/
77
77
  :alt: PyAnsys
78
78
 
79
+ .. |python| image:: https://img.shields.io/pypi/pyversions/ansys-speos-core?logo=pypi
80
+ :target: https://pypi.org/project/ansys-speos-core/
81
+ :alt: Python
82
+
83
+ .. |pypi| image:: https://img.shields.io/pypi/v/ansys-speos-core.svg?logo=python&logoColor=white&label=PyPI
84
+ :target: https://pypi.org/project/ansys-speos-core
85
+ :alt: PyPI
86
+
87
+ .. |codecov| image:: https://codecov.io/github/ansys/pyspeos/graph/badge.svg?token=34FKDS6ZKJ
88
+ :target: https://codecov.io/github/ansys/pyspeos
89
+ :alt: Codecov
90
+
79
91
  .. |GH-CI| image:: https://github.com/ansys/pyspeos/actions/workflows/ci_cd.yml/badge.svg
80
92
  :target: https://github.com/ansys/pyspeos/actions/workflows/ci_cd.yml
81
93
 
@@ -201,12 +213,12 @@ Then, to launch SpeosRPC server with product version 2025.1, you can run:
201
213
  export LICENSE_SERVER=1055@XXX.XXX.XXX.XXX
202
214
 
203
215
  cat GH_TOKEN.txt | docker login ghcr.io -u "$GH_USERNAME" --password-stdin
204
- docker pull ghcr.io/ansys/speos-rpc:251
205
- docker run --detach --name speos-rpc -p 50098:50098 -e ANSYSLMD_LICENSE_FILE=$LICENSE_SERVER --entrypoint /app/SpeosRPC_Server.x ghcr.io/ansys/speos-rpc:251
216
+ docker pull ghcr.io/ansys/speos-rpc:252
217
+ docker run --detach --name speos-rpc -p 50098:50098 -e ANSYSLMD_LICENSE_FILE=$LICENSE_SERVER --entrypoint /app/SpeosRPC_Server.x ghcr.io/ansys/speos-rpc:252
206
218
 
207
219
  .. note::
208
220
 
209
- To use the latest image in development, you can use `ghcr.io/ansys/speos-rpc:dev`.
221
+ To use the latest image in development, you can use `ghcr.io/ansys/speos-rpc:252`.
210
222
 
211
223
  On the other hand, the SpeosRPC server can be started locally.
212
224
 
@@ -1,11 +1,23 @@
1
1
  PySpeos library
2
2
  ================
3
- |pyansys| |GH-CI| |MIT| |ruff|
3
+ |pyansys| |python| |pypi| |codecov| |GH-CI| |MIT| |ruff|
4
4
 
5
5
  .. |pyansys| image:: https://img.shields.io/badge/Py-Ansys-ffc107.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAABDklEQVQ4jWNgoDfg5mD8vE7q/3bpVyskbW0sMRUwofHD7Dh5OBkZGBgW7/3W2tZpa2tLQEOyOzeEsfumlK2tbVpaGj4N6jIs1lpsDAwMJ278sveMY2BgCA0NFRISwqkhyQ1q/Nyd3zg4OBgYGNjZ2ePi4rB5loGBhZnhxTLJ/9ulv26Q4uVk1NXV/f///////69du4Zdg78lx//t0v+3S88rFISInD59GqIH2esIJ8G9O2/XVwhjzpw5EAam1xkkBJn/bJX+v1365hxxuCAfH9+3b9/+////48cPuNehNsS7cDEzMTAwMMzb+Q2u4dOnT2vWrMHu9ZtzxP9vl/69RVpCkBlZ3N7enoDXBwEAAA+YYitOilMVAAAAAElFTkSuQmCC
6
6
  :target: https://docs.pyansys.com/
7
7
  :alt: PyAnsys
8
8
 
9
+ .. |python| image:: https://img.shields.io/pypi/pyversions/ansys-speos-core?logo=pypi
10
+ :target: https://pypi.org/project/ansys-speos-core/
11
+ :alt: Python
12
+
13
+ .. |pypi| image:: https://img.shields.io/pypi/v/ansys-speos-core.svg?logo=python&logoColor=white&label=PyPI
14
+ :target: https://pypi.org/project/ansys-speos-core
15
+ :alt: PyPI
16
+
17
+ .. |codecov| image:: https://codecov.io/github/ansys/pyspeos/graph/badge.svg?token=34FKDS6ZKJ
18
+ :target: https://codecov.io/github/ansys/pyspeos
19
+ :alt: Codecov
20
+
9
21
  .. |GH-CI| image:: https://github.com/ansys/pyspeos/actions/workflows/ci_cd.yml/badge.svg
10
22
  :target: https://github.com/ansys/pyspeos/actions/workflows/ci_cd.yml
11
23
 
@@ -131,12 +143,12 @@ Then, to launch SpeosRPC server with product version 2025.1, you can run:
131
143
  export LICENSE_SERVER=1055@XXX.XXX.XXX.XXX
132
144
 
133
145
  cat GH_TOKEN.txt | docker login ghcr.io -u "$GH_USERNAME" --password-stdin
134
- docker pull ghcr.io/ansys/speos-rpc:251
135
- docker run --detach --name speos-rpc -p 50098:50098 -e ANSYSLMD_LICENSE_FILE=$LICENSE_SERVER --entrypoint /app/SpeosRPC_Server.x ghcr.io/ansys/speos-rpc:251
146
+ docker pull ghcr.io/ansys/speos-rpc:252
147
+ docker run --detach --name speos-rpc -p 50098:50098 -e ANSYSLMD_LICENSE_FILE=$LICENSE_SERVER --entrypoint /app/SpeosRPC_Server.x ghcr.io/ansys/speos-rpc:252
136
148
 
137
149
  .. note::
138
150
 
139
- To use the latest image in development, you can use `ghcr.io/ansys/speos-rpc:dev`.
151
+ To use the latest image in development, you can use `ghcr.io/ansys/speos-rpc:252`.
140
152
 
141
153
  On the other hand, the SpeosRPC server can be started locally.
142
154
 
@@ -4,7 +4,7 @@ build-backend = "flit_core.buildapi"
4
4
 
5
5
  [project]
6
6
  name = "ansys-speos-core"
7
- version = "0.5.1"
7
+ version = "0.6.0"
8
8
  description = "A Python wrapper for Ansys Speos"
9
9
  readme = "README.rst"
10
10
  requires-python = ">=3.10"
@@ -30,7 +30,7 @@ dependencies=[
30
30
  "protobuf>=3.20,<7",
31
31
  "grpcio>=1.50.0,<1.71",
32
32
  "grpcio-health-checking>=1.45.0,<1.68",
33
- "ansys-api-speos==0.14.2",
33
+ "ansys-api-speos==0.15.2",
34
34
  "ansys-tools-path>=0.3.1",
35
35
  "numpy>=1.20.3,<3",
36
36
  "comtypes>=1.4,<1.5",
@@ -43,11 +43,11 @@ graphics = [
43
43
  ]
44
44
  tests = [
45
45
  "psutil==7.0.0",
46
- "pytest==8.3.5",
46
+ "pytest==8.4.1",
47
47
  "pyvista>=0.40.0,<0.46",
48
48
  "ansys-tools-visualization-interface>=0.8.3",
49
49
  "ansys-platform-instancemanagement>=1.0.3",
50
- "pytest-cov==6.1.1",
50
+ "pytest-cov==6.2.1",
51
51
  ]
52
52
  jupyter = [
53
53
  "matplotlib",
@@ -55,10 +55,10 @@ jupyter = [
55
55
  "ipywidgets",
56
56
  "pyvista[jupyter]>=0.43,<0.46",
57
57
  "ansys-tools-visualization-interface>=0.8.3",
58
- "notebook==7.4.2",
58
+ "notebook==7.4.3",
59
59
  ]
60
60
  doc = [
61
- "ansys-sphinx-theme==1.4.4",
61
+ "ansys-sphinx-theme==1.5.2",
62
62
  "numpydoc==1.8.0",
63
63
  "Sphinx==8.1.3",
64
64
  "sphinx-copybutton==0.5.2",
@@ -68,8 +68,8 @@ doc = [
68
68
  "sphinxcontrib-mermaid==1.0.0",
69
69
  "myst-parser==4.0.1",
70
70
  "nbsphinx==0.9.7",
71
- "jupytext==1.17.1",
72
- "jupyterlab==4.4.2",
71
+ "jupytext==1.17.2",
72
+ "jupyterlab==4.4.3",
73
73
  "jupyter-server==2.16.0",
74
74
  "nbconvert==7.16.6",
75
75
  "pyvista[jupyter]>=0.43,<0.46",
@@ -29,6 +29,8 @@ from typing import List, Mapping, Optional, Union
29
29
 
30
30
  from ansys.speos.core import proto_message_utils
31
31
  import ansys.speos.core.face as face
32
+ import ansys.speos.core.generic.general_methods as general_methods
33
+ from ansys.speos.core.generic.visualization_methods import _VisualData
32
34
  from ansys.speos.core.geo_ref import GeoRef
33
35
  from ansys.speos.core.kernel.body import ProtoBody
34
36
  from ansys.speos.core.kernel.client import SpeosClient
@@ -72,6 +74,7 @@ class Body:
72
74
  self._parent_part = parent_part
73
75
  self._name = name
74
76
  self.body_link = None
77
+ self._visual_data = _VisualData() if general_methods._GRAPHICS_AVAILABLE else None
75
78
  """Link object for the body in database."""
76
79
 
77
80
  if metadata is None:
@@ -82,6 +85,30 @@ class Body:
82
85
 
83
86
  self._geom_features = []
84
87
 
88
+ @property
89
+ def visual_data(self):
90
+ """Property containing irradiance sensor visualization data.
91
+
92
+ Returns
93
+ -------
94
+ VisualData
95
+ Instance of VisualData Class for pyvista.PolyData of feature faces, coordinate_systems.
96
+
97
+ """
98
+ import numpy as np
99
+
100
+ if self._visual_data.updated is True:
101
+ return self._visual_data
102
+ for feature_face in self._geom_features:
103
+ vertices = np.array(feature_face._face.vertices).reshape(-1, 3)
104
+ facets = np.array(feature_face._face.facets).reshape(-1, 3)
105
+ temp = np.full(facets.shape[0], 3)
106
+ temp = np.vstack(temp)
107
+ facets = np.hstack((temp, facets))
108
+ self._visual_data.add_data_mesh(vertices, facets)
109
+ self._visual_data.updated = True
110
+ return self._visual_data
111
+
85
112
  @property
86
113
  def geo_path(self) -> GeoRef:
87
114
  """Geometry path to be used within other speos objects."""
@@ -159,6 +186,9 @@ class Body:
159
186
  ansys.speos.core.body.Body
160
187
  Body feature.
161
188
  """
189
+ if general_methods._GRAPHICS_AVAILABLE:
190
+ self._visual_data.updated = False
191
+
162
192
  # Commit faces contained in this body
163
193
  for g in self._geom_features:
164
194
  g.commit()