基于JAX的高性能3D拓扑优化,使用SIMP方法和27点模板无矩阵FEM求解器。
-
topology_optimization_3d_optimized.py - 主程序
- 27点模板方法实现K@u(完全向量化)
- JAX GSPMD双GPU并行(沿X轴分片)
- SIMP方法 + OC优化器
- 自动微分计算敏度
-
setup_jax_env.sh - JAX环境设置
- 设置LD_LIBRARY_PATH指向CUDA库
- 运行代码前必须执行:
source setup_jax_env.sh
-
visualize_result.py - 结果可视化
- 生成VTK文件用于ParaView
- 绘制3D密度场
-
plot_convergence.py - 收敛曲线绘制
- 解析日志文件
- 生成学术风格的收敛图
# 1. 设置环境
source setup_jax_env.sh
export XLA_PYTHON_CLIENT_PREALLOCATE=false
# 2. 运行优化
python3 topology_optimization_3d_optimized.py
# 3. 可视化结果
python3 visualize_result.py- 120x60x60网格: 98-99% GPU利用率,每次迭代1.2-2.7秒
- 64x32x32网格: ~30% GPU利用率,每次迭代0.2-1.3秒
在 topology_optimization_3d_optimized.py 中修改:
NELX, NELY, NELZ = 120, 60, 60 # 网格尺寸
VOLFRAC = 0.3 # 目标体积分数
MAX_ITER = 20 # 最大迭代次数
PENAL = 3.0 # SIMP惩罚因子_archive_old_files/- 旧版本代码和测试文件_archive_scripts_docs/- 辅助脚本和文档
状态: ✅ 生产就绪
更新: 2026-01-23