# pycalphad_demo **Repository Path**: xran_magic/pycalphad_demo ## Basic Information - **Project Name**: pycalphad_demo - **Description**: 相图计算库 - **Primary Language**: Unknown - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-10 - **Last Updated**: 2025-07-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ThermoCalc Web - 热力学计算平台 基于pycalphad库的Web版热力学计算应用,支持二元合金相图计算和相平衡分析。 ## 功能特点 ### 🔬 核心功能 - **二元合金相图计算** - 支持Al-Mg, Al-Zn, Al-Ni, Al-Fe, Nb-Re等合金系统 - **平衡状态计算** - 给定温度和成分条件下的相平衡分析 - **交互式界面** - 现代化Web界面,参数设置简单直观 - **高质量图表** - 基于matplotlib的专业相图可视化 ### 🌟 应用优势 - **即开即用** - 无需复杂配置,双击即可启动 - **专业准确** - 基于成熟的pycalphad热力学计算库 - **跨平台** - 支持Windows、Linux、macOS - **B/S架构** - 支持多用户同时访问 - **智能识别** - 自动扫描TDB文件,无需手动配置 - **动态刷新** - 支持运行时添加新合金系统 ## 系统要求 ### 软件环境 - **操作系统**: Windows 10/11 (推荐), Linux, macOS - **Python版本**: Python 3.10.x (必需) - **浏览器**: Chrome 90+, Firefox 88+, Edge 90+ (现代浏览器) - **内存**: 最低4GB RAM (推荐8GB以上) - **存储**: 至少2GB可用空间 ### Python依赖包 主要依赖包将自动安装: - fastapi >= 0.104.0 - numpy >= 1.24.0 - scipy >= 1.11.0 - matplotlib >= 3.7.0 - symengine >= 0.9.2 ## 安装部署 ### 1. 获取源码 ```bash # 如果使用git git clone cd pycalphad_demo # 或直接解压下载的源码包 ``` ### 2. 环境准备 确保已安装Python 3.10: ```bash python --version # 应显示: Python 3.10.x ``` ### 3. 项目清理(可选) 如果你想让项目更简洁,可以删除大型的pycalphad源码目录: **Windows**: 双击 `cleanup_project.bat` **Linux/macOS**: 运行 `bash cleanup_project.sh` 这会删除pycalphad源码目录(约100MB),因为: - TDB数据库文件已复制到 `backend/data/` - pycalphad库将通过pip安装 ### 4. 快速启动(Windows) #### 方法一:使用启动脚本(推荐) 1. **启动后端服务** - 双击 `start_backend.bat` - 脚本会自动创建虚拟环境并安装依赖 - 等待显示 "Application startup complete" 2. **启动前端服务** - 双击 `start_frontend.bat` - 前端服务将在端口8080启动 3. **访问应用** - 在浏览器中打开: http://127.0.0.1:8080 - 开始使用热力学计算功能 #### 方法二:手动启动 ```cmd # 1. 创建虚拟环境 python -m venv venv venv\Scripts\activate # 2. 安装依赖 pip install -r backend\requirements.txt # 3. 启动后端 cd backend python main.py # 4. 新开命令行窗口,启动前端 cd frontend python -m http.server 8080 ``` ### 5. Linux/macOS 启动 ```bash # 1. 创建虚拟环境 python3 -m venv venv source venv/bin/activate # 2. 安装依赖 pip install -r backend/requirements.txt # 3. 启动后端 cd backend python main.py # 4. 新开终端,启动前端 cd frontend python -m http.server 8080 ``` ## 使用指南 ### 界面介绍 #### 主界面布局 - **页头**: 应用标题和描述 - **功能卡片**: 选择计算类型(相图计算/平衡计算) - **参数面板**: 设置计算参数 - **结果区域**: 显示计算结果和图表 #### 支持的合金系统 1. **Al-Mg (铝镁合金)** - 轻质结构材料 2. **Al-Zn (铝锌合金)** - 高强度合金 3. **Al-Ni (铝镍合金)** - 高温合金材料 4. **Al-Fe (铝铁合金)** - 工业合金 5. **Nb-Re (铌铼合金)** - 超高温合金 ### 相图计算 #### 操作步骤 1. **选择合金系统** - 点击"合金系统"下拉框 - 选择要计算的二元合金系统 - 系统会自动设置推荐的温度范围 2. **设置温度参数** - **最低温度**: 相图计算的起始温度 (K) - **最高温度**: 相图计算的结束温度 (K) - **温度步长**: 温度网格的精度 (K) 3. **设置成分参数** - **最小成分**: 第二组分的最小摩尔分数 (0-1) - **最大成分**: 第二组分的最大摩尔分数 (0-1) - **成分步长**: 成分网格的精度 4. **图像设置** - **图像宽度/高度**: 生成相图的像素尺寸 - **包含相平衡线**: 是否在相图上绘制连接线 5. **执行计算** - 点击"计算相图"按钮 - 等待计算完成(通常几秒到几十秒) - 查看生成的相图和相信息 #### 参数建议 - **温度步长**: 10K(快速计算)到5K(高精度) - **成分步长**: 0.02(标准)到0.01(高精度) - **图像尺寸**: 800x600(标准)到1200x900(高分辨率) ### 平衡计算 #### 操作步骤 1. **选择合金系统** - 从下拉框选择合金系统 - 系统会自动生成成分输入框 2. **设置条件** - **温度**: 计算温度点 (K) - **压力**: 系统压力 (Pa,通常为标准大气压101325) 3. **设置成分** - 输入各组分的摩尔分数 - 确保各组分之和为1.0 - 例如:Al-Mg系统中,Al=0.7, Mg=0.3 4. **执行计算** - 点击"计算平衡"按钮 - 等待计算完成 - 查看平衡相数据和详细信息 #### 结果解读 - **平衡相数**: 该条件下稳定存在的相数量 - **相分数**: 各相在平衡状态下的体积/摩尔分数 - **相成分**: 各相内部的元素成分分布 - **Gibbs自由能**: 系统的热力学稳定性指标 ## 实际应用案例 ### 案例1:铝镁合金设计 **背景**: 设计轻质结构用Al-Mg合金 ``` 系统: Al-Mg 温度范围: 300-800K 成分范围: Mg 0-40% 应用: 分析不同Mg含量下的相变行为 ``` ### 案例2:高温合金分析 **背景**: 分析Al-Ni高温合金的相稳定性 ``` 系统: Al-Ni 温度: 1200K 成分: Al 50%, Ni 50% 应用: 确定高温下的平衡相组成 ``` ### 案例3:热处理优化 **背景**: 优化Al-Zn合金热处理工艺 ``` 系统: Al-Zn 温度范围: 400-700K 应用: 确定最佳固溶处理温度 ``` ## 故障排除 ### 常见问题 #### 1. 后端服务启动失败 **问题**: 显示"ImportError: No module named 'pycalphad'" **解决**: ```cmd # 重新安装依赖 pip install -r backend\requirements.txt # 或手动安装核心包 pip install fastapi uvicorn numpy scipy matplotlib ``` #### 2. 前端无法连接后端 **问题**: 显示"无法连接到后端服务" **解决**: - 确认后端服务已启动(端口8000) - 检查防火墙设置 - 确认后端服务日志无错误 #### 3. 计算结果异常 **问题**: 相图显示不完整或计算失败 **解决**: - 检查参数设置是否合理 - 降低计算精度(增大步长) - 确认选择的合金系统TDB文件存在 #### 4. 图片显示问题 **问题**: 相图图片无法显示 **解决**: - 检查backend/static目录权限 - 确认matplotlib正确安装 - 重启后端服务 ### 性能优化 #### 提高计算速度 1. **减小网格密度** - 温度步长: 10K → 20K - 成分步长: 0.02 → 0.05 2. **降低图像分辨率** - 图像尺寸: 800x600 → 600x450 3. **硬件配置** - 使用SSD存储 - 增加内存到8GB以上 - 使用多核CPU ## 技术架构 ### 后端架构 ``` backend/ ├── main.py # API入口和路由 ├── models.py # 数据模型定义 ├── thermocalc_service.py # 核心计算服务 ├── data/ # TDB热力学数据库文件 │ ├── Al-Mg_Zhong.tdb │ ├── alzn_mey.tdb │ ├── NI_AL_DUPIN_2001.TDB │ └── ... ├── static/ # 动态生成的相图图片 └── requirements.txt # Python依赖包 ``` ### 前端架构 ``` HTML5 + CSS3 + JavaScript ├── index.html # 主页面 ├── styles.css # 样式定义 └── app.js # 应用逻辑 ``` ### API接口 - `GET /api/health` - 健康检查 - `GET /api/alloy-systems` - 获取合金系统列表 - `POST /api/phase-diagram` - 计算相图 - `POST /api/equilibrium` - 计算平衡状态 - `GET /api/phase-diagram-image/{filename}` - 获取相图图片 ## 开发扩展 ### 添加新合金系统(智能识别) #### 🚀 新功能:自动TDB识别 现在支持智能识别TDB文件,无需手动配置! **操作步骤**: 1. **复制TDB文件** - 将新的TDB文件复制到 `backend/data/` 目录 2. **刷新系统** - 在Web界面点击"刷新系统"按钮 3. **自动识别** - 系统会自动解析TDB文件并生成配置 4. **即时可用** - 新的合金系统立即出现在选择列表中 **支持的TDB格式**: - `.tdb` 和 `.TDB` 扩展名 - 标准CALPHAD格式 - 二元、三元及多元合金系统 **自动识别内容**: - ✅ 合金系统名称(如:Al-Cu、Fe-Cr-Ni) - ✅ 组成元素列表 - ✅ 可用相列表 - ✅ 推荐温度范围 - ✅ 主要组分(相图X轴) - ✅ 中文描述和应用领域 #### 📋 手动配置(高级用户) 如需自定义配置,可在 `thermocalc_service.py` 中手动添加: ```python "Cu-Zn": { "description": "铜锌合金系统", "tdb_file": "cuzn.tdb", "components": ["CU", "ZN", "VA"], "temperature_range": {"min": 300, "max": 1300}, "primary_component": "ZN" } ``` ### 自定义计算功能 可以扩展以下功能: - 三元相图计算 - 温度-时间-转变(TTT)曲线 - 连续冷却转变(CCT)曲线 - 热力学性质计算(焓、熵、热容等) ## 许可协议 本项目基于MIT许可证开源,可自由使用、修改和分发。 ## 技术支持 如遇问题,请: 1. 查阅本文档的故障排除部分 2. 检查pycalphad官方文档: https://pycalphad.org/ 3. 提交Issue到项目仓库 --- **ThermoCalc Web v1.0** - 让热力学计算更简单高效!