[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-google-deepmind--torax":3,"tool-google-deepmind--torax":65},[4,23,32,40,49,57],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":22},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,2,"2026-04-05T10:45:23",[13,14,15,16,17,18,19,20,21],"图像","数据工具","视频","插件","Agent","其他","语言模型","开发框架","音频","ready",{"id":24,"name":25,"github_repo":26,"description_zh":27,"stars":28,"difficulty_score":29,"last_commit_at":30,"category_tags":31,"status":22},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,3,"2026-04-04T04:44:48",[17,13,20,19,18],{"id":33,"name":34,"github_repo":35,"description_zh":36,"stars":37,"difficulty_score":29,"last_commit_at":38,"category_tags":39,"status":22},519,"PaddleOCR","PaddlePaddle\u002FPaddleOCR","PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来，转换成计算机可读取的结构化数据，让机器真正“看懂”图文内容。\n\n面对海量纸质或电子文档，PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域，它扮演着连接图像与大型语言模型（LLM）的桥梁角色，能将视觉信息直接转化为文本输入，助力智能问答、文档分析等应用场景落地。\n\nPaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显：不仅支持全球 100 多种语言的识别，还能在 Windows、Linux、macOS 等多个系统上运行，并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目，PaddleOCR 既能满足快速集成的需求，也能支撑前沿的视觉语言研究，是处理文字识别任务的理想选择。",74913,"2026-04-05T10:44:17",[19,13,20,18],{"id":41,"name":42,"github_repo":43,"description_zh":44,"stars":45,"difficulty_score":46,"last_commit_at":47,"category_tags":48,"status":22},3215,"awesome-machine-learning","josephmisiti\u002Fawesome-machine-learning","awesome-machine-learning 是一份精心整理的机器学习资源清单，汇集了全球优秀的机器学习框架、库和软件工具。面对机器学习领域技术迭代快、资源分散且难以甄选的痛点，这份清单按编程语言（如 Python、C++、Go 等）和应用场景（如计算机视觉、自然语言处理、深度学习等）进行了系统化分类，帮助使用者快速定位高质量项目。\n\n它特别适合开发者、数据科学家及研究人员使用。无论是初学者寻找入门库，还是资深工程师对比不同语言的技术选型，都能从中获得极具价值的参考。此外，清单还延伸提供了免费书籍、在线课程、行业会议、技术博客及线下聚会等丰富资源，构建了从学习到实践的全链路支持体系。\n\n其独特亮点在于严格的维护标准：明确标记已停止维护或长期未更新的项目，确保推荐内容的时效性与可靠性。作为机器学习领域的“导航图”，awesome-machine-learning 以开源协作的方式持续更新，旨在降低技术探索门槛，让每一位从业者都能高效地站在巨人的肩膀上创新。",72149,1,"2026-04-03T21:50:24",[20,18],{"id":50,"name":51,"github_repo":52,"description_zh":53,"stars":54,"difficulty_score":46,"last_commit_at":55,"category_tags":56,"status":22},2234,"scikit-learn","scikit-learn\u002Fscikit-learn","scikit-learn 是一个基于 Python 构建的开源机器学习库，依托于 SciPy、NumPy 等科学计算生态，旨在让机器学习变得简单高效。它提供了一套统一且简洁的接口，涵盖了从数据预处理、特征工程到模型训练、评估及选择的全流程工具，内置了包括线性回归、支持向量机、随机森林、聚类等在内的丰富经典算法。\n\n对于希望快速验证想法或构建原型的数据科学家、研究人员以及 Python 开发者而言，scikit-learn 是不可或缺的基础设施。它有效解决了机器学习入门门槛高、算法实现复杂以及不同模型间调用方式不统一的痛点，让用户无需重复造轮子，只需几行代码即可调用成熟的算法解决分类、回归、聚类等实际问题。\n\n其核心技术亮点在于高度一致的 API 设计风格，所有估算器（Estimator）均遵循相同的调用逻辑，极大地降低了学习成本并提升了代码的可读性与可维护性。此外，它还提供了强大的模型选择与评估工具，如交叉验证和网格搜索，帮助用户系统地优化模型性能。作为一个由全球志愿者共同维护的成熟项目，scikit-learn 以其稳定性、详尽的文档和活跃的社区支持，成为连接理论学习与工业级应用的最",65628,"2026-04-05T10:10:46",[20,18,14],{"id":58,"name":59,"github_repo":60,"description_zh":61,"stars":62,"difficulty_score":10,"last_commit_at":63,"category_tags":64,"status":22},3364,"keras","keras-team\u002Fkeras","Keras 是一个专为人类设计的深度学习框架，旨在让构建和训练神经网络变得简单直观。它解决了开发者在不同深度学习后端之间切换困难、模型开发效率低以及难以兼顾调试便捷性与运行性能的痛点。\n\n无论是刚入门的学生、专注算法的研究人员，还是需要快速落地产品的工程师，都能通过 Keras 轻松上手。它支持计算机视觉、自然语言处理、音频分析及时间序列预测等多种任务。\n\nKeras 3 的核心亮点在于其独特的“多后端”架构。用户只需编写一套代码，即可灵活选择 TensorFlow、JAX、PyTorch 或 OpenVINO 作为底层运行引擎。这一特性不仅保留了 Keras 一贯的高层易用性，还允许开发者根据需求自由选择：利用 JAX 或 PyTorch 的即时执行模式进行高效调试，或切换至速度最快的后端以获得最高 350% 的性能提升。此外，Keras 具备强大的扩展能力，能无缝从本地笔记本电脑扩展至大规模 GPU 或 TPU 集群，是连接原型开发与生产部署的理想桥梁。",63927,"2026-04-04T15:24:37",[20,14,18],{"id":66,"github_repo":67,"name":68,"description_en":69,"description_zh":70,"ai_summary_zh":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":76,"owner_name":77,"owner_avatar_url":78,"owner_bio":79,"owner_company":80,"owner_location":80,"owner_email":80,"owner_twitter":80,"owner_website":81,"owner_url":82,"languages":83,"stars":92,"forks":93,"last_commit_at":94,"license":95,"difficulty_score":10,"env_os":96,"env_gpu":97,"env_ram":98,"env_deps":99,"category_tags":107,"github_topics":80,"view_count":10,"oss_zip_url":80,"oss_zip_packed_at":80,"status":22,"created_at":108,"updated_at":109,"faqs":110,"releases":141},3657,"google-deepmind\u002Ftorax","torax","TORAX: Tokamak transport simulation in JAX","Torax 是一款由 Google DeepMind 开源的可微分托卡马克核心输运模拟器，专为核聚变研究中的快速正向建模、脉冲设计、轨迹优化及控制器开发而打造。它基于 Python 和 JAX 框架编写，旨在解决传统模拟工具在计算速度慢、难以进行梯度分析以及扩展新物理模型时手续繁琐等痛点。\n\n这款工具特别适合聚变领域的科研人员、控制算法工程师以及希望将机器学习引入物理模拟的开发者使用。Torax 的核心亮点在于其“可微分”特性：利用 JAX 的自动微分能力，用户无需手动推导复杂的雅可比矩阵，即可直接对仿真结果进行灵敏度分析或执行基于梯度的非线性偏微分方程求解。这不仅大幅加速了轨迹优化和数据驱动的参数识别过程，还让集成机器学习代理模型（如 QuaLiKiz 神经网络）变得自然流畅。\n\n在功能上，Torax 涵盖了离子与电子的热输运、粒子输运及电流扩散等耦合物理过程，支持多种数值求解器，并能灵活导入各类平衡位形文件。通过与经典模拟器 RAPTOR 的对比验证，Torax 在保证计算精度的同时，为聚变能源的研究与设计提供了一个高效、灵活且易于扩展的现代化仿真平台。","[![Unittests](https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Ftorax\u002Factions\u002Fworkflows\u002Fpytest.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Ftorax\u002Factions\u002Fworkflows\u002Fpytest.yml)\n\n## What is TORAX?\n\nTORAX is a differentiable tokamak core transport simulator aimed for fast\nand accurate forward modelling, pulse-design, trajectory optimization, and\ncontroller design workflows. TORAX is written in Python using JAX, with\nthe following motivations:\n\n- Open-source and extensible, aiding with flexible workflow coupling\n- JAX provides auto-differentiation capabilities and code compilation for fast\nruntimes. Differentiability allows for gradient-based nonlinear PDE solvers for\nfast and accurate modelling, and for sensitivity analysis of simulation results\nto arbitrary parameter inputs, enabling applications such as trajectory\noptimization and data-driven parameter identification for semi-empirical models.\nAuto-differentiability allows for these applications to be easily extended with\nthe addition of new physics models, including ML-surrogates, or new parameter\ninputs, by avoiding the need to hand-derive Jacobians\n- Python-JAX is a natural framework for the coupling of ML-surrogates of physics\nmodels\n\nFor more comprehensive documentation, see our [readthedocs page](https:\u002F\u002Ftorax.readthedocs.io\u002F).\n\nTORAX, at v1.0.0, has the following physics and numerics feature set:\n\n- Coupled PDEs of ion and electron heat transport, electron particle transport,\nand current diffusion\n    - Finite-volume-method discretization\n    - Multiple solver options: linear with Pereverzev-Corrigan terms and the\n    predictor-corrector method, nonlinear with Newton-Raphson, nonlinear with\n    optimization using the jaxopt library\n    - Poloidal flux boundary conditions based on either total current or loop\n    voltage at the last-closed-flux-surface\n- Ohmic power, ion-electron heat exchange, fusion power, Bremsstrahlung,\nimpurity line radiation, an [[ICRH ML-surrogate]](https:\u002F\u002Fmeetings.aps.org\u002FMeeting\u002FDPP24\u002FSession\u002FNP12.106) (as-yet covering limited regimes),\n- Neoclassical bootstrap current and conductivity with the analytical Sauter\n  model\n- Coupling to the [[QLKNN_7_11]](https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Ffusion_surrogates\u002F)\nand QLKNN10D\n[[van de Plassche et al, Phys. Plasmas 2020]](https:\u002F\u002Fdoi.org\u002F10.1063\u002F1.5134126)\nQuaLiKiz neural network surrogates for physics-based turbulent transport\n- General geometry, provided via CHEASE, FBT, or EQDSK equilibrium files\n    - For testing and demonstration purposes, a single CHEASE equilibrium file\n    is available in the `data\u002Fthird_party\u002Fgeo` directory. It corresponds to an\n    ITER hybrid scenario equilibrium based on simulations in\n    [[Citrin et al, Nucl. Fusion 2010]](https:\u002F\u002Fdoi.org\u002F10.1088\u002F0029-5515\u002F50\u002F11\u002F115007),\n    and was obtained from [PINT](https:\u002F\u002Fgitlab.com\u002Fqualikiz-group\u002Fpyntegrated_model).\n    A PINT license file is available in `data\u002Fthird_party\u002Fgeo`\n    - Time dependent geometry is supported by providing a time series of geometry files\n- Simple pedestal models using a local adaptive source to set internal boundary\nconditions\n- Sawtooth triggering and profile redistribution\n\nAdditional heating and current drive sources can be provided by user-provided\nanalytical models, or user-provided prescribed data.\n\nModel implementation was verified through direct comparison of simulation\noutputs to the RAPTOR\n[[Felici et al, Plasma Phys. Control. Fusion 2012]](https:\u002F\u002Fiopscience.iop.org\u002Farticle\u002F10.1088\u002F0741-3335\u002F54\u002F2\u002F025002)\ntokamak transport simulator.\n\nThis is not an officially supported Google product.\n\n## Development roadmap\n\nA [development roadmap](https:\u002F\u002Ftorax.readthedocs.io\u002Fen\u002Flatest\u002Froadmap.html#development-roadmap)\nis outlined in our readthedocs pages.\n\n## Installation guide\n\n### Requirements\n\nInstall Python 3.11 or greater.\n\nMake sure that tkinter is installed:\n\n```shell\nsudo apt-get install python3-tk\n```\n\n### How to install\n\n#### Prepare a virtual environment\n\nInstall Virtualenv (if not already installed):\n\n```shell\npip install --upgrade pip\n```\n\n```shell\npip install virtualenv\n```\n\nCreate and activate a virtual environment\n\n```shell\npython3 -m venv toraxvenv\nsource toraxvenv\u002Fbin\u002Factivate\n```\n\n#### Install from PyPI\n\nThe simplest way to use TORAX is to install it via PyPI:\n\n```shell\npip install torax\n```\n\nYou can check that everything runs as it should:\n\n```shell\nrun_torax --config=examples\u002Fbasic_config.py --quit\n```\n\nIf you plan to help develop TORAX, you will need to clone the repository, see\n[contributing](https:\u002F\u002Ftorax.readthedocs.io\u002Fen\u002Flatest\u002Fcontributing.html) and\n[contribution_tips](https:\u002F\u002Ftorax.readthedocs.io\u002Fen\u002Flatest\u002Fcontribution_tips.html#contribution-tips)\n\n### Running an example\n\nThe following command will run TORAX using the default configuration file\n`examples\u002Fbasic_config.py`.\n\n```shell\nrun_torax --config='examples\u002Fbasic_config.py'\n```\n\nSimulation progress is shown by a terminal progress bar indicating the current\ntime and percentage completed.\n\nTo run more involved, ITER-inspired simulations, run:\n\n```shell\nrun_torax --config='examples\u002Fiterhybrid_rampup.py'\n```\n\nand\n\n```shell\nrun_torax --config='examples\u002Fiterhybrid_predictor_corrector.py'\n```\n\nAdditional configuration is provided through flags which append the above\nrun command, and environment variables. For example, for increased output\nverbosity, you can run with the `--log_progress` flag.\n\n```shell\nrun_torax  --config='examples\u002Fiterhybrid_rampup.py' --log_progress\n```\n\n#### Set environment variables\n\n##### Error checking\n\nIf true, error checking is enabled in internal routines. Used for debugging.\nDefault is false since it is incompatible with the persistent compilation cache.\n\n```shell\n$ export TORAX_ERRORS_ENABLED=\u003CTrue\u002FFalse>\n```\n\n##### JAX Compilation and Cache\n\nIf false, JAX does not compile internal TORAX functions. Used for debugging.\nDefault is False.\n\n```shell\n$ export JAX_DISABLE_JIT=\u003CTrue\u002FFalse>\n```\n\nThe following implements the JAX persistent cache and will cause jax to store\ncompiled programs to the filesystem, reducing recompilation time in some cases:\n\n```shell\n$ export JAX_COMPILATION_CACHE_DIR=\u003Cpath of your choice, such as ~\u002Fjax_cache>\n$ export JAX_PERSISTENT_CACHE_MIN_ENTRY_SIZE_BYTES=-1\n$ export JAX_PERSISTENT_CACHE_MIN_COMPILE_TIME_SECS=0.0\n```\n\n#### Set flags\n`log_progress` - output simulation time, dt, and number of solver iterations\n(dt backtracking with nonlinear solver) carried out at each timestep.\n\n```shell\nrun_torax \\\n   --config=examples\u002Fiterhybrid_predictor_corrector.py \\\n   --log_progress\n```\n\n`output_dir` - overrides the default output directory\n\n```shell\nrun_torax \\\n   --config=examples\u002Fiterhybrid_predictor_corrector.py \\\n   --output_dir=\u002Fpath\u002Fto\u002Foutput\u002Fdir\n```\n\n### Running Tests with Full Assertion Checks\n\nTo run the pytest test suite with all assertion checks enabled, you can use the\nfollowing command:\n\n```shell\nTORAX_JAXTYPING=True TORAX_ERRORS_ENABLED=True pytest . -n auto\n```\n\n### Post-simulation\n\nOnce complete, the time history of a simulation state and derived quantities\nis written to a timestamped file of the format `state_history_%Y%m%d_%H%M%S.nc`.\nThe output directory is user configurable, with a default `\u002Ftmp\u002Ftorax_results`.\n\nTo take advantage of the in-memory (non-persistent) cache, the process does not\nend upon simulation termination. It is possible to modify the runtime_params,\ntoggle the `log_progress` and `plot_progress` flags, and rerun the simulation.\nThe following modifications are examples which will trigger a recompilation:\n\n- Grid resolution\n- Evolved variables (equations being solved)\n- Changing internal functions used, e.g. transport models, time_step_calculator.\n  source models, solver model, pedestal model\n\n### Cleaning up\n\nYou can exit the Python virtual env by deactivating it:\n\n```shell\ndeactivate\n```\n\n#### (Optional) Install QLKNN-hyper\n\nThe default transport model in TORAX is QLKNN_7_11, installed as a TORAX\ndependency. An alternative to QLKNN_7_11 is to use QLKNN-hyper-10D, also known\nas QLKNN10D [K.L. van de Plassche PoP 2020](https:\u002F\u002Fdoi.org\u002F10.1063\u002F1.5134126).\nQLKNN_7_11 is based on QuaLiKiz 2.8.1 which has an improved collision\noperator compared to the QLKNN10D training set. QLKNN_7_11 training data\nincludes impurity density gradients as an input feature and has better coverage\nof the near-LCFS region compared to QLKNN-hyper-10D. However, using QLKNN10D may\nstill be useful for specific use-cases, such as in benchmarks with other\nsimulators, or comparisons with QLKNN_7_11.\n\nDownload QLKNN-hyper dependencies:\n\n```shell\ngit clone https:\u002F\u002Fgitlab.com\u002Fqualikiz-group\u002Fqlknn-hyper.git\n```\n\nTo use QLKNN10D, set `model_path` in the `transport` section of your TORAX\nconfig to the path of the cloned repository.\n\n## Simulation tutorials\n\nSee tutorials section in our\n[readthedocs pages](https:\u002F\u002Ftorax.readthedocs.io\u002Fen\u002Flatest\u002Ftutorials.html).\n\n## Citing TORAX\n\nA TORAX paper is [available on arXiv](https:\u002F\u002Farxiv.org\u002Fabs\u002F2406.06718). Cite\nthis paper to cite TORAX:\n\n```\n@article{torax2024arxiv,\n  title={{TORAX: A Fast and Differentiable Tokamak Transport Simulator in JAX}},\n  author={Citrin, Jonathan and Goodfellow, Ian and Raju, Akhil and Chen, Jeremy\n  and Degrave, Jonas and Donner, Craig and Felici, Federico and Hamel, Philippe\n  and Huber, Andrea and Nikulin, Dmitry and Pfau, David and Tracey, Brendan, and\n  Riedmiller, Martin and Kohli, Pushmeet},\n  journal={arXiv preprint arXiv:2406.06718},\n  year={2024}\n}\n```\n","[![单元测试](https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Ftorax\u002Factions\u002Fworkflows\u002Fpytest.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Ftorax\u002Factions\u002Fworkflows\u002Fpytest.yml)\n\n## 什么是 TORAX？\n\nTORAX 是一个可微分的托卡马克芯部输运模拟器，旨在实现快速且精确的正向建模、脉冲设计、轨迹优化以及控制器设计工作流。TORAX 使用 JAX 和 Python 编写，其设计动机如下：\n\n- 开源且可扩展，便于灵活的工作流耦合。\n- JAX 提供自动微分能力和代码编译功能，从而实现快速运行。可微性使得基于梯度的非线性偏微分方程求解器能够进行快速准确的建模，并对仿真结果相对于任意参数输入的敏感性进行分析，进而支持诸如轨迹优化和半经验模型的数据驱动参数识别等应用。自动微分特性还允许通过添加新的物理模型（包括机器学习代理模型）或新的参数输入来轻松扩展这些应用，而无需手动推导雅可比矩阵。\n- Python-JAX 是一种天然适合与物理模型的机器学习代理模型进行耦合的框架。\n\n如需更全面的文档，请参阅我们的 [readthedocs 页面](https:\u002F\u002Ftorax.readthedocs.io\u002F)。\n\n在 v1.0.0 版本中，TORAX 具备以下物理和数值功能集：\n\n- 离子和电子热输运、电子粒子输运以及电流扩散的耦合偏微分方程组\n    - 有限体积法离散化\n    - 多种求解器选项：带有 Pereverzev-Corrigan 项的线性求解器及预测校正法，牛顿-拉夫森法的非线性求解器，以及使用 jaxopt 库进行优化的非线性求解器\n    - 基于最后闭合磁通面处总电流或环电压的极向磁通边界条件\n- 欧姆加热功率、离子-电子热交换、聚变功率、轫致辐射、杂质谱线辐射，以及一项 [[ICRH 机器学习代理模型]](https:\u002F\u002Fmeetings.aps.org\u002FMeeting\u002FDPP24\u002FSession\u002FNP12.106)（目前仅覆盖有限的工况）。\n- 基于 Sauter 解析模型的新生代自举电流和电导率。\n- 与 [[QLKNN_7_11]](https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Ffusion_surrogates\u002F) 和 QLKNN10D [[van de Plassche 等人, Phys. Plasmas 2020]](https:\u002F\u002Fdoi.org\u002F10.1063\u002F1.5134126) 的 QuaLiKiz 神经网络代理模型相耦合，用于描述基于物理机制的湍流输运。\n- 支持通用几何形状，可通过 CHEASE、FBT 或 EQDSK 平衡文件提供。\n    - 为测试和演示目的，`data\u002Fthird_party\u002Fgeo` 目录下提供了一个单一的 CHEASE 平衡文件。该文件对应于 ITER 混合场景下的平衡态，基于 [[Citrin 等人, Nucl. Fusion 2010]](https:\u002F\u002Fdoi.org\u002F10.1088\u002F0029-5515\u002F50\u002F11\u002F115007) 的模拟结果，并从 [PINT](https:\u002F\u002Fgitlab.com\u002Fqualikiz-group\u002Fpyntegrated_model) 获取。PINT 许可证文件位于 `data\u002Fthird_party\u002Fgeo` 中。\n    - 通过提供一系列随时间变化的几何文件，可以支持时变几何。\n- 使用局部自适应源设置内部边界条件的简单台基模型。\n- 锯齿振荡触发及剖面重分布。\n\n用户还可以通过自定义的解析模型或预设数据来引入额外的加热和电流驱动源。\n\n模型的实现已通过将仿真输出与 RAPTOR [[Felici 等人, Plasma Phys. Control. Fusion 2012]](https:\u002F\u002Fiopscience.iop.org\u002Farticle\u002F10.1088\u002F0741-3335\u002F54\u002F2\u002F025002) 托卡马克输运模拟器的结果直接对比进行了验证。\n\n本项目并非 Google 官方支持的产品。\n\n## 开发路线图\n\n我们的 readthedocs 页面中概述了 [开发路线图](https:\u002F\u002Ftorax.readthedocs.io\u002Fen\u002Flatest\u002Froadmap.html#development-roadmap)。\n\n## 安装指南\n\n### 系统要求\n\n请安装 Python 3.11 或更高版本。\n\n确保已安装 tkinter：\n\n```shell\nsudo apt-get install python3-tk\n```\n\n### 安装方法\n\n#### 准备虚拟环境\n\n安装 Virtualenv（如果尚未安装）：\n\n```shell\npip install --upgrade pip\n```\n\n```shell\npip install virtualenv\n```\n\n创建并激活虚拟环境：\n\n```shell\npython3 -m venv toraxvenv\nsource toraxvenv\u002Fbin\u002Factivate\n```\n\n#### 从 PyPI 安装\n\n使用 TORAX 最简单的方式是通过 PyPI 进行安装：\n\n```shell\npip install torax\n```\n\n您可以检查一切是否正常运行：\n\n```shell\nrun_torax --config=examples\u002Fbasic_config.py --quit\n```\n\n如果您计划参与 TORAX 的开发，则需要克隆仓库，详情请参阅 [贡献指南](https:\u002F\u002Ftorax.readthedocs.io\u002Fen\u002Flatest\u002Fcontributing.html) 和 [贡献提示](https:\u002F\u002Ftorax.readthedocs.io\u002Fen\u002Flatest\u002Fcontribution_tips.html#contribution-tips)。\n\n### 运行示例\n\n以下命令将使用默认配置文件 `examples\u002Fbasic_config.py` 运行 TORAX：\n\n```shell\nrun_torax --config='examples\u002Fbasic_config.py'\n```\n\n仿真进度会通过终端进度条显示当前时间和已完成百分比。\n\n若要运行更复杂的、受 ITER 启发的仿真，可以执行：\n\n```shell\nrun_torax --config='examples\u002Fiterhybrid_rampup.py'\n```\n\n以及\n\n```shell\nrun_torax --config='examples\u002Fiterhybrid_predictor_corrector.py'\n```\n\n此外，还可以通过附加到上述运行命令的标志以及环境变量来进一步配置。例如，若需提高输出的详细程度，可以使用 `--log_progress` 标志。\n\n```shell\nrun_torax  --config='examples\u002Fiterhybrid_rampup.py' --log_progress\n```\n\n#### 设置环境变量\n\n##### 错误检查\n\n若设置为 True，将在内部例程中启用错误检查。主要用于调试。默认值为 False，因为这与持久化编译缓存不兼容。\n\n```shell\n$ export TORAX_ERRORS_ENABLED=\u003CTrue\u002FFalse>\n```\n\n##### JAX 编译与缓存\n\n若设置为 False，JAX 将不会编译 TORAX 的内部函数。主要用于调试。默认值为 False。\n\n```shell\n$ export JAX_DISABLE_JIT=\u003CTrue\u002FFalse>\n```\n\n以下设置启用了 JAX 的持久化缓存，会使 JAX 将编译后的程序存储到文件系统中，在某些情况下可减少重新编译的时间：\n\n```shell\n$ export JAX_COMPILATION_CACHE_DIR=\u003C您选择的路径，例如 ~\u002Fjax_cache>\n$ export JAX_PERSISTENT_CACHE_MIN_ENTRY_SIZE_BYTES=-1\n$ export JAX_PERSISTENT_CACHE_MIN_COMPILE_TIME_SECS=0.0\n```\n\n#### 设置标志\n`log_progress` - 输出每个时间步的仿真时间、dt 以及求解器迭代次数（对于非线性求解器，还包括 dt 回溯次数）。\n\n```shell\nrun_torax \\\n   --config=examples\u002Fiterhybrid_predictor_corrector.py \\\n   --log_progress\n```\n\n`output_dir` - 覆盖默认输出目录。\n\n```shell\nrun_torax \\\n   --config=examples\u002Fiterhybrid_predictor_corrector.py \\\n   --output_dir=\u002Fpath\u002Fto\u002Foutput\u002Fdir\n```\n\n### 运行包含完整断言检查的测试\n\n要运行启用所有断言检查的 pytest 测试套件，可以使用以下命令：\n\n```shell\nTORAX_JAXTYPING=True TORAX_ERRORS_ENABLED=True pytest . -n auto\n```\n\n### 模拟后处理\n\n模拟完成后，模拟状态及其派生量的时间历程将被写入一个带时间戳的文件，文件格式为 `state_history_%Y%m%d_%H%M%S.nc`。输出目录可由用户配置，默认路径为 `\u002Ftmp\u002Ftorax_results`。\n\n为了充分利用内存中的（非持久化）缓存，进程在模拟结束时并不会终止。您可以修改 `runtime_params`，切换 `log_progress` 和 `plot_progress` 标志，并重新运行模拟。以下修改会触发重新编译：\n\n- 网格分辨率\n- 演化变量（即所求解的方程）\n- 更改内部使用的函数，例如输运模型、时间步长计算器、源项模型、求解器模型或pedestal模型。\n\n### 清理工作\n\n您可以通过取消激活虚拟环境来退出 Python 虚拟环境：\n\n```shell\ndeactivate\n```\n\n#### （可选）安装 QLKNN-hyper\n\nTORAX 中默认的输运模型是 QLKNN_7_11，它作为 TORAX 的依赖项被安装。另一种选择是使用 QLKNN-hyper-10D，也称为 QLKNN10D [K.L. van de Plassche PoP 2020](https:\u002F\u002Fdoi.org\u002F10.1063\u002F1.5134126)。QLKNN_7_11 基于 QuaLiKiz 2.8.1，其碰撞算子相比 QLKNN10D 的训练数据集有所改进。QLKNN_7_11 的训练数据还包括杂质密度梯度作为输入特征，并且对近 LCFS 区域的覆盖范围优于 QLKNN-hyper-10D。然而，在某些特定场景下，例如与其他模拟器进行基准测试，或与 QLKNN_7_11 进行对比时，使用 QLKNN10D 仍然可能具有价值。\n\n下载 QLKNN-hyper 的依赖项：\n\n```shell\ngit clone https:\u002F\u002Fgitlab.com\u002Fqualikiz-group\u002Fqlknn-hyper.git\n```\n\n要使用 QLKNN10D，请将您的 TORAX 配置文件中 `transport` 部分的 `model_path` 设置为克隆后的仓库路径。\n\n## 模拟教程\n\n请参阅我们 [readthedocs 页面](https:\u002F\u002Ftorax.readthedocs.io\u002Fen\u002Flatest\u002Ftutorials.html) 中的教程部分。\n\n## 引用 TORAX\n\n关于 TORAX 的论文已在 arXiv 上发布：[arXiv:2406.06718](https:\u002F\u002Farxiv.org\u002Fabs\u002F2406.06718)。引用该论文即可正确引用 TORAX：\n\n```\n@article{torax2024arxiv,\n  title={{TORAX: A Fast and Differentiable Tokamak Transport Simulator in JAX}},\n  author={Citrin, Jonathan and Goodfellow, Ian and Raju, Akhil and Chen, Jeremy\n  and Degrave, Jonas and Donner, Craig and Felici, Federico and Hamel, Philippe\n  and Huber, Andrea and Nikulin, Dmitry and Pfau, David and Tracey, Brendan, and\n  Riedmiller, Martin and Kohli, Pushmeet},\n  journal={arXiv preprint arXiv:2406.06718},\n  year={2024}\n}\n```","# TORAX 快速上手指南\n\nTORAX 是一个基于 Python 和 JAX 开发的开源可微托卡马克核心输运模拟器，专为快速正向建模、脉冲设计、轨迹优化及控制器设计而打造。利用 JAX 的自动微分和编译加速特性，它支持基于梯度的非线性偏微分方程求解及灵敏度分析。\n\n## 环境准备\n\n### 系统要求\n- **Python 版本**：3.11 或更高版本\n- **操作系统**：Linux \u002F macOS (Windows 需通过 WSL 运行)\n\n### 前置依赖\n确保系统已安装 `tkinter` 库（用于部分可视化功能）：\n\n```shell\nsudo apt-get install python3-tk\n```\n\n> **提示**：国内用户建议使用国内镜像源加速 pip 安装过程（如清华源、阿里源）。\n\n## 安装步骤\n\n### 1. 创建虚拟环境\n推荐使用 `venv` 隔离开发环境：\n\n```shell\npython3 -m venv toraxvenv\nsource toraxvenv\u002Fbin\u002Factivate\n```\n\n升级 pip 并安装 virtualenv（如未安装）：\n```shell\npip install --upgrade pip\npip install virtualenv\n```\n\n### 2. 安装 TORAX\n从 PyPI 直接安装是最简便的方式：\n\n```shell\npip install torax -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n### 3. 验证安装\n运行以下命令检查是否安装成功：\n\n```shell\nrun_torax --config=examples\u002Fbasic_config.py --quit\n```\n若无报错退出，则说明安装正常。\n\n## 基本使用\n\n### 运行基础示例\n使用默认配置文件运行一个简单的模拟：\n\n```shell\nrun_torax --config='examples\u002Fbasic_config.py'\n```\n运行时终端会显示进度条，包含当前时间和完成百分比。\n\n### 运行进阶示例（ITER 混合场景）\n尝试更复杂的 ITER 混合场景模拟：\n\n```shell\nrun_torax --config='examples\u002Fiterhybrid_rampup.py'\n```\n\n或使用预测 - 校正求解器：\n\n```shell\nrun_torax --config='examples\u002Fiterhybrid_predictor_corrector.py'\n```\n\n### 常用参数配置\n可以通过命令行标志自定义运行行为：\n\n- **输出详细日志**（显示时间步长、求解器迭代次数等）：\n  ```shell\n  run_torax --config='examples\u002Fiterhybrid_rampup.py' --log_progress\n  ```\n\n- **指定输出目录**：\n  ```shell\n  run_torax --config='examples\u002Fiterhybrid_predictor_corrector.py' --output_dir=\u002Fpath\u002Fto\u002Foutput\u002Fdir\n  ```\n\n### 模拟结果\n模拟完成后，状态历史数据将保存为 NetCDF 格式文件（文件名格式：`state_history_YYYYMMDD_HHMMSS.nc`），默认存储路径为 `\u002Ftmp\u002Ftorax_results`。\n\n> **注意**：若需修改网格分辨率、演化变量或物理模型等核心参数，重新运行时会触发 JAX 重新编译。","某聚变能源实验室的控制团队正致力于为 ITER 混合场景设计最优的等离子体电流剖面轨迹，以最大化聚变功率输出并避免不稳定性。\n\n### 没有 torax 时\n- **优化效率低下**：传统模拟器无法自动计算梯度，工程师只能依靠耗时极长的“试错法”或有限差分法来调整加热参数，单次轨迹优化需数天甚至数周。\n- **模型扩展困难**：若想引入新的机器学习代理模型（如 QLKNN 湍流传输模型）替代经验公式，必须手动推导复杂的雅可比矩阵，极易出错且开发周期漫长。\n- **灵敏度分析缺失**：难以快速量化输入参数（如杂质辐射率）对最终等离子体状态的敏感度，导致控制器设计缺乏鲁棒性依据。\n- **工作流耦合僵硬**：现有的闭源或非标代码难以与现代化的 Python 数据科学栈无缝集成，阻碍了数据驱动的参数识别流程。\n\n### 使用 torax 后\n- **秒级梯度优化**：利用 JAX 的自动微分能力，torax 可直接通过基于梯度的非线性求解器进行轨迹优化，将原本数周的迭代过程缩短至几小时甚至几分钟。\n- **无缝集成 AI 模型**：研究人员无需手写导数，即可直接将 QLKNN 等神经网络代理模型嵌入物理方程中，灵活验证新物理机制对传输的影响。\n- **精准灵敏度洞察**：借助自动微分特性，团队能瞬间完成对任意参数输入的灵敏度分析，快速识别关键控制变量，显著提升控制器设计的可靠性。\n- **流畅的现代工作流**：基于纯 Python 和 JAX 的架构，torax 轻松与现有 ML 工具链耦合，实现了从仿真到数据驱动参数识别的端到端自动化。\n\ntorax 通过将可微分物理模拟与高性能计算相结合，彻底改变了聚变装置脉冲设计与控制优化的研发范式，让复杂的非线性偏微分方程求解变得既快又准。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fgoogle-deepmind_torax_54536f8f.png","google-deepmind","Google DeepMind","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fgoogle-deepmind_06b1dd17.png","",null,"https:\u002F\u002Fwww.deepmind.com\u002F","https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind",[84,88],{"name":85,"color":86,"percentage":87},"Python","#3572A5",76.2,{"name":89,"color":90,"percentage":91},"Jupyter Notebook","#DA5B0B",23.8,652,120,"2026-04-04T19:02:04","NOASSERTION","Linux","未说明（基于 JAX，通常支持 CPU\u002FGPU\u002FTPU，但 README 未明确指定显卡型号或 CUDA 版本要求）","未说明",{"notes":100,"python":101,"dependencies":102},"1. 必须安装 tkinter 图形库（Linux 下需执行 `sudo apt-get install python3-tk`）。2. 建议使用虚拟环境（venv）进行安装。3. 可通过设置环境变量（如 JAX_COMPILATION_CACHE_DIR）优化 JAX 编译缓存。4. 默认传输模型为 QLKNN_7_11，也可选配 QLKNN10D（需单独克隆仓库并配置路径）。5. 该工具主要用于托卡马克核心输运模拟，依赖 JAX 进行自动微分和加速。","3.11+",[103,104,105,106],"jax","jaxopt","virtualenv","tkinter (python3-tk)",[18],"2026-03-27T02:49:30.150509","2026-04-06T05:17:55.399340",[111,116,121,126,131,136],{"id":112,"question_zh":113,"answer_zh":114,"source_url":115},16765,"TORAX 是否支持将模型导出为 ONNX 格式以便与其他库耦合？","是的，社区正在推进 ONNX 转换器的支持。目前建议通过文档和示例来指导如何使用 ONNX 转换器将 Torch 模型转换为 JAX 模型。虽然有人提议将 ONNX 依赖直接添加到 `fusion_transport_surrogates` 项目中，但目前的共识是：如果只是为了耦合非传输代理模型，可能只需要完善的文档和示例代码即可，无需立即引入硬性依赖。具体的实现草案已在 PR #804 中提出。","https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Ftorax\u002Fissues\u002F538",{"id":117,"question_zh":118,"answer_zh":119,"source_url":120},16766,"如何在 TORAX 中定义任意的加热和电流源分布（PRESCRIBED 模式）？","TORAX 现已支持更灵活的数据结构来输入预设（prescribed）的分布剖面，不再局限于特定的嵌套字典格式。除了原有的 `{time: {rho: value}}` 映射外，现在还可以直接输入 `xarray` 数据集或 `numpy` 数组元组。例如，对于随时间变化的外部电流分布，可以直接传入包含时间和径向坐标对应值的数组结构，而无需手动构建复杂的嵌套字典。这一改进同时适用于剖面条件（如 Ti, ne）和源项的 PRESCRIBED 模式。","https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Ftorax\u002Fissues\u002F212",{"id":122,"question_zh":123,"answer_zh":124,"source_url":125},16767,"在 v2 版本中，新经典输运（neoclassical transport）在台基区（pedestal）是如何处理的？","在台基区确实存在新经典输运，且在湍流被抑制时，它通常主导离子热输运和杂质粒子输运。在 v2 版本中，新经典输运的行为将与核心区域类似：采用“新经典 + 湍流”的叠加模式。配置上，台基输运应保留在 `transport` 部分（未来可能重命名为 `turbulent_transport`），总输运系数由湍流输运和新经典输运共同覆盖。而配置文件中的 `pedestal` 部分主要负责处理台基的存在性（如 L-H、H-L 跃迁模型）以及预期的高度和宽度，而非直接定义输运系数值。","https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Ftorax\u002Fissues\u002F941",{"id":127,"question_zh":128,"answer_zh":129,"source_url":130},16768,"当发生辐射坍缩导致温度为负时，如何获得更清晰的错误提示而不是 NaN 错误？","为了解决辐射坍缩导致温度变负进而引发 `SimError.NAN_DETECTED` 的问题，可以通过调整错误检查顺序并引入新的配置参数来优化。具体方案包括：1. 在 `step_function.py` 中将负温度\u002F密度检查移至自适应步长逻辑之前，确保牛顿 - 拉夫逊求解器能优先捕获 `state.SimError.NEGATIVE_CORE_PROFILES` 错误；2. 引入可选配置参数 `minimum_temperature_eV`，当求解器计算出的新状态低于此物理最小值时触发早期退出。这样可以提供更符合物理直觉的失败模式，避免误导性的最小步长错误。","https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Ftorax\u002Fissues\u002F1606",{"id":132,"question_zh":133,"answer_zh":134,"source_url":135},16769,"扩展 Lengyel 模型在 TORAX 中的运行性能如何？","扩展 Lengyel 模型已完全用 JAX 实现，相比 Numpy 版本有显著的性能提升。在固定步长迭代求解器的测试中：前向模型（默认 100 次迭代）的执行时间从 Numpy 版的约 200ms 降低到 JAX 版的约 6.7ms（快 30 倍）；逆向模型（默认 25 次迭代）从约 200ms 降低到约 2.4ms（快 80 倍）。需要注意的是，JAX 版本首次运行时有约 400ms 的编译时间，但之后会被缓存，后续运行速度极快。","https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Ftorax\u002Fissues\u002F1332",{"id":137,"question_zh":138,"answer_zh":139,"source_url":140},16770,"如何验证 TORAX 中新经典输运实现的准确性？","可以通过与成熟代码（如 JETTO 中的 NCLASS 模块）进行一对一比较来验证。具体做法是在相同的几何结构（如球形托卡马克 ST geometry）下，使用相同的配置参数，对比 TORAX（使用 Angioni-Sauter 模型）与 JETTO 的输出结果。社区成员已分享了用于从 JETTO 导入配置的脚本示例（如 `from_jetto.py`），这类配置文件对于复现基准测试非常有价值，未来可能会考虑将其纳入项目的 `third_party` 目录以供参考。","https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Ftorax\u002Fissues\u002F1406",[142,147,152,157,162,167,172,177,182,187,192,197,202,207,212],{"id":143,"version":144,"summary_zh":145,"released_at":146},99046,"v1.3.1","发布带有全新 API 符号的版本，供下游用户试用。\n\n这应被视为新功能的预发布版本——未来可能会推出新的 API 和错误修复。\n\n包含快速离子和自适应基座功能的最终版本即将发布。","2026-03-31T14:36:46",{"id":148,"version":149,"summary_zh":150,"released_at":151},99047,"v1.3.0","## 变更内容\n\n在本版本中，我们对几何网格处理进行了重大改进，实现了对非均匀网格的支持。同时，通过引入 Redl 自举电流模型、扩展辐射建模以及增强边缘耦合的鲁棒性，进一步提升了物理功能。IMAS 集成方面也取得了进展，包括 imas-core 的集成，并优化了 core_profiles 的处理。\n\n# 物理特性\n* **新经典输运与自举电流**\n  - 新增用于计算自举电流的 **Redl 模型**。\n  - 在 Angioni-Sauter 新经典输运模型中加入了 **Shaing 修正项**，并实现了不同碰撞 regime 之间的平滑过渡。\n* **辐射**\n  - 重构了 Mavrin 辐射冷却模型，支持冕区与非冕区模型之间的平滑插值。\n  - 增加了外推逻辑，以更好地模拟辐射崩溃场景（例如，在多项式拟合范围之外平滑地衰减至零）。\n* **边缘建模（扩展 Lengyel 模型）**\n  - 提升了模型的鲁棒性。\n  - 新增了初始猜测值的配置选项，并支持使用前一时间步的输出作为初始猜测，从而提高收敛速度和稳定性。\n  - 对扩展 Lengyel 正向求解器中的多解探索进行了并行化处理，因为可能存在多个根解。所有唯一的根解都会被保存到输出中。\n  - 修复了杂质浓度的处理逻辑，避免在反向求解模式下出现负值的种子杂质。\n* **输运模型**\n  - **组合输运模型：** 引入了 `ADD` 和 `OVERWRITE` 两种合并模式。`OVERWRITE` 允许特定模型在其定义域内锁定输运系数，防止后续模型对其进行修改。\n  - **输出屏蔽：** 新增了若干标志位（如 `enable_chi_i`、`enable_D_e` 等），用于在输运模型中选择性地禁用特定的输运通道。\n  - **转动：** 将 `toroidal_velocity` 的定义由线速度（m\u002Fs）改为角速度（rad\u002Fs）。同时引入了两种不同的 ExB 抑制规则：一种是简单的“Waltz 规则”，另一种是 van de Plassche 2020 年提出的规则，后者更适合于环向速度受限的情况。\n* **加热与源项**\n  - 在 $P_{SOL}$ 和 $P_{loss}$ 的计算中增加了 $dW\u002Fdt$ 平滑处理（指数移动平均），以降低约束时间估算中的噪声。\n\n# 技术特性\n* **网格与几何**\n  - **非均匀网格支持：** 对 `Grid1D` 类及有限差分算子（如 `face_grad`、扩散项等）进行了大规模重构，以支持由面中心点定义的非均匀间隔网格。\n  - 更新了 `CoreProfiles` 和 `Geometry` 类，使其能够通过 `face_centers` 进行配置。\n\n# IMAS 集成\n* **IMAS Core**\n  TORAX 现在依赖 IMAS Core，这是 imas Python v2.1.0 升级的一部分。\n* **版本管理**\n  - 将对 `imas` Python 库的支持升级至 v2.1.0。\n  - 新增了在验证过程中将平衡态 IDS 显式转换为当前数据字典（DD）版本的选项。\n* **Core Profiles**\n  - 为 `core_pro","2026-02-09T15:42:23",{"id":153,"version":154,"summary_zh":155,"released_at":156},99048,"v1.2.0","## 变更内容\n\n在本版本中，我们引入了一个实验性 API —— `torax.experimental`。\n\n该 API 暴露了若干元素，有助于在 JAX JIT 编译环境下运行仿真，并将显式几何覆盖与 TORAX 轻松解耦。有关两者的示例用法，请参阅：https:\u002F\u002Ftorax.readthedocs.io\u002Fen\u002Fv1.2.0\u002Fdeveloper_guides.html。如需更详细的使用问题咨询，欢迎随时联系我们。\n\n实验性 API 仍可能发生变化，相关符号将在 TORAX v2.0.0 中移至稳定的公共 API。\n\n# 物理特性\n* **边缘建模（扩展 Lengyel 模型）**\n  - 实现了用于确定分隔线边界条件和杂质浓度的扩展 Lengyel 模型。注意：目前其耦合行为仍在验证中，因此暂定为实验性功能。\n  - 包含 Kallenbach 2024 分流器富集模型的标度关系。\n* **转动与电场**\n  - 计算新经典极向速度。\n  - 计算径向电场 ($E_r$) 和 $E \\times B$ 速度。\n  - 将 $v_{E \\times B}$ 剪切作为输入添加到基于 TGLF 和 QLK 的模型中。\n  - 需要注意的是，这些项及其影响目前仍在验证中，因此暂定为实验性功能。\n* **加热与电流驱动**\n  - 修正了电子回旋 (EC) 电流驱动效率公式（Lin-Liu 模型）。\n  - 添加了平行电流与环向电流之间的转换例程。\n* **输运模型**\n  - 新增对 `TGLFNN-UKAEA` 输运模型的支持。\n\n# 技术特性\n* **可微性与优化**\n  - 实现了 `whilei_loop` 和 `while_loop_bounded`，以支持通过自适应时间步进循环进行反向模式的微分（梯度计算）。\n  - 默认启用 Newton-Raphson 求解器中的 `use_jax_custom_root`，以促进微分操作。\n* **JAX 与编译**\n  - `StaticDataclass`：引入并迁移至配置和模型对象的基础类，以确保在 `jax.jit` 中具有正确的哈希和相等语义，从而避免不必要的重新编译。\n  - 将步骤函数的实验性 JIT 编译提升为默认设置（移除了 `TORAX_EXPERIMENTAL_COMPILE` 标志）。\n  - 将 JAX 版本升级至 0.8.1，Chex 升级至 0.1.90。\n\n# IMAS 集成\n* **芯部剖面 I\u002FO**\n  - 新增了直接从 IMAS `core_profiles` IDS 填充 `profile_conditions` 的功能。\n  - 新增了将 TORAX 状态输出到 IMAS `core_profiles` IDS 的函数。\n* **加载器改进**\n  - 在 IMAS 加载器中新增了显式数据字典转换的支持。\n\n# 用户体验与质量改进\n* **示例与教程**\n  - 新增了 `OpenSTEP`（STEP SPP-001）平顶工况示例配置。\n  - 新增了一个演示如何对仿真应用 `vmap` 和 `grad` 的教程笔记本。\n\n# 错误修复\n* 通过在对象创建时初始化 `Phi_b_dot`，修复了其计算结果的缓存缺失问题。","2025-12-09T19:22:52",{"id":158,"version":159,"summary_zh":160,"released_at":161},99049,"v1.1.1","## 变更内容\n\n* 新输入杂质 API 的错误修复\n  * 修复了输入文档中的示例\n  * 增加了针对按物种划分的杂质输出的新文档\n  * 修复了仅考虑电流扩散时锯齿波再分布的错误\n* 新增累积能量输出\n  * ``E_aux_total`` - 等离子体从外部加热源吸收的总累积能量。取代了之前同时包含外部加热和欧姆加热、容易引起混淆的 ``E_aux``\n  * ``E_external_total`` - 等离子体从外部加热源和欧姆加热源共同吸收的总累积能量。与之前的 ``E_aux`` 相同\n  * ``E_external_injected`` - 外部加热源注入的总累积能量。由于吸收因子的存在，该值与 ``E_aux_total`` 不同\n  * ``E_ohmic_e`` - 总累积欧姆加热能量\n  * ``P_fusion`` - 总聚变功率（包括中子贡献）","2025-09-24T21:43:47",{"id":163,"version":164,"summary_zh":165,"released_at":166},99050,"v1.1.0","## 变更内容\n\n### 物理功能\n* Angioni-Sauter 新经典输运模型\n  - 注：目前尚未包含近轴区马铃薯轨道修正（即将推出）\n* 扩展的杂质输入 API 和更详细的杂质输出\n  - 现在可以将杂质设置为电子密度的比值，并由此推导出 Z_eff。也可选择将某一物种设为未知，其密度则由输入的 Z_eff 约束。旧版的 `fractions` 杂质输入模式仍然可用。\n  - 支持按径向分布指定注入的杂质种类。\n  - 提供更详细的各杂质物种的密度、平均电荷数和辐射功率输出。\n* 扩展并优化了几何输入，新增 \u003C1\u002FR>、\u003CB^2>、\u003CB^-2> 等项。这对强等离子体约束位形尤为重要。\n\n### 技术功能\n* 完全兼容 JAX 框架\n  - 实现完整的模拟可微性（即将推出）。\n  - 添加了自定义运行循环，可在 jax.jit 下完整执行。\n* 将 JIT 编译范围扩展至步长函数（需设置 TORAX_EXPERIMENTAL_COMPILE=True）\n  - 显著提升运行速度，同时由于 XLA\u002FCPU 的改进以及使用 `xla_cpu_flatten_after_fusion` 标志，编译时间仅受轻微影响。\n* 由于启用了 `xla_cpu_flatten_after_fusion` 这一新的 XLA 功能，减少了 JAX 函数的编译器内联。\n* 引入基于 jaxtyping 的运行时形状检查\n  - 该功能尚未全面推广，将在后续版本中完成。\n\n### 代码清理与重构\n* 重构了内部求解器 API 和状态缩放机制。\n* 提升了初始化及模拟准备流程的模块化程度。\n* 新增“neoclassical_models”容器，用于管理输运、电导率和自举电流相关模块。\n* 统一了标准步长和自适应步长的实现逻辑。\n* 数据类现已被注册为 JAX 标准数据类，从而实现了“动态”与“静态”参数的统一；其中，会触发重新编译的静态参数通过 Annotation 进行设置。\n* 简化了运行时参数术语。目前仅保留 RuntimeParamsProvider 和 RuntimeParams（即当前时刻的参数），不再区分动态、静态或切片参数。\n* 改进了 IMAS I\u002FO 代码结构。\n  - 对更多 IMAS I\u002FO 接口的扩展工作正在进行中，并将在未来版本中发布。\n\n### 用户体验与质量改进\n* 将 Python 要求升级至 3.11。\n* 改进了代码风格检查及 VSCode 工作区设置。\n* 对绘图功能进行了小幅优化。\n* 修复并完善了各类 docstring 和文档内容。\n\n### 错误修复\n* 加强了多种 torax_pydantic 类型的验证。\n* 自适应步长中已正确使用 geo_t_plus_dt。\n* 修复了 ToraxConfig.update_fields 中 n_rho 的更新问题。\n* 在将多个杂质合并为单一有效杂质时，正确计算了单个有效杂质的 Z_impurity 和 n_impurity。\n* 对物理常数进行了细微修正。\n\n为展示 TORAX 技术改进的效果，下图展示了 iterhybrid_rampup 配置随时间变化的典型运行时长。\n\n\u003Cimg width=\"776\" height=\"452\" alt=\"image\" src=\"https:\u002F\u002Fgithub.com\u002Fu","2025-09-12T15:01:33",{"id":168,"version":169,"summary_zh":170,"released_at":171},99051,"v1.0.3","## 变更内容\r\n\r\n修复了在非零 `Phi_b_dot`（LCFS 处环向磁通量的变化率）情形下的错误。\r\n\r\n此前对 `Phi_b_dot` 相关项的错误实现，导致在 `Phi_b_dot` 较大时（例如快速降载并伴随等离子体体积减小）出现非物理的演化行为。尤其是电流扩散方程和欧姆加热功率的计算受到了显著影响。\r\n\r\n以往的测试中，`Phi_b_dot` 的值并不足以暴露这一问题。而当前正确的实现已通过与 RAPTOR 的对比验证，所使用的 `Phi_b_dot` 值远大于以往的测试条件。\r\n\r\n强烈建议重新运行所有曾包含随时间变化几何结构及 `Phi_b` 波动的旧模拟，并评估其影响。","2025-06-09T13:41:14",{"id":173,"version":174,"summary_zh":175,"released_at":176},99052,"v1.0.2","## 变更内容\n\n# 功能特性\n* 新增“组合”输运模型，可将来自任意数量输运模型的附加系数进行组合，且每个模型均可配置径向域。\n* “常数”输运模型现在可在输入端接受一般性的预设剖面形状（TimeVaryingArrays）。\n* 增加更多输出：\n  - A_i、A_impurity\n  - beta_tor、beta_pol、beta_N\n  - 积分粒子源\n  - Z_eff\n* 改进了 profile_conditions 的 Pydantic 验证：\n  - 对等离子体电流、密度和温度进行数量级合理性检查。\n* 在模拟过程中发现 NaN 值时，日志信息更加详尽。\n\n# 代码清理与重构\n* 内部 CoreProfiles 密度单位现统一为 m^-3。\n* 添加了求解器中使用的缩放状态向量 x 与 CoreProfiles 属性之间的转换工具。\n* 多处文档的清理与修复。\n\n# 错误修复\n* 修正了输出结构中对部分几何属性的误过滤问题。\n* `ToraxConfig.update_fields` 现在会在所有键更新完毕后再对更新后的 Pydantic 对象进行验证，而非逐个验证。\n* W_thermal 计算现采用与锯齿波能量守恒一致的积分方法，从而提高了 dW_thermal\u002Fdt 的一致性。注意：作为此次修复的一部分，`pressure_thermal_e`、`pressure_thermal_i` 和 `pressure_thermal_total` 已内部改为 CellVariable，并在扩展单元格网格上输出，而非在面上网格上输出。\n* 物理公式中使用的 Z_eff_face 现在直接由 CoreProfiles 自洽计算得出，不再使用从输入 Z_eff 剖面插值得到的较为不一致的值。","2025-06-05T11:23:00",{"id":178,"version":179,"summary_zh":180,"released_at":181},99053,"v1.0.1","错误修复和 I\u002FO 一致性改进。\n\n* 修复了 `plotrun.py` 中 `plot_config` 加载的 bug\n* 改进了 v_loop 的 I\u002FO 命名一致性\n* 将 ICRH 少量种群浓度由百分比改为分数形式，以与主离子和杂质离子混合物的 API 保持一致","2025-05-22T11:32:33",{"id":183,"version":184,"summary_zh":185,"released_at":186},99054,"v1.0.0","# 重点概览\n\n本次发布主要聚焦于内部重构、代码简化，以及提升输出和配置的结构化与一致性，并推出了新的物理功能。用户会注意到仿真数据的组织和访问方式发生了显著变化，同时文档和配置处理也得到了改进。TORAX API 已经定义，在整个 TORAX v1 版本中将避免引入破坏性变更（例如现有配置结构、输入输出变量名称等方面的变更），从而确保即使在新功能逐步推出的过程中，用户的应用程序仍能保持稳定。\n\n## TORAX API\n\n作为 TORAX API 的一部分，发布了以下对象：\n\n### 用于加载配置和运行仿真的类与函数：\n\n* `build_torax_config_from_file`\n* `import_module`\n* `ToraxConfig`\n* `run_simulation`\n\n### 仿真返回的类：\n\n* `StateHistory`\n* `CoreProfiles`\n* `SourceProfiles`\n* `CoreTransport`\n* `PostProcessedOutputs`\n* `SolverNumericOutputs`\n* `SimError`\n\n如果您希望公开更多类或方法，请随时与我们联系。\n\n## 物理功能\n\n### 锯齿振荡建模\n\n* 锯齿振荡触发与重分布模型。锯齿振荡模型继承自 `Solver` 类，当触发锯齿振荡时，会执行替代的仿真步进。一旦满足某个与状态相关的条件，等离子体的动理学剖面和等离子体电流将在一个由用户定义的短时间步长内重新分布。目前实现了简单的触发和重分布模型：以 q=1 面上的用户设定临界磁剪切值作为触发条件，在保持能量和总电流守恒的前提下，将 q=1 内部的剖面展平，并将其重分布至用户指定的混合半径处。\n\n### 新经典 API\n\n* 自举电流和电导率已移至配置中的“新经典”部分。\n* 这为未来添加其他新经典模型（例如输运模型）奠定了基础。\n\n## 用户体验改进\n\n### PyPI 上线\n\nTORAX v0.3.3 和 v1.0.0 现已在 PyPI 上发布。用户可以通过 `pip install torax` 进行安装。\n\n### 输出重构与重命名\n\n为标准化并优化输出变量的组织与命名，我们进行了大量工作。此输出结构将在 TORAX v1 中保持不变。具体包括：\n\n* 将原有的 `core_profiles`、`core_sources`、`geometry`、`core_transport` 和 `post_processed_outputs` 中的输出分为三个独立类别，并将其封装在顶层的 `xarray.DataTree` 中：\n  * `profiles`：包含一维剖面值\n  * `scalars`：包含标量量\n  * `numerics`：包含与求解器数值相关的内容\n* 对变量进行更清晰、更一致的重命名。\n* 从输出名称中移除 TORAX 内部有限体积法的相关信息，例如去除名称中的 `_face` 后缀。取而代之的是，在适当的情况下，可以直接通过变量来访问其所在的网格。","2025-05-19T21:46:27",{"id":188,"version":189,"summary_zh":190,"released_at":191},99055,"v0.3.3","即将推出的 API 变更：TORAX 的下一个主要版本将包含重大的 API 更新，包括：配置结构与嵌套的调整、输出命名和结构的优化，以及模块加载机制的改进。\n\n本次发布（v0.3.3）仅做了一个小的 bug 修复，并引入了一些不破坏兼容性的 API 变更和后端改进。\n\n- 修复了一个小 bug，使程序对 QLKNN10D 路径的处理更加稳健。\n- 移除了配置中的 runtime_params 嵌套，将其提升至顶级。目前仍支持带有嵌套的配置文件，但这一用法将在后续版本中被废弃。","2025-04-22T19:20:50",{"id":193,"version":194,"summary_zh":195,"released_at":196},99056,"v0.3.2","**Upcoming API Changes:** The next major release of TORAX will include significant API updates including: changes to the config structure\u002Fnesting, improved output naming and structure and improved module loading. This release (v0.3.2) provides primarily UX improvements as well as a sawteeth model. A few minor breaking changes to the config and scripts are part of this release. This version will be packaged and made available on PyPI.\r\n\r\n- UX improvements\r\n  - We now use fusion_surrogates model registry, so specifying a transport model path using environment variables is now optional\r\n  - Geo data default path is set relative to the installed TORAX library, so setting the environment variable at install is not required anymore.\r\n  - Added binary scripts `run_torax` and `plot_torax` with pip installation.\r\n- Phyisics features\r\n  - Sawteeth model added\r\n- Breaking changes\r\n  -  Default pedestal model has changed, it is now `no_pedestal`\r\n  - `set_pedestal` has moved to the pedestal config and is now by default `false` not `true`\r\n  - The `run_simulation_main.py` script has been moved inside the library code, so it can be packaged in the PyPI version.\r\n- Bug fixes\r\n  - Fixed some JAX compile cache misses related to ion cyclotron source and time dependent geometry. This may speed up subsequent simulation runs.","2025-04-17T15:34:27",{"id":198,"version":199,"summary_zh":200,"released_at":201},99057,"v0.3.1","Upcoming API Changes: The next major release of TORAX will include significant API updates including: changes to the config structure\u002Fnesting, improved output naming and structure and improved module loading. This release (v0.3.1) provides primarily bugfixes, UX improvements, and new tutorials compared to v0.3.0, and allows users to pick up improvements with a stable API.\r\n\r\n* **Physics features**\r\n  * QLKNN_7_11 now the default turbulent transport model\r\n  * Absorbed fraction input field for ICRH and generic heating\r\n  * vloop_lcfs output available for Ip boundary condition cases\r\n\r\n* **UX improvements**\r\n  *  Allow lists to be input in user-facing config dict\r\n  * Remove ToraxSimOutput, StateHistory is the new public output class (before xarray conversion)\r\n  * Create utility for registering new source model configs. \r\n  * Add simulation error for negative temperatures and densities\r\n  * Add serialized ToraxConfig to TORAX outputs\r\n  * Tutorials\r\n\r\n* **Bugfixes + miscellanous**\r\n  * Fix missed jit cache hits\r\n  * Fix stale documentation\r\n  * Various refactors for internal API simplification","2025-04-02T07:48:15",{"id":203,"version":204,"summary_zh":205,"released_at":206},99058,"v0.3.0","**Upcoming API Changes**: The next major release of TORAX will include significant API updates including: changes to the config structure\u002Fnesting, improved output naming and structure and improved module loading. This release (v0.3.0) provides a stable version with significant changes from v0.2.0 for users to pick up improvements with a stable API.\r\n\r\n# **TORAX improvements since v0.2.0 (highlights)**\r\n\r\n* **Changes to interacting with TORAX programatically**\r\n    * Moved the config to Pydantic improving validation and readability\r\n    * Replaced sim.Sim with `torax.run_simulation` which takes a `torax.ToraxConfig`\r\n\r\n* **Physics features**\r\n    * Average charge state equilibria added\r\n    * QLKNN_7_11 transport model\r\n    * qualikiz transport model\r\n    * Improved simple models for pedestal boundary condition\r\n    * Can split main ion and impurity into mixtures of ion species. DT ratio now impacts fusion power. Radiation for each separate impurity can be calculated\r\n    * Improved radiation models including Mavrin polynomial fits to ADAS data\r\n    * Cyclotron radiation\r\n    * New Vloop boundary condition option for current diffusion equation\r\n\r\n* **Miscellaneous and bugfixes\r\n    * Fixes for q_face and s_face being stale\r\n    * Fix in He3 tail temperature calculation\r\n    * P_LH_minimum bugfix\r\n    * Extra post-processed outputs added\r\n    * Improved on-axis treatment of pprime and plasma current\r\n    * Minor performance optimizations (~5% in compilation time and runtime)\r\n    * Refactors: various restructuring and cleanups\r\n\r\n## New Contributors\r\n* @hassec made their first contribution in https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Ftorax\u002Fpull\u002F599\r\n* @anteplu made their first contribution in https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Ftorax\u002Fpull\u002F617\r\n* @emmanuel-ferdman made their first contribution in https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Ftorax\u002Fpull\u002F740\r\n* @shreyans413 made their first contribution in https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Ftorax\u002Fpull\u002F773\r\n* @harshtech123 made their first contribution in https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Ftorax\u002Fpull\u002F827\r\n* @demoncoder-crypto made their first contribution in https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Ftorax\u002Fpull\u002F869\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Ftorax\u002Fcompare\u002Fv0.2.0...v0.3.0","2025-03-20T15:36:14",{"id":208,"version":209,"summary_zh":210,"released_at":211},99059,"v0.2.0","**Upcoming API Changes:** The next major release of TORAX will include significant API updates, including changes to the configuration structure, a transition to a hierarchical xarray DataTree output format, and variable renaming for improved consistency. This release (v0.2.0) provides a stable version for users who wish to continue development with the current API.\r\n\r\n# **TORAX improvements since v0.1.0 (highlights)**\r\n\r\n* **Physics Model Improvements:**\r\n    * Added Gaussian smoothing option for transport models.\r\n    * Implemented support for spatially varying Zeff profiles.\r\n    * Integrated a neural network wrapper for the Toric ICRH ML-surrogate model (using Flax).\r\n    * Added Bremsstrahlung radiation sink.\r\n    * Added BohmGyroBohm transport model.\r\n    * Implemented ECCD with Lin-Liu current drive formula.\r\n\r\n* **Geometry Input Extensions:**\r\n    * Added support for MEQ (FBT) geometry input.\r\n    * Enabled EQDSK geometry input with flux-surface averaging.\r\n    * Implemented support for time-dependent geometries:\r\n        * Support for multiple geometry files or bundled FBT files (via liuqe meqlpack).\r\n        * Calculation of time-dependent `phibdot` term in governing equations.\r\n\r\n* **Configuration and Sim object construction improvements**\r\n    * Enabled flexible input of prescribed data using Python primitives, NumPy, and xarray.\r\n    * Expanded support for prescribing time-dependent profiles, including core profiles and sources.\r\n    * Significantly improved simulation setup speed by pre-interpolating input arrays and preparing time interpolation providers.\r\n    * Enhanced the methodology for Ip scaling, supporting both parameter-based and geometry file-based definitions.\r\n\r\n* **Developer Quality of Life:**\r\n    * Redesigned source management for improved modularity and easier integration of new sources.\r\n    * Restructured transport_models to increase modularity, simplify new model integration, and reduce redundant code.\r\n    * Enhanced type safety with array typing and typeguard annotations.\r\n    * Implemented helper scripts for managing and updating simulation integration tests.\r\n    * Divided `SimulationStepFn` into distinct phases, enabling external modification of dynamic runtime parameters at each simulation step.\r\n\r\n* **Bugfixes:**\r\n    * Corrected QLKNN magnetic shear calculation.\r\n    * Fixed Coulomb constant calculation.\r\n    * Resolved issues with impurity density and boundary condition updates.\r\n    * Fixed a bug in external current profile updates.\r\n\r\n* **Extended Outputs:**\r\n    * Added stepper numeric outputs, including error codes and iteration counts.\r\n    * Expanded post-processed outputs, such as integrated currents, sources, fusion gain, and pressure.\r\n    * Added output of the plasma current profile calculated from the poloidal flux.\r\n\r\n* **Documentation:**\r\n    * Significantly expanded documentation, covering physics models, solver details, code structure, and developer guides.\r\n    * Improved docstrings and comments for enhanced code readability.\r\n\r\n* **Miscellaneous:**\r\n    * Enabled nightly and pull request-triggered unit tests in CI.\r\n    * Added a JAX profiler (optional, flag-activated) for performance analysis.\r\n    * Implemented a configurable, data-driven plotting library.\r\n    * Implemented various performance optimizations, including solver improvements and JIT compilation of simulation setup.\r\n    * Enabled JAX persistent cache for faster execution.\r\n    * Added support for restarting simulations from arbitrary time points using existing TORAX output files.\r\n    * Modified governing equations for consistency with normalized toroidal flux as the radial coordinate.\r\n    * Improved various equation calculations, including q-profile and current calculations.","2024-11-19T10:57:24",{"id":213,"version":214,"summary_zh":215,"released_at":216},99060,"v0.1.0","Initial release of TORAX.","2024-05-01T14:09:10"]