Hybrid-PIC: keep thermal relaxation momentum neutral - #3
Open
tomzhu0225 wants to merge 2 commits into
Open
Conversation
tomzhu0225
force-pushed
the
fix/pr7103-thermal-only-relaxation
branch
from
August 1, 2026 23:51
2a79518 to
4ebc9b8
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This keeps the Hybrid-PIC electron-ion temperature-relaxation operator thermal-only by centering its ion Ornstein-Uhlenbeck update on each ion species' bulk velocity instead of the electron velocity.
This PR is stacked on BLAST-WarpX/warpx#7103 because it reuses the per-species
Vs_fp_<species>fields introduced there. It can be rebased and retargeted todevelopmentafter that PR merges.Problem
The current
QDSMCApplyIonHeatingupdate relaxes each ion velocity towardu_e. However, the paired electron-energy term isand accounts only for thermal-energy exchange. Damping an electron-ion bulk drift also transfers ion momentum and bulk kinetic energy, without a conjugate electron momentum or energy update. Bulk friction is separately represented by the resistive-drag operator in BLAST-WarpX#7103.
Changes
u_ifromVs_fp_<species>.(u_r, u_theta, u_z)moments back to Cartesian particle velocity components in RZ and RCYLINDER.Regression
The enhanced test uses a force-free magnetic field, so
J || Bsupplies an electron-ion drift without aJ x Bforce, whileeta = 0disables Joule heating.With this fix:
0.97%(tolerance5%)0.603%(tolerance2%)0.0534 J0(tolerance0.08 J0)Negative control using the same test on the unmodified BLAST-WarpX#7103 head:
0.3817 J00.3297 J0Local checks