ansys / pyfluent

Pythonic interface to Ansys Fluent
https://fluent.docs.pyansys.com
MIT License
262 stars 41 forks source link

No protection from invalid value type for data model parameter #2749

Closed millerj97 closed 4 months ago

millerj97 commented 4 months ago

🔍 Before submitting the issue

🐞 Description of the bug

issue based on previous pyconsole meshing bug, is still present in pyfluent standalone 0.20.1

In some integer only setup objects, there is no protection to prevent the user from entering incorrect values such as float

Entering float value for feature_angle_local results in below error "Illegal conversion from d to l" when trying to access the value again;

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/.venv/lib/python3.10/site-packages/ansys/fluent/core/services/datamodel_se.py", line 743, in __call__
    return self.get_state()
  File "/.venv/lib/python3.10/site-packages/ansys/fluent/core/workflow.py", line 593, in get_state
    self._task.Arguments() if explicit_only else self._task._command_arguments()
  File "/.venv/lib/python3.10/site-packages/ansys/fluent/core/workflow.py", line 769, in _command_arguments
    return self._refreshed_command()
  File "/.venv/lib/python3.10/site-packages/ansys/fluent/core/workflow.py", line 786, in _refreshed_command
    cmd.set_state(task_arg_state)
  File "/.venv/lib/python3.10/site-packages/ansys/fluent/core/services/datamodel_se.py", line 822, in set_state
    self.service.set_state(
  File "/.venv/lib/python3.10/site-packages/ansys/fluent/core/services/datamodel_se.py", line 457, in set_state
    self._impl.set_state(request)
  File "/.venv/lib/python3.10/site-packages/ansys/fluent/core/services/datamodel_se.py", line 196, in set_state
    return self._stub.setState(request, metadata=self._metadata)
  File "/.venv/lib/python3.10/site-packages/grpc/_interceptor.py", line 277, in __call__
    response, ignored_call = self._with_call(
  File "/.venv/lib/python3.10/site-packages/grpc/_interceptor.py", line 329, in _with_call
    call = self._interceptor.intercept_unary_unary(
  File "/.venv/lib/python3.10/site-packages/ansys/fluent/core/services/interceptors.py", line 122, in intercept_unary_unary
    return self._intercept_call(continuation, client_call_details, request)
  File "/.venv/lib/python3.10/site-packages/ansys/fluent/core/services/interceptors.py", line 112, in _intercept_call
    raise ex from None
RuntimeError: Invalid value type for data model parameter. Illegal conversion from d to l, data: 45.5

📝 Steps to reproduce

launch pyfluent meshing session

watertight = meshing.watertight()
watertight.insert_new_task('extract_edge_features')
watertight.insert_new_task('generate_initial_surface_mesh')
watertight.task("Extract Edge Features").feature_angle_local = 45.5
watertight.task("Extract Edge Features").arguments()

Also try with;

watertight.task("Generate the Layered Shell Mesh").n_orthogonal_layers= 1.

💻 Which operating system are you using?

Linux

📀 Which ANSYS version are you using?

v242

🐍 Which Python version are you using?

3.10

📦 Installed packages

2to3==1.0
about-time==4.2.1
absl-py==2.1.0
alive-progress==3.1.5
ansys-api-fluent==0.3.22
ansys-api-platform-instancemanagement==1.0.0
ansys-fluent-core==0.20.1
ansys-fluent-parametric==0.10.0
ansys-fluent-visualization==0.9.0
ansys-hpcservices-file-management-v1==23.1.2404.1
ansys-hpcservices-file-transfer-v1==23.1.2404.1
ansys-hpcservices-global-permission-v1==23.1.2404.1
ansys-hpcservices-hardware-configuration-clusters-v1==23.1.2404.1
ansys-hpcservices-hardware-configuration-endpoints-v1==23.1.2404.1
ansys-hpcservices-hardware-configuration-queues-v1==23.1.2404.1
ansys-hpcservices-hardware-configuration-storages-v1==23.1.2404.1
ansys-hpcservices-job-management-jobs-v1==23.1.2404.1
ansys-hpcservices-job-management-logs-v1==23.1.2404.1
ansys-hpcservices-job-management-templates-v1==23.1.2404.1
ansys-hpcservices-service-management-v1==23.1.2404.1
ansys-hpcservices-user-management-v1==23.1.2404.1
ansys-platform-instancemanagement==1.1.2
ansys-pythonnet==3.1.0rc0
ansys-units==0.3.2
asttokens==2.4.1
astunparse==1.6.3
attrs==23.2.0
bcrypt==4.1.2
beartype==0.17.2
blinker==1.8.1
certifi==2023.11.17
cffi==1.16.0
charset-normalizer==3.3.2
click==8.1.7
clr-loader==0.2.6
contourpy==1.2.1
cryptography==42.0.5
cycler==0.12.1
dash==2.16.1
dash-bootstrap-components==1.6.0
dash-core-components==2.0.0
dash-html-components==2.0.0
dash-table==5.0.0
decorator==5.1.1
distro==1.9.0
docker==6.1.3
et-xmlfile==1.1.0
exceptiongroup==1.2.0
execnet==2.0.2
executing==2.0.1
Flask==3.0.3
flatbuffers==24.3.25
fonttools==4.51.0
future==0.18.0
gast==0.5.4
google-pasta==0.2.0
googleapis-common-protos==1.52.0
grapheme==0.6.0
grpcio==1.62.2
grpcio-health-checking==1.48.1
grpcio-status==1.26.0
h5py==3.10.0
idna==3.6
imageio==2.34.1
importlib_metadata==7.1.0
iniconfig==2.0.0
ipython==8.24.0
itsdangerous==2.2.0
jedi==0.19.1
Jinja2==3.1.3
joblib==1.4.0
kaleido==0.2.1
keras==3.3.3
kiwisolver==1.4.5
libclang==18.1.1
llvmlite==0.39.1
lxml==4.9.4
Markdown==3.6
markdown-it-py==3.0.0
MarkupSafe==2.1.5
matplotlib==3.8.4
matplotlib-inline==0.1.7
mdurl==0.1.2
ml-dtypes==0.3.2
namex==0.0.8
nest-asyncio==1.6.0
numba==0.56.4
numpy==1.23.5
openpyxl==3.1.2
opt-einsum==3.3.0
optree==0.11.0
packaging==24.0
pandas==1.5.3
paramiko==3.4.0
paramiko-expect==0.3.5
parso==0.8.4
pexpect==4.9.0
pillow==10.2.0
platformdirs==3.11.0
plotly==5.21.0
pluggy==1.4.0
pooch==1.8.1
prompt-toolkit==3.0.43
protobuf==3.20.3
psutil==5.9.8
ptyprocess==0.7.0
pure-eval==0.2.2
py==1.11.0
pybind11==2.10.0
pycparser==2.21
Pygments==2.17.2
PyNaCl==1.5.0
pyparsing==3.1.2
PySide6==6.7.0
PySide6_Addons==6.7.0
PySide6_Essentials==6.7.0
pytest==7.2.1
pytest-forked==1.6.0
pytest-xdist==1.31.0
python-certifi-win32==1.6.1
python-dateutil==2.9.0.post0
python-pptx==0.6.23
pytz==2024.1
pyvista==0.43.6
pyvistaqt==0.11.0
PyYAML==6.0.1
QtPy==2.4.1
requests==2.31.0
retrying==1.3.4
rich==13.7.1
scikit-learn==1.4.2
scipy==1.9.3
SCons==4.0.1
scooby==0.9.2
seaborn==0.13.2
setuptools-scm==8.0.4
shapely==2.0.2
shiboken6==6.7.0
sip==6.5.1
six==1.16.0
stack-data==0.6.3
tenacity==8.2.3
tensorboard==2.16.2
tensorboard-data-server==0.7.2
tensorflow==2.16.1
tensorflow-io-gcs-filesystem==0.36.0
termcolor==2.4.0
threadpoolctl==3.5.0
toml==0.10.2
tomli==2.0.1
traitlets==5.14.3
typing_extensions==4.10.0
tzdata==2024.1
urllib3==1.26.10
vtk==9.3.20230807rc0
wcwidth==0.2.13
websocket-client==1.7.0
Werkzeug==3.0.2
wrapt==1.16.0
wxPython==4.1.1
xgboost==2.0.3
XlsxWriter==3.2.0
zipp==3.18.1
seanpearsonuk commented 4 months ago

@millerj97 This specific issue is fixed in GitHub and will be released very soon (@mkundu1 @prmukherj @hpohekar).

prmukherj commented 4 months ago

https://github.com/ansys/pyfluent/pull/2681 PR for fix.