ansys / ansys/pyprimemesh

Incorrect element connectivity in LS-Dyna mesh export

Open
#881 1 comment 0 reactions 0 assignees View on GitHub
aps bug
Dominant language
Python
Stars
35
Forks
14
Avg merge
3d 5h
Merged PRs (30d)
11

Description

### 🔍 Before submitting the issue

- [X] I have searched among the existing issues
- [X] I am using a Python virtual environment

### 🐞 Description of the bug

In LS-Dyna solver, the first four nodes in the element connectivity of a Prism/Wedge element should be unique, but the exported elements from PyPrimeMesh do not adhere to this requirement, and the node ordering appears to be incorrect.

Example:
![image](https://github.com/user-attachments/assets/db2cd68a-112b-4b1d-b91e-12cd0ecec866)

This issue in the element connectivity causes the LS-Dyna solver to exit immediately after solve:
![image](https://github.com/user-attachments/assets/c379b804-423f-420e-956a-c61d9d62a093)

### 📝 Steps to reproduce

1. Generate a volume mesh with prism/wedge elements
2. Export the mesh as Dyna .k file
3. Check element connectivity for repeated nodes in the first four entries

### 💻 Which operating system are you using?

Windows

### 📀 Which ANSYS version are you using?

Ansys 24R2

### 🐍 Which Python version are you using?

3.10

### 📦 Installed packages

```shell
absl-py==2.1.0
aiohappyeyeballs==2.4.0
aiohttp==3.10.5
aiosignal==1.3.1
altair==5.2.0
annotated-types==0.6.0
ansys-api-mapdl==0.5.2
ansys-api-mechanical==0.1.2
ansys-api-meshing-prime==0.1.3
ansys-api-platform-instancemanagement==1.0.0
ansys-api-workbench==0.1.7
ansys-dpf-core==0.12.2
ansys-mapdl-core==0.68.4
ansys-mapdl-reader==0.53.0
ansys-math-core==0.1.5
ansys-mechanical-core==0.11.1
ansys-mechanical-env==0.1.6
ansys-meshing-prime==0.6.2
ansys-platform-instancemanagement==1.1.2
ansys-pythonnet==3.1.0rc3
ansys-simai-core==0.2.3
ansys-tools-path==0.4.1
ansys-workbench-core==0.2.0
anyio==4.3.0
appdirs==1.4.4
argon2-cffi==23.1.0
argon2-cffi-bindings==21.2.0
arrow==1.3.0
artifacts-keyring==0.3.4
asttokens==2.4.1
astunparse==1.6.3
async-lru==2.0.4
async-timeout==4.0.3
attrs==23.2.0
Babel==2.14.0
beautifulsoup4==4.12.3
bleach==6.1.0
blinker==1.7.0
bokeh==3.3.4
cachetools==5.3.2
certifi==2024.2.2
cffi==1.16.0
charset-normalizer==3.3.2
click==8.1.7
cloudpickle==3.0.0
clr-loader==0.2.6
colorama==0.4.6
comm==0.2.1
contourpy==1.2.0
cycler==0.12.1
debugpy==1.8.1
decorator==5.1.1
DeepXDE==1.11.0
defusedxml==0.7.1
dm-tree==0.1.8
exceptiongroup==1.2.0
executing==2.0.1
fastjsonschema==2.19.1
filelock==3.13.1
flatbuffers==23.5.26
fonttools==4.48.1
fqdn==1.5.1
frozenlist==1.4.1
fsspec==2024.2.0
gast==0.5.4
geomdl==5.3.1
gitdb==4.0.11
GitPython==3.1.42
google-api-core==2.18.0
google-api-python-client==2.125.0
google-auth==2.28.1
google-auth-httplib2==0.2.0
google-auth-oauthlib==1.2.0
google-pasta==0.2.0
googleapis-common-protos==1.63.0
graphviz==0.20.1
grpcio==1.62.1
h11==0.14.0
h5py==3.10.0
httpcore==1.0.4
httplib2==0.22.0
httpx==0.27.0
idna==3.6
importlib-metadata==7.0.1
ipykernel==6.29.3
ipython==8.22.2
ipywidgets==8.1.3
isoduration==20.11.0
jaraco.classes==3.4.0
jaraco.context==4.3.0
jaraco.functools==4.0.0
jedi==0.19.1
Jinja2==3.1.3
joblib==1.3.2
json5==0.9.22
jsonpointer==2.4
jsonschema==4.21.1
jsonschema-specifications==2023.12.1
jupyter-events==0.9.0
jupyter-lsp==2.2.4
jupyter_client==8.6.0
jupyter_core==5.7.1
jupyter_server==2.13.0
jupyter_server_proxy==4.3.0
jupyter_server_terminals==0.5.2
jupyterlab==4.1.4
jupyterlab_pygments==0.3.0
jupyterlab_server==2.25.3
jupyterlab_widgets==3.0.11
keras==2.15.0
keyring==25.1.0
kiwisolver==1.4.5
libclang==16.0.6
linkify-it-py==2.0.3
Markdown==3.5.2
markdown-it-py==3.0.0
MarkupSafe==2.1.5
matplotlib==3.8.3
matplotlib-inline==0.1.6
mdit-py-plugins==0.4.0
mdurl==0.1.2
mistune==3.0.2
ml-dtypes==0.2.0
more-itertools==10.2.0
mpmath==1.3.0
msgpack==1.0.8
multidict==6.0.5
nbclient==0.9.0
nbconvert==7.16.2
nbformat==5.9.2
nest-asyncio==1.6.0
networkx==3.2.1
notebook_shim==0.2.4
numpy==1.26.4
oauthlib==3.2.2
opt-einsum==3.3.0
overrides==7.7.0
packaging==23.2
pandas==2.2.0
pandocfilters==1.5.1
panel==1.3.8
param==2.0.2
parso==0.8.3
pillow==10.2.0
platformdirs==4.2.0
plotly==5.19.0
pooch==1.8.0
prometheus_client==0.20.0
prompt-toolkit==3.0.43
proto-plus==1.23.0
protobuf==3.20.3
psutil==5.9.8
pure-eval==0.2.2
pyaml==23.12.0
pyansys-tools-versioning==0.5.0
pyarrow==15.0.0
pyasn1==0.5.1
pyasn1-modules==0.3.0
pycparser==2.21
pydantic==2.6.1
pydantic_core==2.16.2
pydeck==0.8.1b0
Pygments==2.17.2
pyiges==0.3.1
pyparsing==3.1.1
python-dateutil==2.8.2
python-json-logger==2.0.7
pytz==2024.1
pyvista==0.43.3
pyviz_comms==3.0.1
pywin32==306
pywin32-ctypes==0.2.2
pywinpty==2.0.13
PyYAML==6.0.1
pyzmq==25.1.2
referencing==0.33.0
requests==2.31.0
requests-oauthlib==1.3.1
requests-toolbelt==1.0.0
rfc3339-validator==0.1.4
rfc3986-validator==0.1.1
rich==13.7.0
rpds-py==0.18.0
rsa==4.9
scikit-learn==1.4.1.post1
scikit-optimize==0.9.0
scipy==1.12.0
scooby==0.9.2
semver==3.0.2
Send2Trash==1.8.2
simpervisor==1.0.0
six==1.16.0
smmap==5.0.1
sniffio==1.3.1
soupsieve==2.5
sseclient-py==1.8.0
stack-data==0.6.3
stpyvista==0.0.15
streamlit==1.31.1
sympy==1.12
tabulate==0.9.0
tenacity==8.2.3
tensorboard==2.15.2
tensorboard-data-server==0.7.2
tensorflow==2.15.0
tensorflow-estimator==2.15.0
tensorflow-intel==2.15.0
tensorflow-io-gcs-filesystem==0.31.0
tensorflow-probability==0.23.0
termcolor==2.4.0
terminado==0.18.0
tf-siren==0.0.5
threadpoolctl==3.3.0
tinycss2==1.2.1
toml==0.10.2
tomli==2.0.1
toolz==0.12.1
torch==2.2.0
torchviz==0.0.2
tornado==6.4
tqdm==4.66.2
traitlets==5.14.1
trame==3.6.3
trame-client==3.2.5
trame-server==3.1.0
trame-vtk==2.8.10
trame-vuetify==2.6.2
types-python-dateutil==2.8.19.20240106
typing_extensions==4.9.0
tzdata==2024.1
tzlocal==5.2
uc-micro-py==1.0.3
uri-template==1.3.0
uritemplate==4.1.1
urllib3==2.2.0
validators==0.22.0
vtk==9.3.0
wakepy==0.9.1
watchdog==4.0.0
wcwidth==0.2.13
webcolors==1.13
webencodings==0.5.1
websocket-client==1.7.0
Werkzeug==3.0.1
widgetsnbextension==4.0.11
WMI==1.5.1
wrapt==1.14.1
wslink==2.1.2
xyzservices==2023.10.1
yarl==1.9.4
zipp==3.17.0
```

Contributor guide

Open the contributing guide

Research direction

Reproduce the issue by generating a volume mesh with prism/wedge elements and exporting it as a Dyna .k file. Inspect the first four connectivity entries for repeated nodes and incorrect ordering; done means the exported connectivity uses unique, correctly ordered nodes and LS-Dyna no longer exits immediately.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
tooling
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.