Conversation
Temporarily point the ABLASTR dependency at the branch of BLAST-WarpX/warpx#7228, which replaces the loose MLMG solver arguments of `ablastr::fields::computePhi` with an `ablastr::fields::MLMGOptions` struct. This is a work-in-progress reference so we can migrate the ImpactX call site ahead of time. Reset the repository and branch to a BLAST-WarpX/warpx development commit once the upstream PR landed. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01U98bFCQjdzryCL3idcxWgh
`ablastr::fields::computePhi` now takes the MLMG solver settings in an `ablastr::fields::MLMGOptions` struct instead of as four loose arguments. Fill the struct with the same defaults and `algo.mlmg_*` inputs as before. The struct members that ImpactX does not set (bottom solver, coarsening, agglomeration, consolidation, final smoothing sweeps) default to the AMReX defaults that ImpactX used implicitly, so the solve is unchanged. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01U98bFCQjdzryCL3idcxWgh
1 task
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.
Prepare ImpactX for the breaking ABLASTR change in BLAST-WarpX/warpx#7228.
That PR replaces the four loose MLMG solver arguments of
ablastr::fields::computePhiwith a singleablastr::fields::MLMGOptionsstruct, which additionally exposes the bottom solver and the coarse-level
(agglomeration/consolidation/coarsening) controls.
Do not merge as-is. This is a work-in-progress PR so we can validate the
migration early and land it quickly once upstream is in. Before merging, the
first commit has to be replaced by a regular dependency update that resets
ImpactX_ablastr_repo/ImpactX_ablastr_branchtoBLAST-WarpX/warpxand adevelopmentcommit that contains #7228.Changes
cmake/dependencies/ABLASTR.cmake: temporarily trackroelof-groenewald/WarpX @ mlmg_solver_options(marked with aTODO).src/particles/spacecharge/PoissonSolve.cpp: fill anablastr::fields::MLMGOptionsfrom the existing defaults andalgo.mlmg_*inputs and pass it to
computePhi.computePhiis the only ImpactX call site touched by #7228 — ImpactX does notuse
computeEffectivePotentialPhiorgetMaxNormRho, and the remainingABLASTR delta is additive.
No user-facing change
The
algo.mlmg_relative_tolerance,algo.mlmg_absolute_tolerance,algo.mlmg_max_itersandalgo.mlmg_verbosityinputs and theirsim.mlmg_*Python properties are unchanged. The
MLMGOptionsmembers that ImpactX doesnot set (bottom solver, bottom verbosity/iterations/tolerances, max coarsening
level, agglomeration, consolidation, final smoothing sweeps) default to the
same AMReX defaults that ImpactX used implicitly before, so the solve is
unchanged. Existing space-charge tests provide the coverage.
Testing
Built against the #7228 branch (OMP, MPI, FFT, double precision) with the
AMReX commit ImpactX currently pins — no bump needed, no new warnings.
The full CTest suite passes (201/201), including
cfchannel_spacecharge_mlmg,cfchannel_spacecharge_fft,expanding_beam_mlmg,expanding_beam_fft,kurth_10nC_periodic,expanding-fft-2dandchicane_csr.Follow-ups
ImpactX inputs — they gave a 16% runtime win on 8 A100s upstream.
ablastr::warn_manager::WMClear(), which would let ImpactXreset the ABLASTR warning state between
ImpactXre-creations.🤖 Generated with Claude Code
https://claude.ai/code/session_01U98bFCQjdzryCL3idcxWgh