从CalcluliX输入(.inp)文件读取网格。

ccxmeshreader的Python项目详细描述


CCX读卡器

PyPI versionConda versionBuild Status

简介

从CalcluliX输入(.inp)文件读取网格。在

仅支持定义网格的有限关键字集。有关详细信息,请参见Supported Keywords。在

使用

fromccxmeshreaderimportread_meshmesh=read_mesh('path/to/some.inp')

支持的关键字

*节点

节点及其坐标将被解析并添加到由node_coordinates_by_number键中的read_mesh返回的字典中。在

node_coordinates_by_number键包含一个字典,其中key是节点号,value是坐标,作为一个三元素元组,具有浮点值。在

例如,给定以下*NODE定义:

^{pr2}$
mesh=read_mesh('example.inp')print(mesh['node_coordinates_by_number'])
{
    1: (1.0, 0.0, 0.1),
    2: (3.0, 1.0, 2.0),
    3: (0.9, 5.0, 7.0)
}

当前不支持节点集,并且忽略可选的NSET参数。在

*元素

元素及其关联的节点被解析并添加到由element_dict_by_type键中的read_mesh返回的字典中。在

element_dict_by_type键包含一个字典,其中key是元素类型,value是另一个字典,其中key是元素编号, value是与元素相关联的节点号列表。在

例如,给定以下*ELEMENT定义:

*ELEMENT, TYPE=C3D20R, ELSET=Eall
1,  1, 2, 3
2,  4, 5, 6
mesh=read_mesh('example.inp')print(mesh['element_dict_by_type'])
{
    'C3D20R': {
        1: [1, 2, 3]
        2: [4, 5, 6]
    }
}

支持以逗号,结尾的连续数据行。例如:

*ELEMENT, TYPE=C3D20R, ELSET=Eall
1,  1, 2, 3,
    4, 5, 6
2,  7, 8, 9
mesh=read_mesh('example.inp')print(mesh['element_dict_by_type'])
{
    'C3D20R': {
        1: [1, 2, 3, 4, 5, 6]
        2: [7, 8, 9]
    }
}

如果提供了ELSET参数,那么元素集将被添加到read_mesh网格中返回的element_set_by_name字典中,并带有相应的元素编号。在

例如,根据上面的*ELEMENT定义:

mesh=read_mesh('example.inp')print(mesh['element_set_by_name'])
{
    'Eall': {1, 2}
}

*ELSET

元素集定义被解析并添加到read_meshelement_set_by_name键中返回的字典中。在

element_set_by_name键包含一个字典,其中key是元素集的名称,value是一组元素编号。在

例如,给定以下*ELEMENT*ELSET定义:

*ELEMENT, TYPE=S4, ELSET=E1
1, 1, 2, 3,
   4, 5, 6
2, 7, 8, 9

*ELSET, ELSET=E2, GENERATE
1, 4

*ELSET,ELSET=E3
E2, 5, 6
mesh=read_mesh('example.inp')print(mesh['element_set_by_name'])
{
    'E1': {1, 2},
    'E2': {1, 2, 3, 4}
    'E3': {1, 2, 3, 4, 5, 6}
}

可选的GENERATE参数与start、end和step有关。在

*包括

读取由*INCLUDE关键字指定的文件,但当前仅限于相对文件路径,并且假定与传递给read_mesh的路径相关。在

还不支持递归includes(即先前包含的文件中的*INCLUDE语句)。在

接近

这个库采用的方法是逐行读取while循环中的.inp文件,直到没有剩下的行,然后将组成网格的节点和元素收集到字典中。在

它不使用将.inp文件解析为抽象语法树的中间步骤,因为这样做成本很高,而且可能涉及到解析库。在

因此,ccxmeshreader可以被视为重量轻、性能优良。在

局限性

不支持关键字行的延续。在

例如,尝试读取以下.inp文件:

*ELEMENT, TYPE=C3D20R,
ELSET=Eall

引发ccxmeshreader.ParserError。在

单元测试

单元测试包含在tests/目录中,可以使用以下命令运行:

python -m unittest discover tests "*_test.py"

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何更新映射中的值?   从AmazonS3下载java文件   java BufferedWriter write()方法不工作   java如何在资源包中使用JSF标记/如何在资源包中重写URL?   变量的java“var”命名   java lambda表达式是否有与之关联的on对象,以及为什么“this”不引用lambda表达式的对象?   java XX:OmitStackTraceInFastThrow似乎什么都没做   java使用LWJGL创建隐藏画布   java如何在Spring配置文件中配置Hibernate   Hadoop CDH5中的java垃圾收集持续时间   您如何使用java进行日程安排?   toString方法的java洞察   谷歌地图上的java更新标记   java在检查类型后将父对象作为子对象传递   java Hibernate save单独成功,但如果运行时几乎没有其他测试,则会失败   浏览器历史系统中循环的java乘法   Java中的图像映射   json Java使用流API解析字符串