Skip to content

Suki123123/JAX-Top

Repository files navigation

3D拓扑优化 - JAX双GPU并行实现

基于JAX的高性能3D拓扑优化,使用SIMP方法和27点模板无矩阵FEM求解器。

📁 核心文件说明

🔴 核心代码(必需)

  1. topology_optimization_3d_optimized.py - 主程序

    • 27点模板方法实现K@u(完全向量化)
    • JAX GSPMD双GPU并行(沿X轴分片)
    • SIMP方法 + OC优化器
    • 自动微分计算敏度
  2. setup_jax_env.sh - JAX环境设置

    • 设置LD_LIBRARY_PATH指向CUDA库
    • 运行代码前必须执行:source setup_jax_env.sh

🟢 辅助工具(可选)

  1. visualize_result.py - 结果可视化

    • 生成VTK文件用于ParaView
    • 绘制3D密度场
  2. 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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors