ECP-WarpX / WarpX

WarpX is an advanced electromagnetic & electrostatic Particle-In-Cell code.
https://ecp-warpx.github.io
Other
306 stars 195 forks source link

Question on `psatd.current_correction=1` in RZ geometry for LWFA #3340

Open wangjia-ai opened 2 years ago

wangjia-ai commented 2 years ago

Dear developers: I found there may have some nonphysical results when using "psatd.current_correction = 1", are some key parameters missing in the input file? inputs_2d.txt 25

EZoni commented 2 years ago

@wangjia-ai

Thank you for reporting this. A few bug fixes that address this issue were just merged this morning, see commit 48c1a86047fb06b957474c5a92d15f104c77b039 and the corresponding PR, #3290.

Would you like to try rerunning your simulation with the very latest version of WarpX and see if the issue is resolved thanks to these bug fixes?

wangjia-ai commented 2 years ago

With the latest version and "psatd.current_correction = 1", the electric field appears to have some nonphysical distortion points. 54

EZoni commented 2 years ago

@wangjia-ai

Glad to see that the main issue is solved. Regarding the distortion points you see, we discussed among a few developers and we think the distortion might go away by increasing the number of guard cells used in the simulation (in which case it would be caused by the non-locality of the current correction).

I tried rerunning your simulation using more guard cells but I think I do not get the same results as you, so I might be doing something wrong on my side (maybe in the way I plot the output data).

It is probably easier for you to try rerunning the simulation with more guard cells and reproduce the plot above to compare the results.

In order to use more guard cells, I would suggest setting the order of the spectral solver explicitly with psatd.nox = 16 and psatd.noz = 16 (these are the default values, so the ones you already use) together with psatd.nx_guard = 16 and psatd.nz_guard = 24 (or even 32 if the boxes in your domain decomposition are big enough).

This would test if using more guard cells only longitudinally makes a difference (I have reasons to believe that the longitudinal guard cells might matter more than the radial ones in this case). If this does not work, you can try increasing also the radial guard cells, by increasing the value of psatd.nx_guard.

wangjia-ai commented 2 years ago

The problem still exists with psatd.nx_guard=24 and psatd.nz_guard=48. 54

EZoni commented 2 years ago

@wangjia-ai

Thank you.

Can you please confirm to us that these distortion points do not show up if current correction is turned off (psatd.current_correction=0)?

wangjia-ai commented 2 years ago

Yes, the distortion points do not show up as "psatd.current_correction=0" 54