ansys-fluent-core 0.28.dev0__py3-none-any.whl → 0.28.2__py3-none-any.whl
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.
Potentially problematic release.
This version of ansys-fluent-core might be problematic. Click here for more details.
- ansys/fluent/core/__init__.py +15 -16
- ansys/fluent/core/_version.py +1 -1
- ansys/fluent/core/codegen/allapigen.py +0 -3
- ansys/fluent/core/codegen/builtin_settingsgen.py +5 -20
- ansys/fluent/core/codegen/print_fluent_version.py +9 -14
- ansys/fluent/core/codegen/walk_api.py +57 -0
- ansys/fluent/core/fluent_connection.py +26 -22
- ansys/fluent/core/generated/api_tree/api_objects.json +1 -1
- ansys/fluent/core/generated/datamodel_252/meshing.py +21 -0
- ansys/fluent/core/generated/datamodel_252/preferences.py +14 -0
- ansys/fluent/core/generated/fluent_version_252.py +3 -3
- ansys/fluent/core/generated/meshing/tui_252.py +1451 -1396
- ansys/fluent/core/generated/solver/settings_252.py +9300 -6625
- ansys/fluent/core/generated/solver/settings_252.pyi +6625 -5423
- ansys/fluent/core/generated/solver/tui_252.py +5898 -5057
- ansys/fluent/core/journaling.py +4 -4
- ansys/fluent/core/launcher/fluent_container.py +31 -7
- ansys/fluent/core/launcher/launcher.py +3 -2
- ansys/fluent/core/launcher/launcher_utils.py +9 -0
- ansys/fluent/core/launcher/process_launch_string.py +8 -6
- ansys/fluent/core/launcher/pyfluent_enums.py +6 -3
- ansys/fluent/core/launcher/server_info.py +25 -2
- ansys/fluent/core/launcher/slurm_launcher.py +6 -3
- ansys/fluent/core/launcher/standalone_launcher.py +11 -9
- ansys/fluent/core/post_objects/post_helper.py +16 -10
- ansys/fluent/core/services/__init__.py +2 -0
- ansys/fluent/core/services/api_upgrade.py +11 -9
- ansys/fluent/core/services/app_utilities.py +408 -0
- ansys/fluent/core/services/datamodel_se.py +172 -58
- ansys/fluent/core/services/datamodel_tui.py +5 -2
- ansys/fluent/core/services/field_data.py +1 -0
- ansys/fluent/core/services/reduction.py +2 -0
- ansys/fluent/core/services/settings.py +5 -2
- ansys/fluent/core/session.py +27 -4
- ansys/fluent/core/session_pure_meshing.py +1 -1
- ansys/fluent/core/session_solver.py +0 -1
- ansys/fluent/core/solver/__init__.py +6 -0
- ansys/fluent/core/solver/flobject.py +15 -27
- ansys/fluent/core/solver/function/reduction.py +3 -0
- ansys/fluent/core/solver/settings_builtin_data.py +1 -1
- ansys/fluent/core/streaming_services/datamodel_event_streaming.py +13 -13
- ansys/fluent/core/streaming_services/events_streaming.py +336 -52
- ansys/fluent/tests/conftest.py +30 -0
- ansys/fluent/tests/test_builtin_settings.py +1 -1
- ansys/fluent/tests/test_codegen.py +0 -410
- ansys/fluent/tests/test_datamodel_api.py +429 -0
- ansys/fluent/tests/test_datamodel_service.py +64 -64
- ansys/fluent/tests/test_events_manager.py +24 -6
- ansys/fluent/tests/test_field_data.py +32 -0
- ansys/fluent/tests/test_launcher.py +30 -2
- ansys/fluent/tests/test_mapped_api.py +766 -0
- ansys/fluent/tests/test_reduction.py +30 -0
- ansys/fluent/tests/test_session.py +16 -1
- ansys/fluent/tests/test_settings_api.py +21 -0
- ansys/fluent/tests/test_solution_variables.py +27 -0
- ansys/fluent/tests/util/__init__.py +36 -0
- {ansys_fluent_core-0.28.dev0.dist-info → ansys_fluent_core-0.28.2.dist-info}/METADATA +4 -3
- {ansys_fluent_core-0.28.dev0.dist-info → ansys_fluent_core-0.28.2.dist-info}/RECORD +61 -58
- {ansys_fluent_core-0.28.dev0.dist-info → ansys_fluent_core-0.28.2.dist-info}/WHEEL +1 -1
- ansys/fluent/core/codegen/settingsgen_old.py +0 -535
- ansys/fluent/tests/fluent/test_version/test.py +0 -2
- {ansys_fluent_core-0.28.dev0.dist-info → ansys_fluent_core-0.28.2.dist-info}/AUTHORS +0 -0
- {ansys_fluent_core-0.28.dev0.dist-info → ansys_fluent_core-0.28.2.dist-info}/LICENSE +0 -0
|
@@ -0,0 +1,408 @@
|
|
|
1
|
+
"""Wrappers over AppUtilities gRPC service of Fluent."""
|
|
2
|
+
|
|
3
|
+
from enum import Enum
|
|
4
|
+
from typing import List, Tuple
|
|
5
|
+
|
|
6
|
+
import grpc
|
|
7
|
+
|
|
8
|
+
from ansys.api.fluent.v0 import app_utilities_pb2 as AppUtilitiesProtoModule
|
|
9
|
+
from ansys.api.fluent.v0 import app_utilities_pb2_grpc as AppUtilitiesGrpcModule
|
|
10
|
+
from ansys.fluent.core.services.interceptors import (
|
|
11
|
+
BatchInterceptor,
|
|
12
|
+
ErrorStateInterceptor,
|
|
13
|
+
GrpcErrorInterceptor,
|
|
14
|
+
TracingInterceptor,
|
|
15
|
+
)
|
|
16
|
+
from ansys.fluent.core.streaming_services.events_streaming import SolverEvent
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class AppUtilitiesService:
|
|
20
|
+
"""AppUtilities Service."""
|
|
21
|
+
|
|
22
|
+
def __init__(
|
|
23
|
+
self, channel: grpc.Channel, metadata: List[Tuple[str, str]], fluent_error_state
|
|
24
|
+
):
|
|
25
|
+
"""__init__ method of AppUtilities class."""
|
|
26
|
+
intercept_channel = grpc.intercept_channel(
|
|
27
|
+
channel,
|
|
28
|
+
GrpcErrorInterceptor(),
|
|
29
|
+
ErrorStateInterceptor(fluent_error_state),
|
|
30
|
+
TracingInterceptor(),
|
|
31
|
+
BatchInterceptor(),
|
|
32
|
+
)
|
|
33
|
+
self._stub = AppUtilitiesGrpcModule.AppUtilitiesStub(intercept_channel)
|
|
34
|
+
self._metadata = metadata
|
|
35
|
+
|
|
36
|
+
def get_product_version(
|
|
37
|
+
self, request: AppUtilitiesProtoModule.GetProductVersionRequest
|
|
38
|
+
) -> AppUtilitiesProtoModule.GetProductVersionResponse:
|
|
39
|
+
"""Get product version RPC of AppUtilities service."""
|
|
40
|
+
return self._stub.GetProductVersion(request, metadata=self._metadata)
|
|
41
|
+
|
|
42
|
+
def get_build_info(
|
|
43
|
+
self, request: AppUtilitiesProtoModule.GetBuildInfoRequest
|
|
44
|
+
) -> AppUtilitiesProtoModule.GetBuildInfoResponse:
|
|
45
|
+
"""Get build info RPC of AppUtilities service."""
|
|
46
|
+
return self._stub.GetBuildInfo(request, metadata=self._metadata)
|
|
47
|
+
|
|
48
|
+
def get_controller_process_info(
|
|
49
|
+
self, request: AppUtilitiesProtoModule.GetControllerProcessInfoRequest
|
|
50
|
+
) -> AppUtilitiesProtoModule.GetControllerProcessInfoResponse:
|
|
51
|
+
"""Get controller process info RPC of AppUtilities service."""
|
|
52
|
+
return self._stub.GetControllerProcessInfo(request, metadata=self._metadata)
|
|
53
|
+
|
|
54
|
+
def get_solver_process_info(
|
|
55
|
+
self, request: AppUtilitiesProtoModule.GetSolverProcessInfoRequest
|
|
56
|
+
) -> AppUtilitiesProtoModule.GetSolverProcessInfoResponse:
|
|
57
|
+
"""Get solver process info RPC of AppUtilities service."""
|
|
58
|
+
return self._stub.GetSolverProcessInfo(request, metadata=self._metadata)
|
|
59
|
+
|
|
60
|
+
def get_app_mode(
|
|
61
|
+
self, request: AppUtilitiesProtoModule.GetAppModeRequest
|
|
62
|
+
) -> AppUtilitiesProtoModule.GetAppModeResponse:
|
|
63
|
+
"""Get app mode RPC of AppUtilities service."""
|
|
64
|
+
return self._stub.GetAppMode(request, metadata=self._metadata)
|
|
65
|
+
|
|
66
|
+
def start_python_journal(
|
|
67
|
+
self, request: AppUtilitiesProtoModule.StartPythonJournalRequest
|
|
68
|
+
) -> AppUtilitiesProtoModule.StartPythonJournalResponse:
|
|
69
|
+
"""Start python journal RPC of AppUtilities service."""
|
|
70
|
+
return self._stub.StartPythonJournal(request, metadata=self._metadata)
|
|
71
|
+
|
|
72
|
+
def stop_python_journal(
|
|
73
|
+
self, request: AppUtilitiesProtoModule.StopPythonJournalRequest
|
|
74
|
+
) -> AppUtilitiesProtoModule.StopPythonJournalResponse:
|
|
75
|
+
"""Stop python journal RPC of AppUtilities service."""
|
|
76
|
+
return self._stub.StopPythonJournal(request, metadata=self._metadata)
|
|
77
|
+
|
|
78
|
+
def is_beta_enabled(
|
|
79
|
+
self, request: AppUtilitiesProtoModule.IsBetaEnabledRequest
|
|
80
|
+
) -> AppUtilitiesProtoModule.IsBetaEnabledResponse:
|
|
81
|
+
"""Is beta enabled RPC of AppUtilities service."""
|
|
82
|
+
return self._stub.IsBetaEnabled(request, metadata=self._metadata)
|
|
83
|
+
|
|
84
|
+
def is_wildcard(
|
|
85
|
+
self, request: AppUtilitiesProtoModule.IsWildcardRequest
|
|
86
|
+
) -> AppUtilitiesProtoModule.IsWildcardResponse:
|
|
87
|
+
"""Is wildcard RPC of AppUtilities service."""
|
|
88
|
+
return self._stub.IsWildcard(request, metadata=self._metadata)
|
|
89
|
+
|
|
90
|
+
def is_solution_data_available(
|
|
91
|
+
self, request: AppUtilitiesProtoModule.IsSolutionDataAvailableRequest
|
|
92
|
+
) -> AppUtilitiesProtoModule.IsSolutionDataAvailableResponse:
|
|
93
|
+
"""Is solution data available RPC of AppUtilities service."""
|
|
94
|
+
return self._stub.IsSolutionDataAvailable(request, metadata=self._metadata)
|
|
95
|
+
|
|
96
|
+
def register_pause_on_solution_events(
|
|
97
|
+
self, request: AppUtilitiesProtoModule.RegisterPauseOnSolutionEventsRequest
|
|
98
|
+
) -> AppUtilitiesProtoModule.RegisterPauseOnSolutionEventsResponse:
|
|
99
|
+
"""Register on pause solution events RPC of AppUtilities service."""
|
|
100
|
+
return self._stub.RegisterPauseOnSolutionEvents(
|
|
101
|
+
request, metadata=self._metadata
|
|
102
|
+
)
|
|
103
|
+
|
|
104
|
+
def resume_on_solution_event(
|
|
105
|
+
self, request: AppUtilitiesProtoModule.ResumeOnSolutionEventRequest
|
|
106
|
+
) -> AppUtilitiesProtoModule.ResumeOnSolutionEventResponse:
|
|
107
|
+
"""Resume on solution event RPC of AppUtilities service."""
|
|
108
|
+
return self._stub.ResumeOnSolutionEvent(request, metadata=self._metadata)
|
|
109
|
+
|
|
110
|
+
def unregister_pause_on_solution_events(
|
|
111
|
+
self, request: AppUtilitiesProtoModule.UnregisterPauseOnSolutionEventsRequest
|
|
112
|
+
) -> AppUtilitiesProtoModule.UnregisterPauseOnSolutionEventsResponse:
|
|
113
|
+
"""Unregister on pause solution events RPC of AppUtilities service."""
|
|
114
|
+
return self._stub.UnregisterPauseOnSolutionEvents(
|
|
115
|
+
request, metadata=self._metadata
|
|
116
|
+
)
|
|
117
|
+
|
|
118
|
+
def exit(
|
|
119
|
+
self, request: AppUtilitiesProtoModule.ExitRequest
|
|
120
|
+
) -> AppUtilitiesProtoModule.ExitResponse:
|
|
121
|
+
"""Exit RPC of AppUtilities service."""
|
|
122
|
+
return self._stub.Exit(request, metadata=self._metadata)
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
class AppUtilitiesOld:
|
|
126
|
+
"""AppUtilitiesOld."""
|
|
127
|
+
|
|
128
|
+
def __init__(self, scheme_eval):
|
|
129
|
+
"""__init__ method of AppUtilitiesOld class."""
|
|
130
|
+
self.scheme_eval = scheme_eval
|
|
131
|
+
|
|
132
|
+
def get_product_version(self) -> str:
|
|
133
|
+
"""Get product version."""
|
|
134
|
+
return self.scheme_eval.version
|
|
135
|
+
|
|
136
|
+
def get_build_info(self) -> dict:
|
|
137
|
+
"""Get build info."""
|
|
138
|
+
build_time = self.scheme_eval.scheme_eval("(inquire-build-time)")
|
|
139
|
+
build_id = self.scheme_eval.scheme_eval("(inquire-build-id)")
|
|
140
|
+
vcs_revision = self.scheme_eval.scheme_eval("(inquire-src-vcs-id)")
|
|
141
|
+
vcs_branch = self.scheme_eval.scheme_eval("(inquire-src-vcs-branch)")
|
|
142
|
+
return {
|
|
143
|
+
"build_time": build_time,
|
|
144
|
+
"build_id": build_id,
|
|
145
|
+
"vcs_revision": vcs_revision,
|
|
146
|
+
"vcs_branch": vcs_branch,
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
def get_controller_process_info(self) -> dict:
|
|
150
|
+
"""Get controller process info."""
|
|
151
|
+
cortex_host = self.scheme_eval.scheme_eval("(cx-cortex-host)")
|
|
152
|
+
cortex_pid = self.scheme_eval.scheme_eval("(cx-cortex-id)")
|
|
153
|
+
cortex_pwd = self.scheme_eval.scheme_eval("(cortex-pwd)")
|
|
154
|
+
return {
|
|
155
|
+
"hostname": cortex_host,
|
|
156
|
+
"process_id": cortex_pid,
|
|
157
|
+
"working_directory": cortex_pwd,
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
def get_solver_process_info(self) -> dict:
|
|
161
|
+
"""Get solver process info."""
|
|
162
|
+
fluent_host = self.scheme_eval.scheme_eval("(cx-client-host)")
|
|
163
|
+
fluent_pid = self.scheme_eval.scheme_eval("(cx-client-id)")
|
|
164
|
+
fluent_pwd = self.scheme_eval.scheme_eval("(cx-send '(cx-client-pwd))")
|
|
165
|
+
return {
|
|
166
|
+
"hostname": fluent_host,
|
|
167
|
+
"process_id": fluent_pid,
|
|
168
|
+
"working_directory": fluent_pwd,
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
def get_app_mode(self) -> Enum:
|
|
172
|
+
"""Get app mode."""
|
|
173
|
+
from ansys.fluent.core import FluentMode
|
|
174
|
+
|
|
175
|
+
if self.scheme_eval.scheme_eval("(cx-solver-mode?)"):
|
|
176
|
+
mode_str = self.scheme_eval.scheme_eval('(getenv "PRJAPP_APP")')
|
|
177
|
+
if mode_str == "flaero_server":
|
|
178
|
+
return FluentMode.SOLVER_AERO
|
|
179
|
+
elif mode_str == "flicing":
|
|
180
|
+
return FluentMode.SOLVER_ICING
|
|
181
|
+
else:
|
|
182
|
+
return FluentMode.SOLVER
|
|
183
|
+
else:
|
|
184
|
+
return FluentMode.MESHING
|
|
185
|
+
|
|
186
|
+
def start_python_journal(self, journal_name: str | None = None) -> int:
|
|
187
|
+
"""Start python journal."""
|
|
188
|
+
if journal_name:
|
|
189
|
+
self.scheme_eval.exec([f'(api-start-python-journal "{journal_name}")'])
|
|
190
|
+
else:
|
|
191
|
+
self.scheme_eval.scheme_eval(
|
|
192
|
+
"(define pyfluent-journal-str-port (open-output-string))"
|
|
193
|
+
)
|
|
194
|
+
self.scheme_eval.scheme_eval(
|
|
195
|
+
"(api-echo-python-port pyfluent-journal-str-port)"
|
|
196
|
+
)
|
|
197
|
+
return "1"
|
|
198
|
+
|
|
199
|
+
def stop_python_journal(self, journal_id: str | None = None) -> str:
|
|
200
|
+
"""Stop python journal."""
|
|
201
|
+
if journal_id:
|
|
202
|
+
self.scheme_eval.scheme_eval(
|
|
203
|
+
"(api-unecho-python-port pyfluent-journal-str-port)"
|
|
204
|
+
)
|
|
205
|
+
journal_str = self.scheme_eval.scheme_eval(
|
|
206
|
+
"(close-output-port pyfluent-journal-str-port)"
|
|
207
|
+
)
|
|
208
|
+
return journal_str
|
|
209
|
+
else:
|
|
210
|
+
self.scheme_eval.exec(["(api-stop-python-journal)"])
|
|
211
|
+
|
|
212
|
+
def is_beta_enabled(self) -> bool:
|
|
213
|
+
"""Is beta enabled."""
|
|
214
|
+
return self.scheme_eval.scheme_eval("(is-beta-feature-available?)")
|
|
215
|
+
|
|
216
|
+
def is_wildcard(self, input: str | None = None) -> bool:
|
|
217
|
+
"""Is wildcard."""
|
|
218
|
+
return self.scheme_eval.scheme_eval(f'(has-fnmatch-wild-card? "{input}")')
|
|
219
|
+
|
|
220
|
+
def is_solution_data_available(self) -> bool:
|
|
221
|
+
"""Is solution data available."""
|
|
222
|
+
return self.scheme_eval.scheme_eval("(data-valid?)")
|
|
223
|
+
|
|
224
|
+
def register_pause_on_solution_events(self, solution_event: SolverEvent) -> int:
|
|
225
|
+
"""Register pause on solution events."""
|
|
226
|
+
unique_id: int = self.scheme_eval.scheme_eval(
|
|
227
|
+
f"""
|
|
228
|
+
(let
|
|
229
|
+
((ids
|
|
230
|
+
(let loop ((i 1))
|
|
231
|
+
(define next-id (string->symbol (format #f "pyfluent-~d" i)))
|
|
232
|
+
(if (check-monitor-existence next-id)
|
|
233
|
+
(loop (1+ i))
|
|
234
|
+
(list i next-id)
|
|
235
|
+
)
|
|
236
|
+
)
|
|
237
|
+
))
|
|
238
|
+
(register-solution-monitor
|
|
239
|
+
(cadr ids)
|
|
240
|
+
(lambda (niter time)
|
|
241
|
+
(if (integer? niter)
|
|
242
|
+
(begin
|
|
243
|
+
(events/transmit 'auto-pause (cons (car ids) niter))
|
|
244
|
+
(grpcserver/auto-pause (is-server-running?) (cadr ids))
|
|
245
|
+
)
|
|
246
|
+
)
|
|
247
|
+
()
|
|
248
|
+
)
|
|
249
|
+
{'#t' if solution_event == SolverEvent.TIMESTEP_ENDED else '#f'}
|
|
250
|
+
)
|
|
251
|
+
(car ids)
|
|
252
|
+
)
|
|
253
|
+
"""
|
|
254
|
+
)
|
|
255
|
+
return unique_id
|
|
256
|
+
|
|
257
|
+
def resume_on_solution_event(self, registration_id: int) -> None:
|
|
258
|
+
"""Resume on solution event."""
|
|
259
|
+
self.scheme_eval.scheme_eval(
|
|
260
|
+
f"(grpcserver/auto-resume (is-server-running?) 'pyfluent-{registration_id})"
|
|
261
|
+
)
|
|
262
|
+
|
|
263
|
+
def unregister_pause_on_solution_events(self, registration_id: int) -> None:
|
|
264
|
+
"""Unregister pause on solution events."""
|
|
265
|
+
self.scheme_eval.scheme_eval(
|
|
266
|
+
f"(cancel-solution-monitor 'pyfluent-{registration_id})"
|
|
267
|
+
)
|
|
268
|
+
|
|
269
|
+
def exit(self) -> None:
|
|
270
|
+
"""Exit."""
|
|
271
|
+
self.scheme_eval.exec(("(exit-server)",))
|
|
272
|
+
|
|
273
|
+
|
|
274
|
+
class AppUtilities:
|
|
275
|
+
"""AppUtilities."""
|
|
276
|
+
|
|
277
|
+
def __init__(self, service: AppUtilitiesService):
|
|
278
|
+
"""__init__ method of AppUtilities class."""
|
|
279
|
+
self.service = service
|
|
280
|
+
|
|
281
|
+
def get_product_version(self) -> str:
|
|
282
|
+
"""Get product version."""
|
|
283
|
+
request = AppUtilitiesProtoModule.GetProductVersionRequest()
|
|
284
|
+
response = self.service.get_product_version(request)
|
|
285
|
+
return f"{response.major}.{response.minor}.{response.patch}"
|
|
286
|
+
|
|
287
|
+
def get_build_info(self) -> dict:
|
|
288
|
+
"""Get build info."""
|
|
289
|
+
request = AppUtilitiesProtoModule.GetBuildInfoRequest()
|
|
290
|
+
response = self.service.get_build_info(request)
|
|
291
|
+
return {
|
|
292
|
+
"build_time": response.build_time,
|
|
293
|
+
"build_id": response.build_id,
|
|
294
|
+
"vcs_revision": response.vcs_revision,
|
|
295
|
+
"vcs_branch": response.vcs_branch,
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
def get_controller_process_info(self) -> dict:
|
|
299
|
+
"""Get controller process info."""
|
|
300
|
+
request = AppUtilitiesProtoModule.GetControllerProcessInfoRequest()
|
|
301
|
+
response = self.service.get_controller_process_info(request)
|
|
302
|
+
return {
|
|
303
|
+
"hostname": response.hostname,
|
|
304
|
+
"process_id": response.process_id,
|
|
305
|
+
"working_directory": response.working_directory,
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
def get_solver_process_info(self) -> dict:
|
|
309
|
+
"""Get solver process info."""
|
|
310
|
+
request = AppUtilitiesProtoModule.GetSolverProcessInfoRequest()
|
|
311
|
+
response = self.service.get_solver_process_info(request)
|
|
312
|
+
return {
|
|
313
|
+
"hostname": response.hostname,
|
|
314
|
+
"process_id": response.process_id,
|
|
315
|
+
"working_directory": response.working_directory,
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
def get_app_mode(self) -> Enum:
|
|
319
|
+
"""Get app mode.
|
|
320
|
+
|
|
321
|
+
Raises
|
|
322
|
+
------
|
|
323
|
+
ValueError
|
|
324
|
+
If app mode is unknown.
|
|
325
|
+
"""
|
|
326
|
+
import ansys.fluent.core as pyfluent
|
|
327
|
+
|
|
328
|
+
request = AppUtilitiesProtoModule.GetAppModeRequest()
|
|
329
|
+
response = self.service.get_app_mode(request)
|
|
330
|
+
match response.app_mode:
|
|
331
|
+
case AppUtilitiesProtoModule.APP_MODE_UNKNOWN:
|
|
332
|
+
raise ValueError("Unknown app mode.")
|
|
333
|
+
case AppUtilitiesProtoModule.APP_MODE_MESHING:
|
|
334
|
+
return pyfluent.FluentMode.MESHING
|
|
335
|
+
case AppUtilitiesProtoModule.APP_MODE_SOLVER:
|
|
336
|
+
return pyfluent.FluentMode.SOLVER
|
|
337
|
+
case AppUtilitiesProtoModule.APP_MODE_SOLVER_ICING:
|
|
338
|
+
return pyfluent.FluentMode.SOLVER_ICING
|
|
339
|
+
case AppUtilitiesProtoModule.APP_MODE_SOLVER_AERO:
|
|
340
|
+
return pyfluent.FluentMode.SOLVER_AERO
|
|
341
|
+
|
|
342
|
+
def start_python_journal(self, journal_name: str | None = None) -> int:
|
|
343
|
+
"""Start python journal."""
|
|
344
|
+
request = AppUtilitiesProtoModule.StartPythonJournalRequest()
|
|
345
|
+
if journal_name:
|
|
346
|
+
request.journal_name = journal_name
|
|
347
|
+
response = self.service.start_python_journal(request)
|
|
348
|
+
return response.journal_id
|
|
349
|
+
|
|
350
|
+
def stop_python_journal(self, journal_id: str | None = None) -> str:
|
|
351
|
+
"""Stop python journal."""
|
|
352
|
+
request = AppUtilitiesProtoModule.StopPythonJournalRequest()
|
|
353
|
+
if journal_id:
|
|
354
|
+
request.journal_id = journal_id
|
|
355
|
+
response = self.service.stop_python_journal(request)
|
|
356
|
+
return response.journal_str
|
|
357
|
+
|
|
358
|
+
def is_beta_enabled(self) -> bool:
|
|
359
|
+
"""Is beta enabled."""
|
|
360
|
+
request = AppUtilitiesProtoModule.IsBetaEnabledRequest()
|
|
361
|
+
response = self.service.is_beta_enabled(request)
|
|
362
|
+
return response.is_beta_enabled
|
|
363
|
+
|
|
364
|
+
def is_wildcard(self, input: str | None = None) -> bool:
|
|
365
|
+
"""Is wildcard."""
|
|
366
|
+
request = AppUtilitiesProtoModule.IsWildcardRequest()
|
|
367
|
+
request.input = input
|
|
368
|
+
response = self.service.is_wildcard(request)
|
|
369
|
+
return response.is_wildcard
|
|
370
|
+
|
|
371
|
+
def is_solution_data_available(self) -> bool:
|
|
372
|
+
"""Is solution data available."""
|
|
373
|
+
request = AppUtilitiesProtoModule.IsSolutionDataAvailableRequest()
|
|
374
|
+
response = self.service.is_solution_data_available(request)
|
|
375
|
+
return response.is_solution_data_available
|
|
376
|
+
|
|
377
|
+
def register_pause_on_solution_events(self, solution_event: SolverEvent) -> int:
|
|
378
|
+
"""Register pause on solution events."""
|
|
379
|
+
request = AppUtilitiesProtoModule.RegisterPauseOnSolutionEventsRequest()
|
|
380
|
+
request.solution_event = AppUtilitiesProtoModule.SOLUTION_EVENT_UNKNOWN
|
|
381
|
+
match solution_event:
|
|
382
|
+
case SolverEvent.ITERATION_ENDED:
|
|
383
|
+
request.solution_event = (
|
|
384
|
+
AppUtilitiesProtoModule.SOLUTION_EVENT_ITERATION
|
|
385
|
+
)
|
|
386
|
+
case SolverEvent.TIMESTEP_ENDED:
|
|
387
|
+
request.solution_event = (
|
|
388
|
+
AppUtilitiesProtoModule.SOLUTION_EVENT_TIME_STEP
|
|
389
|
+
)
|
|
390
|
+
response = self.service.register_pause_on_solution_events(request)
|
|
391
|
+
return response.registration_id
|
|
392
|
+
|
|
393
|
+
def resume_on_solution_event(self, registration_id: int) -> None:
|
|
394
|
+
"""Resume on solution event."""
|
|
395
|
+
request = AppUtilitiesProtoModule.ResumeOnSolutionEventRequest()
|
|
396
|
+
request.registration_id = registration_id
|
|
397
|
+
self.service.resume_on_solution_event(request)
|
|
398
|
+
|
|
399
|
+
def unregister_pause_on_solution_events(self, registration_id: int) -> None:
|
|
400
|
+
"""Unregister pause on solution events."""
|
|
401
|
+
request = AppUtilitiesProtoModule.UnregisterPauseOnSolutionEventsRequest()
|
|
402
|
+
request.registration_id = registration_id
|
|
403
|
+
self.service.unregister_pause_on_solution_events(request)
|
|
404
|
+
|
|
405
|
+
def exit(self) -> None:
|
|
406
|
+
"""Exit."""
|
|
407
|
+
request = AppUtilitiesProtoModule.ExitRequest()
|
|
408
|
+
self.service.exit(request)
|