-
Notifications
You must be signed in to change notification settings - Fork 17
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Enable multiple laser pulses #823
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for adding this so quickly! Looks fine to me. Let's discuss details offline and potentially fix via follow up PRs
MultiLaser::ReadParameters () | ||
{ | ||
amrex::ParmParse pp("lasers"); | ||
getWithParser(pp, "names", m_names); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we maybe make this queryWithParser
and set a default name of "no_laser"?
Otherwise, we break every existing input script. Could be fine of course, but maybe we need to be clearer in the documentation about it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good point. Just for laser? Or we could change it for beams, plasmas and lasers, to make them consistent.
This PR enables multiple laser pulses. Files
Laser.H/cpp
are renamedMultiLaser.H/cpp
, handling multiple laser pulses. TheMultiLaser
class holds a vector ofLaser
s, similar to beams or plasmas, with 1 notable difference: the actual data is stored into 1 single array for all lasers, and this array is inMultiLaser
.Laser
is almost an empty class. In the future, this will be generalised and eachLaser
instance will have a separate array. Important point:lambda0
is a property ofMultiLaser
rather thanLaser
, so we can solve for all lasers at the same time.Change along the way:
use_laser
that @SeverinDiederichs disliked so much :).The PR is unnecessary long, the content of
MultiLaser
is just the one fromLaser
, except for the constructor andReadParameters
. Unfortunately,git mv
did not help and git is being confused here.On Juwels GPUs: top is
laser_real
, bottom isEz
, for a laser propagating upwards in a plasma. All looks fine.