live_core.py 的每次 step(U) 都在同一个速度、压力和结构状态上推进一个新的物理时间步。核心不读取 runs/、ale-data.js 或任何预计算流场/荷载。暂停时不调用 step;snapshot 只读状态。初始化重新生成几何并建立初始流场。
from live_core import LiveALE
sim = LiveALE({"U": .6, "mesh": "fast", "dt": .05,
"mass_ratio": 10, "fn": .16, "zeta": .01})
mesh = sim.mesh_info() # 固定连接关系、参考节点、边界标识
sim.step(.601) # 原状态上改变入口,推进一个时间步
state = sim.snapshot(True) # 当前全部可视化场和结构量
sim.set_structure(fn=.18, zeta=.02) # 流场和 y/v 保留,k/c 自动重算
sim.set_structure(fixed=True) # 锁定当前 y,v 置零,不移动网格
sim.set_structure(fixed=False) # 从锁定位置继续释放振动对象需要由服务器串行调用,核心自身不开线程。mesh_info() 含 nodes, triangles, body, outer, shape, meta。snapshot(True) 含当前 nodes, velocity, pressure, vorticity, meshVelocity;每个数组都对应同一时间步、同一组参考节点。涡量由 P2 速度梯度计算后投影到顶点,仅用于绘图。
基本状态包括 step,t,U,Re,y,v,a,fx,fy,lift,CL,CD,minJ,weakdiv,fluidResidual,wallError,outerError,probeV,mass,massRatio,fn,zeta,k,c,Sc,fixed,events。所有值可直接写入严格 JSON。probeV 是固定实验室位置 (3, 0.5) 的 P2 横向速度插值,不是移动网格上的最近顶点。
共同无量纲标度为 D=1, Uref=1, rho=1,时间单位 D/Uref,频率单位 Uref/D。所有时间、风速都使用固定标度,因此改变入口速度不会改变过去时间、结构固有频率或已有场的量纲。
计算域为 [-5,15] × [-5,5],圆柱直径 1。矩形外边界的每个节点固定。圆柱壁面节点完整跟随结构位移;内部节点使用参考域 Laplace 方程的调和延拓:
x=X, y=Y+h(X,Y)y_body,其中圆柱壁面 h=1,矩形外边界 h=0。
网格速度为 w=(0,h v_body)。流体使用 P2/P1 Taylor–Hood 离散、不可压缩 Navier–Stokes 方程、隐式 Euler 时间步及滞后的 Oseen 速度。每步在实际变形几何上重新组装质量、黏性、散度和对流矩阵。ALE 相对对流速度为 u_old-w。对流被积函数最大为五次多项式,使用五阶三角形积分,避免旧算例四阶积分的欠积分。
入口、顶部和底部的速度为 (U(t),0),出口为自然应力条件;几何边界固定并不等于远场速度为零。运动壁面的无滑移速度为 (0,v_body)。圆柱外力由当前壁面的压力与黏性应力积分得到,未指定任何持续正弦荷载或振动位移。
单位长度质量 m = m* π/4;ωn=2πfn,k=mωn²,c=2ζmωn。Scruton 数采用 Sc=4πmζ/(rho D²)=π²m*ζ 的定义。界面若修改 Sc,应保持当前 m*,换算 ζ=Sc/(π²m*) 后更新核心。
结构使用上一步实际 CFD 升力推进:
v_new = (m v_old/dt + Fy_old - k y_old)/(m/dt+c+k dt),
y_new = y_old + dt v_new。
这一显式分区耦合有一个时间步的荷载滞后;它没有每步流固子迭代。切换固定时锁定当前 y,将 v 置零,记录约束冲量 -m v_old。流体壁面速度在约束切换时置零、随后下一流体步重新满足不可压缩条件;网格不瞬移。释放时弹簧平衡位置仍为 y=0。改变 m、fn 或 ζ 会记录参数事件;它属于外部参数操作,不能拿跨参数修改的能量变化宣称封闭系统能量守恒。
初始流场从均匀入口速度开始,在壁面强制无滑移,并加一个一次性的微小横向高斯速度扰动,默认幅值 0.02 U_initial、中心 (1.5,0)。此种子只破坏初始精确对称性;没有后续人为激振。启动初期流场尚未发展,会有压力和阻力瞬态,不能立即解释为稳定脱涡频率。
本机核心短测(2026-10-23)见 live-core-check.json:快速网格 459 顶点、844 单元,dt=0.05 时单步中位约 0.077 s;标准网格 1024 顶点、1930 单元,单步中位约 0.196 s。实际速度随机器负载变化。实时意为参数进入正在推进的求解;并不保证模拟时间按墙钟时间 1:1 前进。
隐式 Euler 给结构和流场都引入数值耗散。仅考虑无流体的结构自由衰减,默认 fn=0.16、ζ=0.01、dt=0.05 对应离散等效阻尼比约 0.0351。它明显高于输入物理阻尼,因此快速网格和该时间步用于观察耦合过程,不能把位移峰值、锁定区间或 Sc 效应当作已收敛的定量工程结论。减小时间步和网格加密都需要重新检验。
核心短测确认参数变化不中断状态、压力/黏性力驱动结构、固定/释放没有网格跳变、外边界保持固定、同步快照有限。它不替代独立长程升速试验和收敛研究;长程升速结果由独立核验给出。