从LS-DYNA decks中读取节点和元素。
项目描述
LS-DYNA Mesh Reader
此库可用于读取存储在关键字(*.k,*.key,*.dyn)文件中的LS-DYNA网格,也称为关键字格式“输入牌”。该存储库的完整文档可在lsdyna-mesh-reader 文档中找到。
许多示例文件是从LS-DYNA 示例的优秀文档中获得的。
动机
尽管LS-DYNA非常受欢迎,但似乎没有关键字文件的读取器。我需要一个用于封闭源项目的读取器,并希望这能帮助到其他也希望读取这些文件的人。它借鉴了mapdl-archive,因为MAPDL在写入FEM时也遵循许多相同的FORTRAN约定。
安装
使用
pip install lsdyna-mesh-reader[pyvista]
如果您只需要节点和元素数组,而不需要任何VTK功能(例如绘图或UnstructuredGrid表示),请使用以下命令安装基本库:
pip install lsdyna-mesh-reader
示例
在通过基本示例之前,让我们谈谈这些“牌组”是如何组织的。每个关键字文件包含描述“卡片”部分开始的“关键字”。这个术语可以追溯到1976年DYNA3D开发的时候,那时程序是写在穿孔卡片上的。
要读取节点和元素,我们必须读取一个或多个以*NODE
或*ELEMENT_SOLID
开头的节点和元素部分。这个库将这些原始部分以及解析部分作为更高层次的概念加载。
让我们先加载接触侵蚀I示例牌组。
Load the birdball deck.
>>> import lsdyna_mesh_reader
>>> from lsdyna_mesh_reader import examples
>>> deck = lsdyna_mesh_reader.Deck(examples.birdball)
LSDYNA Deck with:
Node sections: 1
Element Solid sections: 1
Element Shell sections: 1
现在我们可以检查节点部分中的一个
>>> node_section = deck.node_sections[0]
>>> node_section
NodeSection containing 1281 nodes
| NID | X | Y | Z | tc | rc |
|-------|---------------|---------------|---------------|--------|--------|
1 -2.30940104e+00 -2.30940104e+00 -2.30940104e+00 0 0
2 -2.03960061e+00 -2.03960061e+00 -2.03960061e+00 0 0
3 -1.76980031e+00 -1.76980031e+00 -1.76980031e+00 0 0
4 -1.50000000e+00 -1.50000000e+00 -1.50000000e+00 0 0
5 -2.59364843e+00 -1.59561157e+00 -2.59364843e+00 0 0
6 -2.22909880e+00 -1.39707434e+00 -2.22909880e+00 0 0
7 -1.86454940e+00 -1.19853711e+00 -1.86454940e+00 0 0
8 -1.50000000e+00 -1.00000000e+00 -1.50000000e+00 0 0
9 -2.76911068e+00 -8.14893484e-01 -2.76911068e+00 0 0
10 -2.34607387e+00 -7.09928930e-01 -2.34607387e+00 0 0
...
我们可以直接访问节点部分的节点ID和数组
Node IDs
>>> node_section.nid
array([ 1, 2, 3, ..., 1342, 1343, 1344], dtype=int32)
Node coordinates
>>> node_section.coordinates
array([[ -2.30940104, -2.30940104, -2.30940104],
[ -2.03960061, -2.03960061, -2.03960061],
[ -1.76980031, -1.76980031, -1.76980031],
...,
[ -4. , -10. , 0. ],
[ -2. , -10. , 0. ],
[ 0. , -10. , 0. ]])
同样可以针对固体和壳体元素部分执行相同的操作。
>>> deck.element_solid_sections # or deck.element_shell_sections
[ElementSolidSection containing 816 elements
| EID | PID | N1 | N2 | N3 | N4 | N5 | N6 | N7 | N8 |
|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|
1 1 1 2 6 5 17 18 22 21
2 1 2 3 7 6 18 19 23 22
3 1 3 4 8 7 19 20 24 23
4 1 5 6 10 9 21 22 26 25
5 1 6 7 11 10 22 23 27 26
6 1 7 8 12 11 23 24 28 27
7 1 9 10 14 13 25 26 30 29
8 1 10 11 15 14 26 27 31 30
9 1 11 12 16 15 27 28 32 31
10 1 17 18 22 21 33 34 38 37
...]
Element IDs
>>> section = deck.element_solid_sections[0]
>>> section.eid
array([ 1, 2, 3, ..., 814, 815, 816], dtype=int32)
Node IDs of the elements
>>>
array([ 1, 2, 6, ..., 1256, 1267, 1266], dtype=int32)
为了提高效率,元素存储为单个连续数组,可以通过以下方式拆分
>>> import numpy as np
>>> elements = np.split(section.node_ids, section.node_id_offsets[1:-1])
[array([ 1, 2, 6, 5, 17, 18, 22, 21], dtype=int32),
array([ 2, 3, 7, 6, 18, 19, 23, 22], dtype=int32),
...
]
如果您已安装pyvista
或使用pip install lsdyna-mesh-reader[pyvista]
安装了库,您可以将网格转换为单个非结构化网格
>>> grid = deck.to_grid()
>>> grid
UnstructuredGrid (0x70d5d723bc40)
N Cells: 916
N Points: 1281
X Bounds: -2.000e+01, 2.220e-15
Y Bounds: -1.000e+01, 4.000e+00
Z Bounds: -2.000e+01, 4.441e-15
N Arrays: 2
这使得您可以通过PyVista对网格进行绘图、保存或执行其他操作。例如,您可以绘制生成的网格。以下是一个使用雅力士静态悬挂系统加载示例的完整示例。
>>> filename = "YarisD_V2g_shock_abs_load_01.k"
>>> deck = Deck(filename)
>>> grid = deck.to_grid()
>>> grid.plot(color="w", smooth_shading=True, show_edges=True)
注意事项和限制
目前,对这个库进行的测试有限,您可能会发现它无法加载复杂的或简单的关键字牌组。
此外,这个读取器只支持以下关键字
*NODE
*ELEMENT_SHELL
*ELEMENT_SOLID
*ELEMENT_TSHELL
(注意:编码为固体部分的章节)
VTK UnstructuredGrid只包含底层LS-DYNA元素的线性元素转换,并支持VTK_QUAD
、VTK_TRIANGLE
、VTK_TETRA
、VTK_WEDGE
和VTK_HEXAHEDRAL
。
问题和贡献
请随时在这个存储库中打开一个问题,提出您希望我添加的功能或需要修复的错误。
如果您想做出贡献,请参阅CONTRIBUTING.md。
许可证
源代码和内容受MIT许可协议保护,但LS-DYNA工件保留其原始的LS-DYNA和Ansys许可证。
请注意,这里使用的示例文件是从LS-DYNA示例下载的,并且具有网站上注明的以下使用许可
The input files and several class notes are available for download. The
download is free of charge, a login is not required. All examples are
presented with a brief description. You may find an example by checking a
specific class or by using the search functionality of the site.
The content is prepared for educational purposes. Hence, material
properties and other parameters might be non-physic for simplification.
项目详细信息
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源代码发行版
构建发行版
lsdyna-mesh-reader-0.1.3.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 22ca1ee34d8b64e0f0444a213512dd771c0bed3062cc36d5d02f8be4192c11af |
|
MD5 | 7ce7a3313a9dfc2f16b0210c984e63b0 |
|
BLAKE2b-256 | 8a956aa9792ee3a225030db0d8a48915b570dddf53ecdd84b9a2cfa2d7243f80 |
lsdyna_mesh_reader-0.1.3-cp312-cp312-win_amd64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | bdc0ca398b305f4f120098b67a004952faf2eef95fc4b10ff9ed453fa412f422 |
|
MD5 | 1a5b31eaa79010f24de74934cbd609e0 |
|
BLAKE2b-256 | 8b67e52f1eaf15cce15b85a9785877583f60b077f77b4b1a67cc317cb4d8a319 |
lsdyna_mesh_reader-0.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d17a2d473eff61ef173f8d09ae88304e5b2c60040f4a4a0404544b0e0759ea9a |
|
MD5 | 680a98fd4a736f0e07804946e998f9d0 |
|
BLAKE2b-256 | ec18d4a9e3e55945acd52a0f92623edea08a3d2d9d04e0bd30b06106fdc51194 |
lsdyna_mesh_reader-0.1.3-cp312-cp312-macosx_11_0_arm64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | fcec31c0a8e07461c2b2947493d976d51338d692ff0663a03a25cd81747f247d |
|
MD5 | 1314ace8192f044653bf99ce503c722c |
|
BLAKE2b-256 | 9c4d583277d451df3e7a53cfd8cef91939c4eeb68fbf55ededec0abce479fca0 |
lsdyna_mesh_reader-0.1.3-cp312-cp312-macosx_10_14_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ee86702cd31318c5edbefd94ebf698e2790264acd9b2dd021a4d480e7d8d2711 |
|
MD5 | bf17a689d62c3c5ad004645415c6404c |
|
BLAKE2b-256 | 1b198f493a01f4198ad24cf71b4c4538eba83276334f32a61b012af2a10dbfee |
lsdyna_mesh_reader-0.1.3-cp311-cp311-win_amd64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7861259e791a98ad5d4b688a6c2ab28e9bfb8eced147e97008194d0913f2ff56 |
|
MD5 | e5a017671980e2fefb193798608a5916 |
|
BLAKE2b-256 | ac2f01131d7b5d50ea37eb141cb80711042ab3eb1d57baa9c3a15f15dc9e7430 |
哈希值 对 lsdyna_mesh_reader-0.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0a97aec61e82fb2517847fa33aa3e4986600eda4de947c5bd3561bb6fc550f75 |
|
MD5 | 88a3204965f8c436e4c900eda6962cec |
|
BLAKE2b-256 | a2d8b4061ecea5d5a7afaa4d9d2a8386080b4f4b97ff6a6e2ea44edb58646f58 |
哈希值 对 lsdyna_mesh_reader-0.1.3-cp311-cp311-macosx_11_0_arm64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 08d2fb2ac4c3e3b3dcf5b2fc60c8b06d8176b65412f18500f3af46564371a717 |
|
MD5 | 8858a4f273a5e42954d6452527e93712 |
|
BLAKE2b-256 | 9ca075f4b34e88c7fa68abac9b9b7331fe4fea2c54c76d9da5fcefdad714fd51 |
哈希值 对 lsdyna_mesh_reader-0.1.3-cp311-cp311-macosx_10_14_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | be3564ada92d1dfe204672db3ae3eef0c2b0b8e2c2417faa7d03135af1f3917d |
|
MD5 | 285a4e3608d0797dab61bcff3ce634db |
|
BLAKE2b-256 | 747bf62a107d42ff11a500ff60909c46fea64eb96a68912829c0baea93197c7c |
哈希值 对 lsdyna_mesh_reader-0.1.3-cp310-cp310-win_amd64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | cfbf1d604aa08a9439eeee28bd6f620a6ccb0835329be16880df46f3ac34a78d |
|
MD5 | 36c7382d8af04311bb5d87210bab0563 |
|
BLAKE2b-256 | 65644c8f522ac0f349cb42bf6c23036ddaaba528a9ff587bf45471ff13ff095a |
哈希值 对 lsdyna_mesh_reader-0.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1d2e3a45b088982eb846ab2a0998803185394dbe4e02c5ede66c8c64363fb7f6 |
|
MD5 | c05425c1b33905824f65cd64787fad35 |
|
BLAKE2b-256 | edc5bb4abaa2869e9efe041af0029f6f69658cdc4d0e78442ffe7b13cfa4ee95 |
哈希值 对 lsdyna_mesh_reader-0.1.3-cp310-cp310-macosx_11_0_arm64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 704e80fc3febf4eb46753b6f89f5d481c329f989f9cdca2f4e038825d07791d2 |
|
MD5 | 82566b2baa1e2909862becf89e526d2d |
|
BLAKE2b-256 | 716a251b730aaadfafa3796e0d98b639bc69d6982c6bf85a7e8eaaf77a7a5bd1 |
哈希值 对 lsdyna_mesh_reader-0.1.3-cp310-cp310-macosx_10_14_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 48d3fcff0df0ac7e42cbdcf953253f022925ea46e9e7f553420f26cff46628d2 |
|
MD5 | 0a1c94f08e99b3bf54302f99385d9c62 |
|
BLAKE2b-256 | 193eb4a301fd50f7fa7d811898924907cf3ad02198854d12d1579fd632931819 |
哈希值 对 lsdyna_mesh_reader-0.1.3-cp39-cp39-win_amd64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | de5869f14e2fff0fc15fc798ef229593f367c91a266636a482dbf6ec8ad5f0ef |
|
MD5 | fae1fa7d276fdcd84ca9bf0857ff7e53 |
|
BLAKE2b-256 | 92e35c1b699cad18bb5f82e521f115f6b8fa66f675e9de47b058ea7da699d47c |
哈希值 对 lsdyna_mesh_reader-0.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 216668a034fa179653bd54161732020540869f34d8273fd47c1f0bfd9105f10b |
|
MD5 | 3370d67027e6ddceb03c1279f8301253 |
|
BLAKE2b-256 | 70a21364198c6ffd41fef8cdb21b860ac9cfc4a47d20146006a57c61548bd4aa |
哈希值 对 lsdyna_mesh_reader-0.1.3-cp39-cp39-macosx_11_0_arm64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 54274592936130a03238421a2c081b1d60181633eec467274c2cf7643d71f039 |
|
MD5 | e97fed777e993bfde69246cb78685c9c |
|
BLAKE2b-256 | 3284c1b84aaea5712bcbb28432b46ca8f2393ed9ce7d16661bce9947fc6e4412 |
哈希值 对 lsdyna_mesh_reader-0.1.3-cp39-cp39-macosx_10_14_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d6e76db30d8b14cebfef8f6836781a88d4053d3be4da33dbe5fa2235de7592bf |
|
MD5 | 85e33ea922193f8f6ae33475d849779e |
|
BLAKE2b-256 | b9aec40c1bf900830d7aaecd4db52fec8f6e716aa3945c8c84ecce82872007fa |