arriemeijer-creator/AeroJAX
AeroJAX: A differentiable, structure-preserving framework for real-time flow simulation, control, and inverse design. Architected for neural operator integration and latent-space acceleration. Built with JAX.
解决的问题
AeroJAX 将计算流体动力学(CFD)从批处理过程转变为交互式体验。传统 CFD 需要配置模拟、运行至完成,然后分析结果;而 AeroJAX 允许用户实时修改求解器参数、边界条件和几何形状,无需重新启动模拟。
工作原理
该框架基于 JAX 构建,实现了端到端的可微分流水线。它支持不可压缩 Navier-Stokes(有限差分)和 Lattice Boltzmann(D2Q9/D2Q7)求解器。为了在 CPU 上实现实时性能,它使用了解耦的求解器、渲染和度量线程,并采用共享内存零拷贝缓冲区。它采用 Brinkman 惩罚法处理浸入边界,允许用户实时绘制障碍物或移动翼型。为了数值稳定性和精度,它提供了多种平流格式(RK2/RK3)和压力求解器(FFT、共轭梯度、多重网格),以及用于湍流的 Smagorinsky LES 模型。
适用人群
它专为流动研究、控制和逆向设计而设计,特别适合那些进行二维流体模拟原型设计或研究用于 CFD 的神经算子的人员。
亮点
- 交互式几何: 使用鼠标绘制自定义障碍物,或在运行期间将 NACA 翼型拖过计算域。
- 可微分求解器: 基于 JAX 的原生实现支持基于梯度的逆向设计(例如,优化翼型形状以最小化阻力),无需单独的伴随求解器。
- 数值透明度: 求解器轨迹查看器允许逐步检查数值流水线,显示中间场和 LaTeX 渲染的方程。
- 神经算子集成: 包含实验性工具,用于生成数据集、训练神经算子,并在模拟过程中将标准压力求解器替换为训练好的模型。
- 高 CPU 性能: 针对实时使用进行了优化,在笔记本电脑 CPU 上对于 512×96 网格可实现约 297 FPS。
相关
- 项目
- 项目
- 项目
- 项目