Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

fboostr/aero-calc

Open more actions menu

Repository files navigation

aero-calc · 气动 / 流体力学计算器

浏览器端的可压缩流 / 气动常用公式计算器。纯前端实现,计算全在浏览器完成,可离线使用、静态部署、零后端运维。每个模块都给出数值结果与图表可视化,兼顾教学直观性与工程参考。

功能模块

模块 说明
标准大气 US Standard Atmosphere 1976(0–86 km,7 个分层),输出 T/p/ρ/a 及联动的 Sutherland 粘度,含无量纲廓线图
动力粘度 Sutherland 公式 μ(T) 与运动粘度 ν,含 μ–T 曲线
等熵流 等熵关系(T₀/T、p₀/p、ρ₀/ρ、A/A*)+ Prandtl-Meyer 角、Mach 角,支持由 p₀/p、T₀/T、A/A* 反算 M(A/A* 含亚/超声速双解)
正激波 M₂、p₂/p₁、ρ₂/ρ₁、T₂/T₁、总压比 p₀₂/p₀₁、皮托比,含比值-马赫数曲线
斜激波 θ-β-M 关系,弱解/强解、最大偏转角 θ_max 与脱体判别,含 θ-β 极线图
一维黎曼 Euler 方程黎曼问题精确解(Toro 算法),star 区 / 波型 / 真空判别,Sod 等预设,ρ/u/p 分布图与 x-t 波系图
喷管工况 收缩-扩张喷管按面积比 Ae/A* 与背压比 pb/p0 判别工况(文丘里 / 管内激波 / 过膨胀 / 设计 / 欠膨胀),定位管内正激波,含示意沿程压力分布图
边界层 平板边界层:层流 Blasius 与湍流 1/7 幂律,输出 δ/δ*/θ、cf/C_F、τ_w、形状因子 H,可由标准大气高度填充 ρ/T,含厚度增长图
无量纲数/空速 马赫数、动压 q、雷诺数 Re、总温/总压、TAS/EAS/CAS 空速换算,可由标准大气高度填充,含 M、Re 随高度变化图

技术栈

  • React + TypeScript + Vite:纯前端 SPA。
  • Zustand:全局气体配置(γ、R),持久化到 localStorage。
  • Plotly.js(懒加载为独立异步 chunk,首屏不阻塞):科学图表。
  • react-router-dom(HashRouter):模块路由,静态托管友好。
  • Vitest:计算核心单测。
  • Tailwind CSS:样式。

计算核心位于 src/lib/*,是不依赖 UI 的纯函数,便于单测与复用;UI 仅负责取值、调用与渲染。

全局气体配置

顶栏可配置比热比 γ 与气体常数 R(默认空气 γ=1.4、R=287.053 J/(kg·K))。等熵流、正/斜激波、一维黎曼、喷管工况、无量纲数/空速模块即时联动重算。标准大气按其标准定义计算 T/p/ρ,不受全局 γ/R 影响;边界层为不可压缩,仅用 ρ、μ。

本地运行

npm install
npm run dev       # 开发服务器(默认 http://localhost:5173)
npm run test      # 运行单测
npm run typecheck # 仅类型检查
npm run build        # 生产构建(多文件,首屏小),输出 dist/
npm run build:single # 单文件构建:内联为单个 dist/index.html,可双击打开
npm run preview      # 预览构建产物

部署

vite.config.tsbase: './' 配合 HashRouter,可将 npm run build 产出的 dist/ 直接部署到 GitHub Pages 或任意静态主机的子路径,无需服务端改写规则(HashRouter 走 # 路由,无需 SPA 的 404.html 重定向)。

GitHub Pages 自动部署:仓库已含 .github/workflows/deploy.yml,推送到 main 即自动 npm run build 并部署。首次使用需在仓库 Settings → Pages → Source 选择 GitHub Actions。注意用于在线部署的是多文件版npm run build,首屏小),而非单文件版。

离线单文件npm run build:single 把全部 JS/CSS 内联进单个 dist/index.html,可直接以 file:// 双击打开、发送或离线分享,无需任何服务器(路由用 HashRouter,故 file:// 下正常)。

公式与算法出处

  • US Standard Atmosphere 1976(NOAA/NASA/USAF)。
  • NACA Report 1135《Equations, Tables, and Charts for Compressible Flow》(等熵流、正/斜激波)。
  • E. F. Toro,《Riemann Solvers and Numerical Methods for Fluid Dynamics》, Springer(一维黎曼精确解)。
  • Sutherland, W. (1893). The viscosity of gases and molecular force.
  • J. D. Anderson,《Modern Compressible Flow》(CD 喷管工况);《Fundamentals of Aerodynamics》(空速定义)。
  • F. M. White,《Viscous Fluid Flow》;H. Schlichting,《Boundary-Layer Theory》(平板边界层)。

测试基准(节选)

单测以教科书标准值校验(src/lib/*.test.ts):

  • 等熵流 M=2, γ=1.4:T₀/T=1.8、p₀/p≈7.824、A/A*=1.6875。
  • 正激波 M₁=2, γ=1.4:p₂/p₁=4.5、ρ₂/ρ₁≈2.667、p₀₂/p₀₁≈0.721。
  • 斜激波 M₁=2, θ=20°:β_weak≈53.4°、θ_max≈22.97°。
  • 黎曼 Sod 问题 (1,0,1)/(0.125,0,0.1):p≈0.30313、u≈0.92745。
  • 标准大气位势高度 11 km:T=216.65 K、p≈22632 Pa。
  • 喷管 Ae/A*=1.6875, γ=1.4:设计 Me=2、rDesign≈0.128、激波出口背压比≈0.575,背压跨临界值时工况切换正确。
  • 边界层 Re_x=1e5:层流 cf≈2.10e-3、H≈2.59;湍流 cf=5.92e-3、H≈1.29。
  • 流动条件海平面 V=a:M≈1、a≈340.29;V=100 时 q=6125 Pa;海平面 EAS=CAS=TAS。

许可

MIT

About

纯前端气动/流体力学计算器,含标准大气、等熵流、正/斜激波与一维黎曼精确解,带交互图表。 | Browser-based aerospace & compressible-flow calculator: standard atmosphere, Sutherland viscosity, isentropic flow, normal/oblique shocks, and exact 1D Riemann solver — pure front-end with interactive charts.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.