Skip to main content

计算机断层扫描到有限元

项目描述

蜈蚣

计算机断层扫描到有限元。

GitHub 许可证 派皮版本 PyPI 版本 文件状态

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

蟋蟀注意事项


例子

实施例1:骨小梁的voxel-uFE模型;线性压缩试验 用 Jupyter 制作

管道可以从命令行执行:

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模型;线性压缩试验 用 Jupyter 制作

管道可以从命令行执行:

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 - 嵌入牙齿的四面体有限元模型 用 Jupyter 制作

嵌入人牙的压缩试验。

示例 #4 - 不锈钢泡沫的非线性四面体有限元模型 用 Jupyter 制作

管道可以从命令行执行:

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 中进行仿真
  • 在 Calculix 中启动模拟
  • 将 Calculix 输出转换为 .VTK 以在 Paraview 中进行可视化
  • 在 Paraview 中可视化仿真结果

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

ciclope-1.1.9.tar.gz (36.1 kB 查看哈希)

已上传 source

内置分布

ciclope-1.1.9-py3-none-any.whl (38.4 kB 查看哈希

已上传 py3