Hello FLASH! — 快速入门指南

📅 2026/8/7 7:40:19
Hello FLASH! — 快速入门指南
零依赖、一键安装 LaserSlab 1D 仿真 密度分析开箱即用flash-sim是 FLASH 高能量密度物理 (HEDP) 仿真代码的全功能 Python 封装。提供场景系统即插即用仿真入口、参数文件生成、多环境运行管理、HDF5 输出分析与自适应可视化的一站式工作流。仓库地址 (Repository)本项目托管于 Gitee (码云), 支持 HTTPS 克隆与在线浏览:https://gitee.com/physimx/flash操作命令HTTPS 克隆git clone https://gitee.com/physimx/flash.git在线浏览https://gitee.com/physimx/flash (Code/Issues/Releases 页签)版本标签0.0.000(首次发布) —git tag -l查看全部问题反馈通过 Gitee Issues 提交 (登录后新建 Issue)发布包已通过全局测试 (233 passed / 3 skipped) 与 FLASH 版权合规检查, (详见 许可 与 NOTICE)。概述hello_flash/是 FLASH 快速上手包包含从零安装到运行首个仿真并生成分析图表的完整流程。所有代码完全自包含无需外部模块依赖适合以下用户首次接触 FLASH的新手快速验证安装WSL (Windows Subsystem for Linux)环境用户超算 / HPC首次配置验证前期准备工作必读只需 3 步准备全部就绪后安装约 30–60 分钟。a. 安装 WSL UbuntuWindows PowerShell管理员运行wsl--install-d Ubuntu首次启动会设置 Linux 用户名和密码请记住密码sudo 安装依赖需要完成后重启电脑从开始菜单启动 Ubuntu。b. 下载 4 个软件包放入 flash/flash_src/软件包文件名下载地址多个备用任选其一FLASH4.8FLASH4.8.tar.gzhttps://flash.rochester.edu/site/flashcode/HDF51.8.12hdf5-1.8.12.tar.gzhttps://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8/hdf5-1.8.12/obtain51812.htmlhttps://github.com/HDFGroup/hdf5/releasesHYPRE2.9.0bhypre-2.9.0b.tar.gzhttps://pkgs.org/download/hyprehttps://github.com/hypre-space/hypre/releasesMPICH3.2mpich-3.2.tar.gzhttps://www.mpich.org/downloads/https://www.mpich.org/static/downloads/3.2/保存到flash/flash_src/或hello_flash/目录校验 4 个文件齐全ls-laflash_src/*.tar.gzc. 可选下载 IONMIX — 生成自定义材料表用与首次安装运行无关仅当后期需要用gen_eos_op生成自定义 EOS/不透明度表.cn4时才下载来源https://elsevier.digitalcommonsdata.com/datasets/8n4r3rh8kr/1 DOI10.17632/8n4r3rh8kr.1文件abjt_v1_0.gz→ 解压到input_gen/gen_eos_op/ionmix/ionmix/src/Ionmix/d. 点击执行 flash\_core\credentials\manage.py 设置凭证文件的用户名默认为hello⚠️不要直接执行脚本完成以上准备后把本 README 与脚本交给Agent AI 助手执行它会自动微调适配你的装置状态操作要点见后续「推荐方法」章节。Agent 使用记录Agent 对话用户仿照“flash\scenarios\flash_demo\hello_flash”帮我在当前的WSL中安装FLASH4.8并使用LaserSlab一维仿真进行测试 你可能需要微调代码注意提取使用flash\_core\credentials设置的专属用户名字段AgentAI:以下内容用户可以只简单了解即可由AgentAI进行具体理解和执行。目录结构scenarios/flash_demo/hello_flash/ ├── deploy_flash.py ← 一键部署脚本 (WSL/SSH1/SSH2 交互式菜单) ├── install_flash_wsl.sh ← [阶段1] WSL 安装脚本 (6步幂等安装) ├── run_hello_flash.sh ← [入口] 一键完成安装仿真分析 ├── run_and_collect.sh ← [阶段2] 仿真运行 结果收集 密度分析 ├── run_simulation.sh ← 仅运行仿真 (独立步骤) ├── compile_flash.sh ← 仅编译 FLASH (独立步骤) ├── collect_hdf5.sh ← 仅收集 HDF5 文件 (独立步骤) ├── analyze_density.py ← [阶段3] 密度时空演化分析 (HDF5 → PNG) ├── flash_user_lib.sh ← 用户名解析库 (credentials → 默认 hello, 勿硬编码) ├── FLASH_one_click_install.sh ← 完整一键安装 (含仿真分析, 旧版) ├── FLASH_Install_WSL.sh ← 早期 WSL 安装脚本 (历史遗留) ├── setup_hpc_flash.sh ← 超算配置参考 (不自动执行) ├── setup_makefile.sh ← Makefile.h 配置 (独立步骤) │ └── outputfiles/ ← 自动生成的输出目录 ├── hdf5files/laserslab1d/ ← 本地 WSL checkpoint 文件 ├── hdf5filesfrom_ssh1/laserslab1d/ ← SSH1 (NC-E) checkpoint 文件 ├── hdf5filesfrom_ssh2/laserslab1d/ ← SSH2 (BSCC-T6) checkpoint 文件 ├── plots/ ← 本地 WSL 分析图表 ├── plotsfrom_ssh1/ ← SSH1 分析图表 └── plotsfrom_ssh2/ ← SSH2 分析图表源码包说明重要本发布包不包含FLASH / MPICH / HDF5 / HYPRE / IONMIX 等第三方源码包受 FLASH License Agreement §3 约束禁止再分发。源码包目录flash_src/中的.tar.gz文件需用户自行下载具体下载地址与说明请参见本 README「前期准备工作 → b. FLASH 相关软件包的获取与下载」完整下载地址表input_gen/gen_eos_op/ionmix/ionmix/src/Ionmix/README.txtIONMIX EOS/不透明度表生成源码来自 Elsevier Digital Commons Data下载完成后放入flash_src/目录安装脚本会自动检测缺失时脚本会明确报错并列出所需文件。推荐方法通过 Agent AI 微调适配强烈建议⚠️不要直接点击脚本执行本教程的脚本是给Agent AI 助手使用的操作蓝图。推荐做法把本教程与脚本交给 Agent AI由 Agent结合你当前装置的实际情况WSL/Ubuntu 版本、gcc 编译器版本、内存核数、网络环境、sudo 权限等自动微调适配后执行。为什么推荐 Agent 方式直接执行脚本通过 Agent AI 微调适配需要手工处理环境差异gcc 版本、sudo 密码、网络代理等Agent 自动检测环境并调整编译参数Ubuntu 26.04 等新版源无 gcc-9 → 编译报错需自行排查Agent 自动改用系统编译器 兼容标志或安装旧版 gcc-9脚本默认参数如-np 1可能与你的装置不匹配Agent 根据核数/内存自动选择并行度出错时需逐行排查日志Agent 读取日志、定位根因、修复后重跑用户名/路径需手动配置Agent 自动读取flash._core.credentials的用户名使用步骤推荐工作流准备完成上文「前期准备工作」WSL 4 个软件包下载到位。打开 Agent AI 助手并把以下信息告诉它你的环境cat /etc/os-release、nproc、free -g、uname -a的输出源码包位置如flash/flash_src/目标安装 FLASH 4.8 并运行 LaserSlab 1D 仿真 密度分析Agent 会依次执行检测并微调脚本编译器版本、路径、并行度等安装系统依赖 → 编译 MPICH/HDF5/HYPRE → 解压配置 FLASH → 编译 flash4运行 LaserSlab 1D 仿真 → 收集 HDF5 → 调用analyze_density.py生成图表核对结果确认outputfiles/plots/下 3 张分析图生成。本仓库的实际 Agent 使用记录与截图见上文「Agent 使用记录」章节可参考其格式补充你自己的使用记录。第一次使用三阶段操作指南 阶段 1安装 FLASH选择合适的安装方式方式 A一键部署推荐cdscenarios/flash_demo/hello_flash python deploy_flash.pyAgent 方式推荐直接把python deploy_flash.py交给 Agent AI 执行见「推荐方法通过 Agent AI 微调适配」它会自动适配你的环境无需手动点选菜单。交互菜单选[1] Local WSL脚本自动完成安装系统依赖 (gcc-9, gfortran-9, LAPACK 等)从源码编译 MPICH 3.2 / HDF5 1.8.12 / HYPRE 2.9.0b解压并配置 FLASH 4.8编译 LaserSlab 1D 可执行文件耗时约 30-60 分钟取决于网络和 CPU方式 B手动分步安装适合排查问题# 第1步安装 FLASH 到 ~/用户名/FLASH/bashinstall_flash_wsl.sh# 查看安装日志ls-la~/用户名/FLASH/FLASH4.8/object/flash4# 确认可执行文件用户名说明用户名通过flash._core.credentials设置python -m flash._core.credentials user 名字。脚本会自动读取设置的用户名读取不到时使用默认用户名hello默认密码123见 credentials 的 SSH 凭据模板。所有脚本均不硬编码用户名详见下方「用户名设置」。方式 C仅编译重新编译或修复编译错误bashcompile_flash.sh 阶段 2运行仿真安装完成后运行 LaserSlab 1D 基准测试方式 A总入口脚本# 如果已安装跳过安装阶段bashrun_hello_flash.sh --skip-install方式 B分步运行# 第2步运行仿真 收集 HDF5 密度分析bashrun_and_collect.sh方式 C仅运行仿真不分析bashrun_simulation.sh仿真输出41 个 checkpoint 文件 (lasslab_hdf5_chk_*)80 个 plot 文件 (lasslab_hdf5_plt_cnt_*)网格从 4 块加密至约 36 块 (约 20 leaf)耗时约 3-10 分钟 阶段 3结果分析方式 A自动分析已在阶段 2 中包含run_and_collect.sh会自动调用analyze_density.py。方式 B手动分析# 分析本地 WSL 数据默认python3 analyze_density.py# 分析 SSH1 数据FLASH_SOURCE_SUFFIXfrom_ssh1 python3 analyze_density.py生成 3 张分析图文件名内容density_vs_x_evolution.png全部时间步 dens vs x 曲线 (viridis 色带)density_heatmap_and_stats.pngx-t 密度谱 最大/平均密度统计density_snapshots.png首/中/末时间步密度对比输出路径outputfiles/plots/各脚本详细说明脚本行数核心功能适用阶段deploy_flash.py793Python 一键部署交互菜单选目标机自动完成上传→安装→编译→运行→下载→分析 首次install_flash_wsl.sh411WSL 6步安装系统依赖 → MPICH → HDF5 → HYPRE → 解压FLASH → 编译。幂等设计中断可续 安装run_hello_flash.sh140Shell 总入口--skip-install跳过安装自动查找源码包目录 首次run_and_collect.sh249核心流程检测已有结果 → 运行仿真 → 复制HDF5 → 调用分析脚本 运行run_simulation.sh65纯仿真运行准备运行目录 → 复制EOS表参数文件 →mpirun -np 1 调试compile_flash.sh53纯编译./setupmake -j$(nproc)验证 flash4 生成 调试collect_hdf5.sh36纯收集从 FLASH 运行目录复制 HDF5 到 outputfiles/ 调试analyze_density.py410Python 密度分析读 HDF5 → 提取 dens → 输出 3 种分析图 分析FLASH_one_click_install.sh654旧版一键安装(含仿真分析)环境变量驱动配置(历史)FLASH_Install_WSL.sh329早期 WSL 安装步骤(手动)仅参考(历史)setup_hpc_flash.sh295超算配置参考提供完整安装思路但不自动执行 参考setup_makefile.sh51配置 FLASH Makefile.h替换 MPI/HDF5/HYPRE 路径添加 LAPACK 调试用户名设置重要FLASH 安装路径为~/用户名/FLASH/FLASH4.8/。用户名必须通过flash._core.credentials设置所有脚本install_flash_wsl.sh、run_hello_flash.sh、deploy_flash.py等会自动读取读取不到时使用默认用户名hello默认密码123。# 查看当前用户名python-mflash._core.credentials user# 设置专属用户名 (例如 physimx_user)python-mflash._core.credentials user physimx_user# 等价 Python 方式python-cfrom flash._core.credentials import set_user_name; set_user_name(physimx_user)代码中不得硬编码用户名具体用户名仅存在于 flash._core.credentials 中未读取到时的回退默认值为 hello。设置后 FLASH 安装/运行路径自动变为~/用户名/FLASH/FLASH4.8/。SSH 超算凭据含默认密码123同样通过flash._core.credentials管理python -m flash._core.credentials交互菜单。环境变量变量默认值说明FLASH_SIM_USER_DIR动态credentials 用户名回退helloFLASH 用户名优先于 credentials 读取FLASH_USER_HOME~/用户名旧变量名值已动态化用户个性命名文件夹兼容旧配置FLASH_SOURCE_SUFFIX(空)数据来源后缀 (from_ssh1,from_ssh2)安装后写入~/.bashrc的环境变量exportMPI_HOME/usr/local/mpichexportHDF5_HOME/usr/local/hdf5exportHDF5_ROOT/usr/local/hdf5exportHYPRE_HOME/usr/local/hypreexportPATH$MPI_HOME/bin:$HDF5_HOME/bin:$PATHexportLD_LIBRARY_PATH$MPI_HOME/lib:$HDF5_HOME/lib:$HYPRE_HOME/lib:$LD_LIBRARY_PATH三平台配置参考1. 本地 WSL (Ubuntu-22.04)项目值FLASH 安装路径~/用户名/FLASH/FLASH4.8/MPI从源码编译 →/usr/local/mpich/HDF5从源码编译 →/usr/local/hdf5/HYPRE从源码编译 →/usr/local/hypre/sudo可用运行方式mpirun -np 1输出后缀(无) →outputfiles/hdf5files/laserslab1d/2. SSH1 — ParaCloud NC-E项目值SSHssh.cn-zhongwei-1.paracloud.com:22, 凭据:flash_sshMPI/HDF5module load mpich/3.2-gcc9.3module load hdf5/1.8.18HYPRE用户空间~/用户名/FLASH/local/hypre/(需readlink -f解析符号链接)运行方式mpirun -np 4(或 sbatch)输出后缀from_ssh1→outputfiles/hdf5filesfrom_ssh1/3. SSH2 — ParaCloud BSCC-T6项目值SSHssh.cn-zhongwei-1.paracloud.com:8443, 凭据:flash_ssh_2状态端口 8443 当前不可达已知问题与解决方案HYPRE_PATH 符号链接问题 (超算)~展开路径与符号链接路径不一致编译时报错HYPREf.h: No such file or directory。解决REAL_HYPRE$(readlink-f~/用户名/FLASH/local/hypre)sed-is|^HYPRE_PATH .*|HYPRE_PATH $REAL_HYPRE|Makefile.hMPICH --allow-run-as-root (WSL)MPICH 3.2不支持--allow-run-as-root这是 OpenMPI 的参数。WSL 默认以 root 运行直接省略此参数即可。Python 命令 (WSL)FLASH 的setup脚本需要python不是python3。解决sudoln-sf$(whichpython3)/usr/local/bin/pythonFLASHBINARY ifeq 块Makefile.h 模板包含ifeq ($(FLASHBINARY),true)块可能引起编译错误。需要注释掉整个块。libgfortran 版本冲突 (超算)提示libgfortran.so.3, needed by liblapack.so, may conflict with libgfortran.so.5—— 仅为警告不影响编译。参考与致谢FLASH 仿真软件FLASHradiation-hydrodynamics code由 University of Chicago / University of Rochester 的Flash Center for Computational Sciencehttps://flash.rochester.edu开发维护。使用 FLASH 前必须在该网站接受FLASH License Agreement本包对 FLASH Center 协议的合规声明见LICENSE、NOTICE与docs/FLASH_CENTER_COMPLIANCE.md。flash-simflash 仿真辅助 Python 包致谢与商用使用本包产生的任何出版物请感谢绵阳市的 PhySimX 团队开发了该仿真辅助 Python 包flash-sim 的 Python 代码以 Apache 2.0 许可其商用须遵守所有适用许可含 FLASH 仿真引擎的 FLASH License Agreement §5商用场景下的授权与责任以届时适用的许可及书面约定为准。建议致谢文案“We acknowledge the PhySimX team (Mianyang, China) for developing the flash-sim auxiliary Python package used in this work.”完整条款见LICENSE、NOTICE与docs/FLASH_CENTER_COMPLIANCE.md。安装、依赖配置与初次使用建议本指南中关于 FLASH 的安装流程gcc/gfortran 版本选择、mpich / hdf5 / hypre 的源码编译安装与环境变量配置、./setupmake编译流程、flash.par与mpirun -np N ./flash4 -par_file xxx.par的运行方式、按算例分目录管理-objdir等具体操作参考了知乎专栏文章《FLASH个人总结4——FLASH的安装、依赖配置以及初次使用建议》https://zhuanlan.zhihu.com/p/17167173342。衷心感谢该文作者的详细总结与无私分享本指南中的安装脚本与初次使用流程从中获益良多本仓库实际使用 FLASH 4.8安装与使用思路与该文一致。后续步骤完成 Hello FLASH 后可以探索完整工作流flash/scripts/ └── run_global_tests.py ← 全局测试 flash/scenarios/ ← 即插即用场景系统 └── center_evolution/ ← CH 中心演化 input_gen/ ← 参数文件生成 (par_editor, par_calculator) flash_run/ ← 编译和运行管理 output_processors/ ← HDF5 输出分析和自适应可视化详见docs/README.md。