Zonal flow residual does not appear to be captured correctly

Issue #95 new
Peter Hill created an issue

A well-known result is that the linear, collisionless zonal flow is not completely damped: there is some residual at long times. See: Rosenbluth-Hinton 1998 for the original derivation, Xiao-Catto 2006 extends the result to small wavelengths, and Xiao-Catto 2007 further extends that to shaped plasmas. This latter paper has comparisons with gs2.

I’ve attempted to reproduce some of these results, with only some success. The base input file I’ve been using is attached. I’ve used both s-alpha and Miller, but have not looked at the shaping effects yet. I’ve used high space and velocity resolution, but low time resolution. It looks like the results are pretty insensitive to the timestep, which is very convenient, as we only need to take a few steps to get to the answer. I’ve checked the space/velocity resolution and it does need to be quite high for the damping to be correct; although the residual itself is pretty robust.

At small epsilon and small kx we correctly recover the Xiao-Catto 2006 result, but we start diverging at larger epsilon and kx.

The following figure has a lot going on, but shows the analytic result in lines and gs2 results with symbols. The solid lines and circles are for large wavelengths, and the dashed lines and diamonds are for small wavelengths. The inset shows that at small epsilon and large wavelength, gs2 gets decent agreement, with worsening error at larger epsilon.

The kx variation appears to be barely captured at all. While the residual does depend on the safety factor, it doesn’t appear to play a role in the disagreement with the analytic results.

The following figure is now using Miller (“theta_grid_knobs::equilibrium_option = default”), keeping rhoc = 0.5 and varying rmaj, keeping it equal to r_geo. The error bars are the standard deviation of the residual over some late times. They are just to show that the zonal flow is not damped to the residual. I skipped them off the other two figures because they are very small for those. Here, we barely get anything correct. A larger range in the residual value is shown so the small epsilon results can be seen. It almost looks like the small wavelength variable is being captured.

The following is still Miller, but keeping rmaj = r_geo = 1.0 and varying rhoc. This is now much closer to the s-alpha result, where small epsilon, small kx gives the correct answer, and everything else is varying degrees of incorrect. I don’t understand why these two scans should be different.

One issue might be that although I can control kx and ky, I’m not sure that I can set the initial condition to be m=0.

These results are from next, but I had a quick check of master too and that looks like it gives identical results.

I’ve pushed the python script used to generate the s-alpha plot to feature/zonal-flow-benchmark under tests/physics_benchmarks/zonal_flow_residual. Run ./generate_cases.py -rps to run the scan, generate the figure and save it. It takes about 5 minutes on 4 cores on my machine.

Comments (1)

  1. David Dickinson

    I’ll also hop on this issue to note that these test cases can also sometimes show a slowly growing mode – we’re exploring this now as well but will create a separate issue if this can’t be resolved.

  2. Log in to comment