You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Bug] Cylinder jet actuation is not zero-net-mass-flux #360
Describe the bug
The jet actuation of hydrogym.firedrake.Cylinder was added in #141 as zero-net-mass-flux (ZNMF) control following Rabault et al. (2019), where the two jets satisfy Q1 + Q2 = 0. The boundary velocity in Cylinder.cyl_velocity_field adds both jet profiles with the same sign:
# Normal velocity (blowing/suction) at the cylinder wallreturnufl.as_tensor((self.x, self.y)) * (A_up+A_lo)
(x, y) points out of the cylinder at both jets, so a positive control blows through both jets and a negative control sucks through both. The actuation is symmetric about the centreline and injects net mass. Because of this symmetry it can't produce lift, which is what the feedback and step-input examples rely on. MAIA's Cylinder already pairs its jets with opposite signs.
To Reproduce
Integrate the outflow through each jet for unit control:
importfiredrakeasfdimporthydrogym.firedrakeashgymflow=hgym.Cylinder(mesh="medium")
flux=fd.dot(flow.cyl_velocity_field, -flow.n) # from the wall into the fluidup=fd.assemble(fd.conditional(flow.y>0, flux, 0.0) *fd.ds(flow.CYLINDER))
lo=fd.assemble(fd.conditional(flow.y<0, flux, 0.0) *fd.ds(flow.CYLINDER))
print(up, lo) # 1.0033 1.0033 -> net flux 2.0
Steady Newton solve at Re = 40 (medium mesh), with no actuation and with the maximum control u = 0.1:
CL
CD
u = 0
0.00003
1.789
u = 0.1, current main
0.00031
2.050
u = 0.1, jets with opposite sign
-1.272
1.732
On main the jets have no authority over lift and only increase drag.
Console Error
No error is raised; the actuation is just not the documented ZNMF blowing/suction.
Environment Description
Current main (6ab9c58). Checked with the firedrakeproject/firedrake-vanilla-default container (arm64) on Linux.
Activity