NetDEM Python API 参考文档
本文档提供了NetDEM软件的Python API接口说明,这些接口通过pybind11从C++代码绑定到Python。
模块划分
NetDEM的Python API分为以下十个模块:
- 基础模块:包含基本的几何和物理对象,如向量、矩阵、颗粒、墙体等。
- FEM模块:包含有限元相关的类,用于模拟可变形物体。
- Modifier模块:包含各种修改器,用于数据导出、力和运动控制、边界条件和分析工具。
- MPI模块:包含并行计算相关的类,用于大规模离散元模拟。
- PeriDigm模块:包含近场动力学相关的类,用于模拟物体断裂和破碎。
- Scene模块:包含场景管理相关的类,用于管理颗粒、墙体、形状和接触。
- Shape模块:包含各种几何形状的定义和操作,为离散元模拟提供几何表示。
- Simulation模块:包含模拟管理相关的类,用于控制和执行整个DEM模拟过程。
- Solver模块:包含求解器相关的类,用于模拟系统的动力学演化。
- Utils模块:包含各种实用工具类和函数,为其他模块提供基础功能支持。
基础模块
基础模块包含了NetDEM中最基本的数据结构和功能类。详细信息请参考基础模块文档。
FEM模块
FEM模块提供了有限元分析相关的功能。详细信息请参考FEM模块文档。
Modifier模块
Modifier模块包含了各种用于控制和分析模拟过程的工具。详细信息请参考Modifier模块文档。
MPI模块
MPI模块提供了并行计算相关的功能,用于支持大规模离散元模拟。目前主要包含:
MPIManager
类:用于管理MPI进程,提供进程间通信和数据同步功能- 获取当前进程的等级和进程总数的方法
- 进程间数据同步功能
详细信息请参考MPI模块文档。
PeriDigm模块
PeriDigm模块实现了基于近场动力学的物体断裂和破碎模拟功能。主要包含:
- 域离散化工具(
DomainSplittor
、LevelSetSplittor
和TetMeshSplittor
) - 材料和损伤模型(
PeriDigmMaterial
和PeriDigmDamageModel
) - 边界条件和计算块(
PeriDigmBoundaryCondition
和PeriDigmBlock
) - 模拟器和DEM耦合(
PeriDigmSimulator
和PeriDigmDEMCoupler
)
详细信息请参考PeriDigm模块文档。
Scene模块
Scene模块是NetDEM的核心部分,负责管理模拟中的所有元素。主要包含:
- 场景管理(
Scene
类,管理颗粒、墙体、形状和接触) - 颗粒和墙体(
Particle
、Wall
及其衍生类) - 接触处理(
ContactPP
和ContactPW
类) - 颗粒生成工具(
PackGenerator
、BondedSpheres
和BondedVoronois
类)
详细信息请参考Scene模块文档。
Shape模块
Shape模块提供了丰富的几何形状定义和操作功能,为模拟中的颗粒和墙体提供几何表示。主要包含:
- 基础形状类(
Shape
类及其衍生类) - 简单形状(
Sphere
、Plane
、Triangle
、Cylinder
、Ellipsoid
等) - 复杂形状(
SphericalHarmonics
、PolySuperEllipsoid
、TriMesh
等) - 隐式形状表示(
LevelSet
、NetSDF
等)
详细信息请参考Shape模块文档。
Simulation模块
Simulation模块是NetDEM的顶层模块,负责管理和执行整个离散元模拟过程。主要包含:
- 模拟管理(
Simulation
类,整合所有必要的组件) - 场景和求解器管理
- 并行计算支持
- 修改器系统集成
- 模拟状态控制
详细信息请参考Simulation模块文档。
Solver模块
Solver模块包含了各种求解器,用于模拟颗粒系统的动力学行为。详细信息请参考Solver模块文档。
Utils模块
Utils模块提供了各种实用工具类和函数,为其他模块提供基础功能支持。主要包含:
- 数学工具(
Math
子模块,提供数学常量和函数) - 几何处理(
STLModel
、LevelSetFunction
等,用于处理3D模型和隐式几何) - 网格生成(
WSCVTSampler
、Voronoi
等,用于生成高质量的点分布和网格) - 布尔运算(
CorkWrapper
,用于进行网格布尔运算)
详细信息请参考Utils模块文档。
请点击上述链接查看各模块的详细API说明。