
# ==============================
# flash-sim specific
# ==============================
# 注意: 目录/文件忽略规则必须放在下方 !*.* / !*/ 之后才能生效
# （gitignore 后定义优先，!*/ 会覆盖前置的目录忽略规则）

# ==============================
# Ignore all extensionless files
# ==============================
*
!*.*
!*/

# Exception: allow no-extension source files
!.gitignore
!.env.example
!Makefile
!Dockerfile
!LICENSE
!README
!NOTICE
!scripts/git-hooks/*
!scripts/*.sh
# 场景自生成的 FLASH 配置 (ConfigGenerator 产物, 发布包必需)
!**/sim_input*/Config

# ==============================
# 大文件/媒体排除 (必须在 !*.* 之后, 否则被反忽略覆盖)
# ==============================
*.pdf
*.png
*.pptx
*.ppt
*.avi
*.mp4
*.h5
*.hdf5

# ==============================
# 调试 / 运行产物 (根目录, 不提交)
# 必须放在 !*.* / !*/ 之后, 否则被反忽略覆盖
# ==============================
temp_delete/
# 项目专属虚拟环境（start_flash.py 使用；.venv 为 IDE 标准命名，默认）
.venv/
# 旧命名虚拟环境（历史遗留，一并忽略）
flash_venv/
# 备份核对调试记录
备份核对报告.md
# start_flash.py 生成的测试报告与日志
INSTALL_TEST_REPORT.txt
pytest_*.log
# laserslab1d 场景运行产物（EOS 元数据 / WSL 运行日志）
*.eosmeta.json
wsl_run.log

**/temp
**/tmp

*.mod

#
#脚本尽可能控制成py脚本、sh脚本
#文档文件统一使用md，若有必要可以特殊html
*.log
*.html
*.json
*.txt




# ================================================================
# My Projects (内部工作区, 不发布)
# ================================================================
.workbuddy/
.codebuddy/
**/collision_compression/
**/plasma_preparation/
**/SNBtest/**
#  白名单: 仅放行场景产出 Test/ 与自写文档 docs/
#  ⚠️ src/SNB 为 FLASH 源码树快照 (License §3 禁止再分发) → 保持忽略
!**/SNBtest/Test/
!**/SNBtest/Test/**/
!**/SNBtest/docs/
!**/SNBtest/docs/*.md
!**/SNBtest/Test/**/*.py
!**/SNBtest/Test/**/*.md
!**/SNBtest/Test/**/*.par
!**/SNBtest/Test/**/*.F90
!**/SNBtest/Test/**/*.f90
!**/SNBtest/Test/**/Makefile
!**/SNBtest/Test/**/Config
!**/SNBtest/Test/**/*.cn4
!**/SNBtest/Test/**/*.h
!**/SNBtest/Test/**/*.sh
!**/SNBtest/Test/**/*.bat
#**/private/

# ================================================================
# FLASH CENTER — 禁止再分发 (FLASH License Agreement §3)
# ================================================================
# 依据 FLASH License Agreement §3:
# "Users of the FLASH Code are not free to re-distribute the FLASH
#  Code, or any of its components, outside the Center."
#
# ⚠ 此区块必须放在 !*.* 之后，确保目录排除规则覆盖通用反排除。
# ⚠ 以下所有文件/目录均为 FLASH 版权材料、运行产物或内部文件，
#    严禁通过 Git 分发到 Gitee / GitHub 等公开平台。
# ================================================================

# --- FLASH 源码包 & 编译依赖 (任意层级) ---
**/FLASH4.8/
**/FLASH4.8.tar.gz
**/hdf5-1.8.12.tar.gz
**/hypre-2.9.0b.tar.gz
**/mpich-3.2.tar.gz

# --- FLASH SimulationMain 官方示例源码 ---
**/SimulationMain/

# --- FLASH 官方 LaserSlab 示例 (源码/表格/配置, 含根目录与 scenarios 下) ---
**/flash_demo/LaserSlab/
**/LaserSlabPAR.xlsx

