Skip to content

Add flag to disable laser evolution#1323

Open
huixingjian wants to merge 31 commits intoHi-PACE:developmentfrom
huixingjian:desable_laser_evo
Open

Add flag to disable laser evolution#1323
huixingjian wants to merge 31 commits intoHi-PACE:developmentfrom
huixingjian:desable_laser_evo

Conversation

@huixingjian
Copy link
Contributor

@huixingjian huixingjian commented Dec 8, 2025

This PR introduces two new options, beams.do_uz_push and lasers_solver_type = "disable", which respectively disable beam particle acceleration and laser evolution. These features are particularly useful for nonlinear beam matching studies in regimes with strong ion motion
The implementation has been tested on Maxwell using a LPA simulation with a 200 pC, 500 GeV electron beam. The results demonstrate successful transverse matching while preserving the longitudinal phase-space distribution.

image

@huixingjian huixingjian changed the title [WIP]add flag to diable laser evolution [WIP]add flag to disable laser evolution Dec 8, 2025
@huixingjian huixingjian changed the title [WIP]add flag to disable laser evolution Add flag to disable laser evolution Dec 10, 2025
Copy link
Member

@MaxThevenet MaxThevenet left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for this PR! Looks good, but could you check the naming as suggested below?

Whether the beam particles are pushed along the z-axis. The momentum is still fully updated.
Note: using ``do_z_push = 0`` results in unphysical behavior.

``<beam name>.accelerate`` (`bool`) optional (default `1`)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there any reason not to use this name? Would be more consistent with option above.

Suggested change
``<beam name>.accelerate`` (`bool`) optional (default `1`)
``<beam name>.do_uz_push`` (`bool`) optional (default `1`)


* ``lasers.solver_type`` (`string`) optional (default `multigrid`)
Type of solver for the laser envelope solver, either ``fft`` or ``multigrid``.
Type of solver for the laser envelope solver, either ``fft``, ``multigrid`` or ``disable``.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

?

Suggested change
Type of solver for the laser envelope solver, either ``fft``, ``multigrid`` or ``disable``.
Type of solver for the laser envelope solver, either ``fft``, ``multigrid`` or ``off``.

getWithParser(pp, "injection_type", m_injection_type);
queryWithParser(pp, "duz_per_uz0_dzeta", m_duz_per_uz0_dzeta);
queryWithParser(pp, "do_z_push", m_do_z_push);
queryWithParser(pp, "accelerate", m_acc_z);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Likewise

Suggested change
queryWithParser(pp, "accelerate", m_acc_z);
queryWithParser(pp, "accelerate", m_do_uz_push);

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

Comments