计算机断层扫描到有限元
项目描述
蜈蚣
计算机断层扫描到有限元。
ciclope处理微型计算机断层扫描 (microCT) 数据以生成有限元 (FE) 模型。
安装
使用 pip 安装。该标志[all]将安装运行完整管道和示例所需的可选依赖项。有关开发安装,请参阅开发指南。
pip install ciclope[all]
要运行示例,您需要安装DXchange:
conda install -c conda-forge dxchange
用法
ciclope管道可以作为脚本从命令行运行。向下滚动并查看此类使用的示例文件夹。要查看命令行脚本帮助运行:
ciclope -h
要在 python 中使用ciclope ,请使用以下命令导入包
import ciclope
图像预处理
ciclope.utils包含帮助您读取和预处理 3D 数据集以生成 FE 模型的功能。您可以跳过此步骤并将ciclope3D 数据用作numpy.ndarray,或直接与 3Dmeshio对象一起使用。
读取存储为 TIFF 堆栈的 3D CT 数据集:
from ciclope.utils.recon_utils import read_tiff_stack
input_file = '/path_to_your_file/slice_0000.tiff'
data_3D = read_tiff_stack(input_file)
vs = np.ones(3) * 0.06 # voxelsize [mm]
分割并移除未连接的体素:
from skimage import morphology
from ciclope.utils.preprocess import remove_unconnected
BW = data_3D > 142 # fixed global threshold
BW = morphology.closing(BW, morphology.ball(2)) # optional step
L = remove_unconnected(BW)
该图像现在已准备好用于 FE 模型生成。
体素FE
生成线弹性压缩测试的voxel-FE模型:
import ciclope
input_template = "./input_templates/tmp_example01_comp_static_bone.inp"
# 生成非结构化网格
mesh = ciclope . 体素 vol2ugrid ( data_3D , vs )
# 生成 CalculiX 输入文件
ciclope . 体素 mesh2voxelfe (网格, input_template , 'foo.inp' ,关键字= [ 'NSET' , 'ELSET' ])
四面体-FE
生成四面体网格。
ciclope用于pygalmesh四面体网格生成:
mesh = ciclope.tetraFE.cgal_mesh(L, vs, 'tetra', max_facet_distance=0.2, max_cell_circumradius=0.1)
生成非线性拉伸试验的四面体有限元模型
input_template = "./input_templates/tmp_example02_tens_static_steel.inp"
# generate CalculiX input file
ciclope.tetraFE.mesh2tetrafe(mesh, input_template, 'foo.inp', keywords=['NSET', 'ELSET'])
后期处理
ciclope.utils.postprocess.paraviewplot调用ParaView生成并保存所选模型标量场的图:
绘制垂直位移场的中面UD3:
ciclope.utils.postprocess.paraview_plot('test_data/tooth/results/Tooth_3_scaled_2.vtk', slicenormal="xyz",
RepresentationType="Surface", Crinkle=True, ColorBy=['U', 'D2'], Roll=90,
ImageResolution=[1024, 1024], TransparentBackground=True,
colormap='Cool to Warm')
绘制 Von Mises 应力的中面S_Mises:
ciclope.utils.postprocess.paraview_plot("test_data/tooth/results/Tooth_3_scaled_2.vtk", slicenormal="xyz",
RepresentationType="Surface", Crinkle=False, ColorBy="S_Mises", Roll=90,
ImageResolution=[1024, 1024])
环状流水线
下表显示了从 CT 数据生成 FE 模型的通用管道,可以使用 ciclope 执行:
| # | 步 | 描述 | 蚱蜢旗 |
|---|---|---|---|
| 1. | 加载 CT 数据 | ||
| 2. | 预处理 | 高斯平滑 | --smooth |
| 调整图像大小 | -r |
||
| 添加嵌入 | (尚未实施) | ||
| 添加大写字母 | --caps |
||
| 3. | 分割 | 如果留空,则使用 Otsu 方法 | -t |
| 删除未连接的体素 | |||
| 4. | 网格化 | 三角形的外壳网格 | --shell_mesh |
| 四面体的体积网格 | --vol_mesh |
||
| 5. | 有限元模型生成 | 应用边界条件 | |
| 材质映射 | -m,--mapping |
||
| 体素有限元 | --voxelfe |
||
| 四面体 FE | --tetrafe |
蟋蟀注意事项
- 使用pygalmesh ( CGAL的 Python 前端)生成四面体网格
- 用于可视化的高分辨率表面网格是使用PyMCubes模块生成的。
- 所有网格导出都使用meshio模块执行。
- ciclope通过单独的模板文件处理材料属性和 FE 分析参数(例如边界条件、模拟步骤..)的定义。文件夹material_properties和input_templates包含一个模板文件库,可用于生成 FE 模拟。
- 可以在此处和此处找到其他CalculiX示例库和模板文件
例子
实施例1:骨小梁的voxel-uFE模型;线性压缩试验 
管道可以从命令行执行:
ciclope test_data/LHDL/3155_D_4_bc/cropped/3155_D_4_bc_0000.tif test_data/LHDL/3155_D_4_bc/results/3155_D_4_bc_voxelFE.inp -vs 0.0195 0.0195 0.0195 -r 2 -t 63 --smooth 1 --voxelfe --template input_templates/tmp_example01_comp_static_bone.inp --verbose
该示例显示如何:
- 加载和检查 microCT 体积数据
- 应用高斯平滑
- 重新采样数据集
- 分割骨组织
- 删除未连接的体素簇
- 将 3D 二进制文件转换为体素有限元模型,以便在 CalculX 或 Abaqus 中进行仿真
- 线性、静态分析;位移驱动
- 局部材料映射(数据集灰度值到骨组织弹性模量)
- 在 Calculix 中启动模拟
- 将 Calculix 输出转换为 .VTK 以在 Paraview 中进行可视化
- 在 Paraview 中可视化仿真结果
实施例2:骨小梁的四面体-uFE模型;线性压缩试验 
管道可以从命令行执行:
ciclope test_data/LHDL/3155_D_4_bc/cropped/3155_D_4_bc_0000.tif test_data/LHDL/3155_D_4_bc/results/3155_D_4_bc.inp -vs 0.0195 0.0195 0.0195 -r 2 -t 63 --smooth 1 --tetrafe --max_facet_distance 0.025 --max_cell_circumradius 0.05 --vol_mesh --template input_templates/tmp_example01_comp_static_bone.inp
示例 #3 - 嵌入牙齿的四面体有限元模型 
嵌入人牙的压缩试验。
示例 #4 - 不锈钢泡沫的非线性四面体有限元模型 
管道可以从命令行执行:
ciclope input.tif output.inp -vs 0.0065 0.0065 0.0065 --smooth -r 1.2 -t 90 --vol_mesh --tetrafe --template ./../input_templates/tmp_example02_tens_Nlgeom_steel.inp -v
该示例显示如何:
- 加载和检查同步加速器 microCT 体积数据
- 应用高斯平滑
- 重新采样数据集
- 分段钢
- 删除未连接的体素簇
- 生成四面体的体积网格
- 生成模型外壳的高分辨率三角形网格(用于可视化)
- 将 3D 二进制转换为四面体 FE 模型,以便在 CalculX 或 Abaqus 中进行仿真
- 非线性、准静态分析定义:具有材料塑性的拉伸试验。欲了解更多信息,请访问:github.com/mkraska/CalculiX-Examples
- 局部材质映射
- 在 Calculix 中启动模拟
- 将 Calculix 输出转换为 .VTK 以在 Paraview 中进行可视化
- 在 Paraview 中可视化仿真结果
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
ciclope-1.1.9.tar.gz
(36.1 kB
查看哈希)
内置分布
ciclope-1.1.9-py3-none-any.whl
(38.4 kB
查看哈希)