# --- FLASH 分发的 EOS/不透明度表 ---
# IONMIX4 格式 .cn4/.cnr/.imx/.ses 表均来自 FLASH 分发, 禁止再分发。
# 用户自研生成的 Z*.cn4 表由文件末尾例外保留。
*.cn4
*.cnr
*.imx
*.imx.gz
*.ses
*.epsi

# --- FLASH 参考源码 (从 FLASH4.8 源码树复制的 refs/ref_f90s) ---
**/ref_f90s/
**/refs/
**/abjt_03.f
**/abjt_03

# --- IONMIX 源码 / MultiEOS 数据 (FLASH 分发组件) ---
#**/ionmix/
**/MultiEOS/

# --- FLASH 官方文档 (用户手册 4.8 等) ---
docs/flash4_ug_4p8.md
docs/flash4_ug_4p8_temp.txt
**/para_doc/

# --- FLASH 协议文件 (本地参考, 不随包分发; docs/ 下协议文本除外) ---
license_agreement_FLASH.txt

# --- HDF5 输出 (FLASH checkpoint/plot) ---
*_hdf5_chk_*
*_hdf5_plt_cnt_*

# --- Demo / 场景运行产物 (含 FLASH 二进制与 HDF5) ---
**/demo_hpc/demo_task/
**/demo_local/demo_task/
**/demo_task/
**/runs/
**/outputfiles/
**/output/
**/inputfiles/
**/temp/
flash_demo/new_struture/
scenarios/flash_demo/new_struture/

# --- 临时调试目录 (勿提交) ---
**/wsl_tmp/
runs_*/
test/scenarios/runs_*/
**/run_tools/runs_*/
test/temp_delete/
test/grid_rede/
test/grid_rede_backup_v9/
test/grid_rede_copy_main/
test/newpara/flash_input/
test/newpara/flash_profile/
test/newpara/output/
test/hdf5ploter_easy/output/

# --- 旧副本 / 备份目录 ---
scenarios - 副本/
input_gen/gen_eos_op_copy/
output_processors_copy/

# --- 备份/副本文件 ---
*.bak
* (*).F90
Makefile (*)
Config (*)


# ==============================
# Python
# ==============================
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
build/
develop-eggs/
dist/
dist_new/
dist_new2/
dist_wheel_only/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg


# ==============================
# IDEs
# ==============================
.vscode/
.idea/
*.swp
*.swo
*~


# ==============================
# 自研 EOS 表保留 (Z*.cn4 = ionmix 自生成, 发布包必需)
# ==============================
# 全局排除 *.cn4 (默认不发布); 唯一例外: Gen_eos_op_data/ 下以 Z 开头的
# ionmix 自研表 (Z*.cn4, 随包分发, 场景运行必需)。其余 cn4 (含 sim_input*、
# *-imx*、*-BADGER-* 等) 一律不分发。
!**/Gen_eos_op_data/**/Z*.cn4

# ==============================
# 场景生成文件 (不入库, 由 gen_flash_inputs.py 经 input_gen 生成)
# ==============================
# flash_input/ 下的 .par/Makefile/Config/F90/run 脚本/cn4/诊断图/日志
# 均由 ch_center/gen_flash_inputs.py 调用 input_gen 包生成 (同 inputfiles 模式);
# cn4 源文件存放于 flash/input_gen/gen_eos_op/eos_op_data/ (上方案例保留)。
# flash_output/ 为分析输出目录 (plots 等)。
flash/scenarios/**/flash_input/
flash/scenarios/**/flash_output/

# ==============================
# Credentials (never commit)
# ==============================
credentials.enc
.env

# ==============================
# OS files
# ==============================
.DS_Store
Thumbs.db
flash_work/

# Physics docs (本地知识库, 不推送)
physics/

# ================================================================
# PRIVATE — 用户自定义私有库 (不推送到 Gitee)
# ================================================================
# 以下为用户个人自定义的特殊场景/配置, 仅本地使用, 不随包分享。
# 如需分享, 请移除对应条目并重新提交。
# ================================================================

