AnsysLink/simulation_mode_removal_checklist.md
2025-08-11 13:58:59 +08:00

5.5 KiB
Raw Permalink Blame History

Simulation Mode Removal Checklist

概述

本文档列出了需要移除的所有simulation_mode相关代码基于代码库扫描结果。

需要移除的文件和代码

1. 核心PyMechanical组件

1.1 backend/pymechanical/session_manager.py

需要移除的代码:

  • __init__(self, simulation_mode: bool = False) 参数
  • self.simulation_mode = simulation_mode 赋值
  • 所有 if self.simulation_mode: 条件分支约15处
  • 仿真模式回退逻辑:
    self.simulation_mode = True
    return self.start_session(batch_mode)
    
  • get_session_info() 中的 "simulation_mode": self.simulation_mode

具体位置:

  • 第38行self.simulation_mode = simulation_mode
  • 第69行if self.simulation_mode:
  • 第154行self.simulation_mode = True
  • 第160行self.simulation_mode = True
  • 第183行if not self.simulation_mode and not os.path.exists(file_path):
  • 第189行if self.simulation_mode:
  • 第305行if self.simulation_mode:
  • 第403行if self.simulation_mode:
  • 第463行if self.simulation_mode:
  • 第507行if self.simulation_mode:
  • 第559行if self.simulation_mode:
  • 第635行if self.simulation_mode:
  • 第700行if self.simulation_mode:
  • 第793行if self.simulation_mode:
  • 第841行if self.simulation_mode:
  • 第931行if self.simulation_mode:
  • 第980行if self.simulation_mode:
  • 第1065行"simulation_mode": self.simulation_mode,

1.2 backend/pymechanical/mesh_quality_checker.py

需要移除的代码:

  • 仿真模式检测逻辑第74-78行
  • self.simulation_mode 属性设置
  • if self.simulation_mode: 条件分支第92行
  • _simulate_quality_check() 方法

1.3 backend/utils/visualization_exporter.py

需要移除的代码:

  • 仿真模式检测逻辑第67-71行
  • self.simulation_mode 属性设置
  • if self.simulation_mode: 条件分支第103行、第440行
  • _simulate_image_export() 方法
  • get_export_summary() 中的 'simulation_mode': self.simulation_mode

1.4 backend/utils/mechdb_reader.py

需要移除的代码:

  • __init__(self, simulation_mode: bool = False) 参数
  • self.simulation_mode = simulation_mode 赋值
  • if self.simulation_mode: 条件分支第47行
  • _simulate_mechdb_reading() 方法

2. API路由层

2.1 backend/api/routes.py

需要移除的代码:

  • generate_mesh() 函数中的simulation_mode参数处理
    simulation_mode = False
    if request.is_json and request.json:
        simulation_mode = request.json.get('simulation_mode', False)
    
  • 传递给处理函数的simulation_mode参数

2.2 backend/utils/mesh_processor.py

需要移除的代码:

  • process_blade_mesh_with_state_updates() 函数的simulation_mode参数
  • process_blade_mesh() 函数的simulation_mode参数
  • 传递给ANSYSSessionManager的simulation_mode参数

3. 测试文件

3.1 需要更新的测试文件

以下测试文件需要移除simulation_mode参数

真实ANSYS测试移除simulation_mode=False

  • test/test_verify_mesh.py
  • test/test_simple_verify.py
  • test/test_simple_mesh.py
  • test/test_real_ansys.py
  • test/test_pymechanical_debug.py
  • test/test_named_selections.py
  • test/test_mesh_success.py
  • test/test_mesh_like_example.py
  • test/test_mesh_generation.py
  • test/test_mesh_files.py
  • test/test_mesh_controller.py
  • test/test_integrated_mesh_controls.py
  • test/test_geometry_import.py

仿真模式测试(需要删除或重写):

  • test/test_suite.py 中的 test_session_manager_simulation_mode()
  • test/test_named_selections.py 中的 test_simulation_mode()
  • test/test_mesh_quality.py 中的仿真模式测试
  • test/test_mesh_processor.py 中的simulation_mode=True调用
  • test/test_mesh_generation.py 中的仿真模式测试
  • test/test_mesh_controller.py 中的仿真模式测试
  • test/test_integrated_mesh_controls.py 中的 test_simulation_mode()
  • test/test_visualization_exporter.py 中的仿真模式断言
  • test/test_mechdb_reader.py 中的仿真模式测试

4. 配置和文档

4.1 需要更新的文档

  • 移除用户文档中关于仿真模式的说明
  • 更新API文档移除simulation_mode参数
  • 更新README中的使用示例

移除策略

阶段1核心组件清理

  1. 从ANSYSSessionManager开始移除所有仿真逻辑
  2. 更新其他PyMechanical组件
  3. 清理工具类中的仿真模式

阶段2API层清理

  1. 移除API路由中的simulation_mode参数处理
  2. 更新mesh_processor函数签名
  3. 确保所有调用都使用真实模式

阶段3测试更新

  1. 移除所有仿真模式测试
  2. 更新真实ANSYS测试移除simulation_mode参数
  3. 确保测试覆盖真实功能

阶段4文档和配置

  1. 更新所有相关文档
  2. 清理配置文件
  3. 更新部署脚本

验证清单

  • 代码库中不再包含"simulation_mode"字符串(除了注释和文档)
  • 所有ANSYSSessionManager调用都不传递simulation_mode参数
  • 所有API调用都只使用真实ANSYS功能
  • 测试套件运行正常且只测试真实功能
  • 文档已更新移除仿真模式说明

风险评估

高风险区域

  1. ANSYSSessionManager: 核心组件,影响所有功能
  2. API路由: 影响前端集成
  3. 测试套件: 需要确保测试覆盖度不降低

缓解措施

  1. 分步骤进行,每步都进行测试验证
  2. 保留备份版本以便回滚
  3. 在测试环境充分验证后再部署到生产环境