advance_ExB_nonlinearity Subroutine

private subroutine advance_ExB_nonlinearity(g, gout, restart_time_step, istep)

compute phase factor needed when running with equilibrium flow shear compute ikyg FFT to get dg/dy in (y,x) space compute ikx zero out the zonal contribution to d/dx if requested if running with equilibrium flow shear, make adjustment to the term multiplying dg/dy FFT to get d/dx in (y,x) space multiply by the geometric factor appearing in the Poisson bracket; i.e., (dx/dpsidy/dalpha)0.5 compute the contribution to the Poisson bracket from dg/dy*d/dx

estimate the CFL dt due to the above contribution

estimate the CFL dt due to the above contribution compute dg/dx in k-space (= ikxg) zero out the zonal contribution to dg/dx if requested if running with equilibrium flow shear, correct dg/dx term FFT to get dg/dx in (y,x) space compute d/dy in k-space FFT to get d/dy in (y,x) space multiply by the geometric factor appearing in the Poisson bracket; i.e., (dx/dpsidy/dalpha)0.5 compute the contribution to the Poisson bracket from dg/dy*d/dx

estimate the CFL dt due to the above contribution

estimate the CFL dt due to the above contribution check estimated cfl_dt to see if the time step size needs to be changed

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension(:, :, -nzgrid:, :, vmu_lo%llim_proc:) :: g
complex, intent(inout), dimension(:, :, -nzgrid:, :, vmu_lo%llim_proc:) :: gout
logical, intent(out) :: restart_time_step
integer, intent(in) :: istep