# 私有场景: grad_dens_sandwich (HE-CH-Si-CH-HE 渐变密度 CH)
scenarios/collision_compression/grad_dens_sandwich/

# 私有场景: thin_layer_sandwich (Al/CH/He 与 Si/CH/He 三层靶)
scenarios/collision_compression/thin_layer_sandwich/

# 私有场景: layer_tracer 参考数据已规范迁移至 Gen_eos_op_data (入库) +
# _par_layers.py (物理参数内嵌), tmp/ 参考目录已删除

# ==============================
# FLASH 版权材料 — IONMIX 文档/源 (重组后 flash/ 前缀路径)
# 注: IONMIX用户指南.md 为 PhySimX 自研中文文档, 需纳入版本控制, 故反选保留;
#     abjt_03 二进制/源码与 macfarlane1989.md 属第三方版权材料, 保持忽略。
# ==============================
flash/input_gen/gen_eos_op/ionmix/ionmix/docs/*
!flash/input_gen/gen_eos_op/ionmix/ionmix/docs/IONMIX用户指南.md
flash/input_gen/gen_eos_op/ionmix/ionmix/src/Ionmix/
**/macfarlane1989.md

# ==============================
# 重组后 flash/ 前缀路径 (标准布局)
# ==============================
flash/input_gen/gen_eos_op_copy/
flash/output_processors_copy/
flash/scenarios/collision_compression/grad_dens_sandwich/
flash/scenarios/collision_compression/thin_layer_sandwich/
flash/scenarios/collision_compression/thin_layer_sandwich/sim_input_*/
flash/scenarios/collision_compression/thin_layer_sandwich/sim_input_al/**
flash/scenarios/collision_compression/thin_layer_sandwich/sim_input_si/**
flash/scenarios/collision_compression/thin_layer_sandwich/**/*.cn4

# 临时 Gitee 链接测试工具 (不入库)
scripts/_gitee_link_test/

# 测试运行产物（不入库，由测试自动生成）
**/test_output.txt
flash/output_processors/test/test_output/

# eosop_pro 绘图包 — 测试生成产物（不入库，本地可保留）
# 注: 全局 *.html / *.log 已覆盖前两项, 此处显式列出以明确意图,
#      test_summary.json 为测试汇总(json) 亦属生成产物。
flash/input_gen/gen_eos_op/ionmix/ionmix/eosop_pro/test/report.html
flash/input_gen/gen_eos_op/ionmix/ionmix/eosop_pro/test/test_run_full.log
flash/input_gen/gen_eos_op/ionmix/ionmix/eosop_pro/test/test_summary.json

# 场景生成文件备份/遗留目录（不入库）
**/flash_input_old/

# ================================================================
# sandwich 场景 (收录自 collision_compression): 非 py 输入文件由
# gen_flash_inputs.py 从 sim_input_src.py / tables_imx.py / eos_op_data
# 按需生成, 一律不入库
# ================================================================
flash/scenarios/sandwich/**/sim_input*/
flash/scenarios/sandwich/**/sim_input*/**
flash/scenarios/sandwich/**/wsl_*.log
flash/scenarios/sandwich/**/*.png

# ================================================================
# SNBtest 场景例外 (置于文件尾部, 覆盖 flash_input/、physics/ 等全局规则)
# 仅放行场景运行必需输入; source_patches(F90 补丁) 与 src/(FLASH 源码)
# 属 FLASH 派生内容, License §3 禁止再分发 → 保持忽略 (修改记录见 md 文档)
# ================================================================
!flash/scenarios/private/SNB/SNBtest/Test/t001/flash_input/
!flash/scenarios/private/SNB/SNBtest/Test/t001/flash_input/*.par
!flash/scenarios/private/SNB/SNBtest/Test/t001/hpc_pack/
!flash/scenarios/private/SNB/SNBtest/Test/t001/hpc_pack/Makefile.h.hpc
!**/SNBtest/Test/**/*.hpc
