NetDEM Python API 参考文档 - DEM模块

本文档提供了NetDEM软件中离散元法(DEM)相关的Python API接口说明。

目录

ContactModel

ContactModel是所有接触模型的基类,定义了接触模型的基本属性和方法。

属性

属性名 类型 描述
label str 接触模型的描述性标签

方法

方法名 参数 返回值 描述
__init__ - 创建一个新的ContactModel实例
SetProperty name: str, value: float - 设置接触模型的特定属性值

LinearSpring

LinearSpring是一个使用线性弹簧元素来评估接触力和力矩的接触模型,继承自ContactModel

属性

属性名 类型 默认值 描述
kn float 2e6 法向刚度参数,用于计算接触力
kt float 1e6 切向刚度参数,用于计算接触力
beta float 0.7 恢复系数,用于计算接触力
mu float 0.5 摩擦系数,用于计算接触力

方法

方法名 参数 返回值 描述
__init__ - 创建一个新的LinearSpring实例,使用默认参数
__init__ kn: float, kt: float, mu: float, beta: float - 创建一个新的LinearSpring实例,使用指定的参数

ParallelBond

ParallelBond是一个使用平行键模型来评估两个颗粒之间的力和力矩的接触模型,继承自ContactModel

属性

属性名 类型 默认值 描述
kn float 2e6 法向刚度参数,用于计算接触力
kt float 1e6 切向刚度参数,用于计算接触力
max_sig_n float 1.0e6 最大法向应力,用于计算最大允许力
max_sig_t float 1.0e6 最大切向应力,用于计算最大允许力
beta float 0.0 阻尼系数

方法

方法名 参数 返回值 描述
__init__ - 创建一个新的ParallelBond实例,使用默认参数
__init__ kn: float, kt: float, sig_n: float, sig_t: float, beta: float - 创建一个新的ParallelBond实例,使用指定的参数

ContactSolverSettings

ContactSolverSettings是一个包含接触求解器相关设置的容器类。

枚举

SolverType

描述
gjk 使用GJK(Gilbert-Johnson-Keerthi)算法求解接触
sdf 使用SDF(Signed Distance Field)算法求解接触
automatic 自动选择合适的求解器

属性

属性名 类型 默认值 描述
solver_type SolverType SolverType.automatic 用于接触计算的求解器类型
gjk_use_erosion bool False 是否在GJK求解器中使用侵蚀
gjk_erosion_ratio_initial float 0.01 GJK求解器中使用的初始侵蚀比率
gjk_erosion_ratio_increment float 0.01 GJK求解器中每次侵蚀比率的增量
sdf_potential_type int 0 SDF求解器中使用的势函数类型
sdf_use_equivalent_stiffness bool True 是否使用等效刚度,使其与传统线性或Hertz接触中的刚度相同

方法

方法名 参数 返回值 描述
__init__ - 创建一个新的ContactSolverSettings实例,使用默认参数

ContactSolverFactory

ContactSolverFactory是一个用于创建和管理接触求解器的工厂类。

属性

属性名 类型 描述
settings ContactSolverSettings 用于接触求解器行为的设置

方法

方法名 参数 返回值 描述
__init__ - 创建一个新的ContactSolverFactory实例
__init__ factory: ContactSolverFactory - 从现有的ContactSolverFactory创建一个新实例(复制构造函数)
__copy__ ContactSolverFactory 创建当前ContactSolverFactory的副本

DEMSolver

DEMSolver是一个用于执行离散元方法(DEM)模拟的求解器类。

枚举

CyclePoint

描述
pre_cycle 循环开始前的初始设置
pre_update_links 更新链接列表之前
pre_update_contact 更新接触之前
pre_update_fc_p 将接触力应用于颗粒之前
pre_update_fc_w 将接触力应用于墙壁之前
pre_update_motion_p 更新颗粒运动之前
pre_update_motion_w 更新墙壁运动之前
post_cycle 循环结束

属性

属性名 类型 默认值 描述
timestep float 1.0e-4 用于积分颗粒运动的时间步长
contact_solver_factory ContactSolverFactory - 用于存储颗粒和墙壁之间接触的求解器的工厂对象

方法

方法名 参数 返回值 描述
__init__ - 创建一个新的DEMSolver实例