问题标签 [nastran]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
matlab - 使用 matlab 读取 f06 文件(Nastran)的最快方法
我必须使用 MATLAB 从 Nastran 读取几个结果文件。我需要导入有关位于文件中间的位移矢量的信息(但我知道有关位移的部分开始和结束的行。)。
这些文件的格式如下:
- 它们被分成“页”,每页有固定的行数
- 每个页面都有一个标题,我不需要导入
- 数据列具有固定宽度(以下是文件“一页”的示例)
我在matlab中写过一个函数,但是速度极慢,这个过程是我代码的瓶颈。(这些文件非常大,我需要处理很多):我正在寻找最快的方式来阅读它们。
你有什么想法吗?
谢谢编辑:我已经添加了我的代码
python - 使用 numpy 在 Python 中导入 nastran 节点卡组
如果我想将 Nastran Deck 导入 Python 数组,一举使用 numpy。我该怎么办?我哪里错了?
我有一个文件,里面只有网格。网格均使用 Nastran 的短翻译器(8 个字符)等间距
如果我理解正确,使用 Numpy 的 dtype 命令会很棒。这是我的代码:
我得到的错误是一个浮点错误,但是我期望 dtype 一次从字符串中提取 8 个字符。这是错误:
帮助表示赞赏。
PS 能否请一些人制作一个 nastran 标签,大量数据处理是在 nastran 中完成的,这需要智能编程。这会很有帮助。
nastran - Patran 和 Virtual Lab 之间的 bdf 格式差异
这是我的问题,我收到了一个 bdf 格式的白车身,通过读取文件,它似乎是通过 Patran 2013 创建的,我需要对白车身进行一些更改。我使用 LMS Virtual Lab 进行修改,但不幸的是,使用 Virtual Lab 我只能导入 bdf 文件,然后在修改后我需要将工作导出到新的 bdf 文件中。一个显着的区别是 bdf 文件的大小从 128MB 缩短到 92MB。
我的下一步是通过 MD Nastran 计算正常模态分析,它与原始 bdf 文件一起工作,给我一个 OP2 结果文件。但是,它运行修改后的 bdf 文件时,会像原始文件一样给出退出(0)(这意味着没有异常退出),然后当我尝试查看生成的 OP2 文件(在 Nastran NX 中)时,它告诉我它可以' t 找到任何结果(而在原始结果中)。
有什么想法吗 ?
python - 用python读取nastran几何文件
我想做的事
我正在尝试使用 python 解析 nastran 文件的几何信息。我目前的尝试使用 NumPy 以及正则表达式。快速读取数据并且结果是 NumPy 数组很重要。
Nastran 文件格式
一个 nastran 文件可能如下所示:
我只对文件的正确部分感兴趣。那里的信息分别以 8 个字符的块形式出现,分别用于 x、y 和 z 坐标。上述坐标的常见表示是
到目前为止我尝试了什么
到目前为止,我尝试使用正则表达式和 NumPy 来避免各种 python for 循环以尽可能快地处理数据。将完整文件读入内存并将其存储在fContent
我尝试的变量中后:
然而,这对于-3.-14
表达式来说是不够的。一种解决方案是遍历正则表达式和替换的结果字符串元组,.-
然后.e-
从字符串元组列表中创建 NumPy 数组。(上面的代码中没有显示)。但是,我认为这种方法会很慢,因为它涉及对所有找到的正则表达式元组进行循环并执行替换。
我在找什么
我正在寻找任何快速读取数据的方法。我目前的希望是成功处理“ -3.-14
”问题的智能正则表达式。正则表达式需要替换所有.-
字符,.e-
但前提是.
不在 8 个字符块的末尾。到目前为止,我无法创建这样的正则表达式。但正如我所说,任何其他快速读取数据的方式也是非常受欢迎的。
nastran - MSC Nastran .f06 输出文件的编号上的“D”代表什么?
我使用 MSC Nastran 进行了颤振分析,我想提取广义空气动力学矩阵,即 .f06 输出文件中的 Qhh。
我有点成功,但如图所示,数字包括'D',而不是'E',这对我来说很新。
有谁知道这个数字中的“D”代表什么?
谢谢。
python - 读取和解码二进制文件以获得结果
我想读取和解码二进制文件以获取值。
在我用来读取文件的代码下方:
这里是我输出的一部分:
b'\xaf\xc9Dq\xdd\xa8\xc44\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9e\xdd\x1f\x004\x08\x00\x00\x00\xb0 \x97EHq\xccD{\xdc\xc3\xc44\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9f\xdd\x1f\x004\x08\x00\x00\x00\ xb0\x97E3S\xc1D{4\xbf\xc44\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\xdd\x1f\x004\x08\x00\x00\x00\ xb0\x97E\xe1\xc2\xc2D\xc3\xed\xd7\xc44\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa9\xdd\x1f\x004\x08\ x00\x00\x00\xb0\x97Ef\xb6\xb7D\xa4\xd8\xd1\xc44\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb2\xdd\x1f\ x004\x08\x00\x00\x00\xb0\x97ER\x10\xb7DR\xc8\xea\xc44\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb5\xdd\ x1f\x004\x08\x00\x00\x00\xb0\x97E\xa40\xacD\xec1\xe3\xc44\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbc\ xdd\x1f\x004\x08\x00\x00\x00\xb0\x97E\xcd|\xa9D\x00@\xfc\xc44\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\ x00\xbd\xdd\x1f\x004\x08\x00\x00\x00\xb0\x97E\x1f\xed\x9eD\x1f\x15\xf3\xc44\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xec\x01\ x00\x00\x04\x00\x00\x00\xfb\xff\xff\xff\x04\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\ x00\x04\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\ x0c\x00\x00\x00\xff\xff\x00\x00\xff\xff\x00\x00\xff\xff\x00\x00\x0c\x00\x00\x00\x04\x00\x00\x00\xfa\ xff\xff\xff\x04\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x00\x00\ x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x02\x00\x00\ x00\x04\x00\x00\x00\x08\x00\x00\x00GEOM3x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x0c\x00\x00\x00\ xff\xff\x00\x00\xff\xff\x00\x00\xff\xff\x00\x00\x0c\x00\x00\x00\x04\x00\x00\x00\xfa\xff\xff\xff\x04\ x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x04\x00\ x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\ x00\x08\x00\x00\x00GEOM3x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x0c\x00\x00\x00\ xff\xff\x00\x00\xff\xff\x00\x00\xff\xff\x00\x00\x0c\x00\x00\x00\x04\x00\x00\x00\xfa\xff\xff\xff\x04\ x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x04\x00\ x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\ x00\x08\x00\x00\x00GEOM3
我能做些什么来解码输出?
二进制文件可以在这里下载:https ://www.dropbox.com/s/uimba2xojc55uii/modele_petite_zone.op2?dl=0
python - PyTables vs Matlab HDF5 读取时间
我有一个来自 NASTRAN 的 HDF5 输出文件,其中包含模式形状数据。我正在尝试将它们读入 Matlab 和 Python 以检查各种后处理技术。有问题的文件位于这两个测试的本地目录中。该文件是 1.2 GB 的半大文件,但就我之前读过的 HDF5 文件而言肯定没有那么大。我要访问的表中有 17567342 行和 8 列。第一列和最后一列是整数,中间 6 列是浮点数。
MATLAB:
最后一个操作非常慢(可以以小时为单位)。
Python:
最后一个操作基本上是即时的。然后我可以像访问data
一个 numpy 数组一样访问它。我显然错过了关于这些命令正在做什么的一些非常基本的东西。我认为这可能与数据转换有关,但我不确定。如果我这样做,type(data)
我会回来numpy.ndarray
并type(data[0])
返回numpy.void
。
将我想要的数据集读入 Matlab 的正确(即快速)方法是什么?
python - Python Nastran 子进程轮询
我正在通过 Python 运行 Nastran 模拟。
这些模拟往往会在没有反馈的情况下运行相当长的一段时间,因此我正在尝试自动读取输出文件以获取相关数据并打印出来。
为此,我需要在子进程运行时运行一些代码。但是,这似乎不起作用。作为一个简单的测试,我在subprocess
命令下编写了这段代码:
不幸的是,代码似乎卡在subprocess
命令上并等待它完成,此时nastran
变成一个CompletedProcess
类并且不能再被轮询,这是我收到的错误。
关于如何让 Python 正确轮询我的 Nastran 子进程的任何想法?
finite-element-analysis - 对于屈曲分析,必须将所有力乘以得到的特征值,还是仅乘以压缩载荷?
我正在尝试在圆柱壳结构上使用 Nastran 进行线性屈曲分析(sol 105)。我的理解是,我对结构施加的压缩载荷必须乘以得到的特征值才能得到屈曲载荷。这给了我预期的结果。
然而,现在我应用一个单一的扰动载荷 (SPL),一个小的横向力沿着圆柱体的中间作用在一个网格点上。我的理解是 SPL 的大小保持不变,(与压缩载荷不同,我将其与特征值相乘以获得屈曲载荷。)我获得的结果不是我所期望的,因为屈曲载荷不应该减少根据关于这个主题的理论,随着 SPL 的增加。
我想知道是否有人知道我做错了什么。我觉得我的错误可能很容易,但我还没有能够解决它。以下是有关我的实施的更多信息:
- 轴向压缩力分布在圆柱体的顶部网格点上。
- SPL(横向点载荷)和轴向载荷都添加到静态分析子工况中。然后屈曲子案例使用静态子案例进行分析。这就是我理解应该这样做的方式。
边界条件:
- SPC1 在底部网格点约束 123 (xyz) 方向。
- SPC1 在顶部网格点约束 12 (xy) 方向。