Skip to content
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

Add magnetic field drivers/integrators #49

Closed
4 tasks done
whokion opened this issue Sep 29, 2020 · 3 comments
Closed
4 tasks done

Add magnetic field drivers/integrators #49

whokion opened this issue Sep 29, 2020 · 3 comments
Assignees
Labels
enhancement New feature or request field Magnetic field and propagation
Projects
Milestone

Comments

@whokion
Copy link
Contributor

whokion commented Sep 29, 2020

Implement magnetic filed integration with a realistic geometry and a non-uniform magnetic field, and test different integrators on GPU.

Possible Quantized State System (QSS) implementation?

Possibly implement simpler steppers (e.g. helix) for uniform magnetic fields

@whokion whokion added geometry field Magnetic field and propagation labels Sep 29, 2020
@sethrj sethrj added this to In progress in v0.1.0 Nov 9, 2020
@whokion whokion self-assigned this Dec 3, 2020
@whokion
Copy link
Contributor Author

whokion commented Dec 3, 2020

@sethrj I scratched out classes for the magnetic field integration (FieldPropagator -> ChordFinder -> Driver -> Stepper -> Equation -> Field) with minimal functionalities (without a boundary crossing for now, which can be extended later when navigation is fully working). One question before moving forward for actual implementation is regarding to how to pass required input for the field integration (i.e., position, direction, kinetic energy and mass (for the momentum three vector), proposed step length, charge) which is combined but parts of information from ParticleTrackView and GeoTrackView. In fact, the data format that I would like to use is {y(position,momentum), dydx{rhs of equation}, step_length, charge} where y and dydx is an array of dim-6 real_type, which are common input/(output) to most functions of those classes. Is it worth while to introduce something like FieldTrackView which only contains a set of minimal input for the field integration or just use the ParticleTrackView and GeoTrackView directly?

@sethrj
Copy link
Member

sethrj commented Dec 3, 2020

Excellent! I really like the FieldTrackView idea. What about a FieldTrackView that is be a temporary class whose constructor takes a ParticleTrackView and GeoTrackView? The constructor could do the necessary transformations (e.g. {energy, direction} -> momentum) into whatever data format is easiest for the propagation classes, or you could provide accessors that calculate the data on-the-fly. (Either way, I'd use accessors like we do with the other view classes to allow the implementation to change later.)

Does that sound like a good approach?

@whokion
Copy link
Contributor Author

whokion commented Dec 3, 2020

Sounds great! I will introduce FieldTrackView and will ask your review later. Thanks.

@sethrj sethrj moved this from In progress to Review in progress in v0.1.0 Mar 2, 2021
@sethrj sethrj linked a pull request Mar 15, 2021 that will close this issue
@sethrj sethrj added this to the Y2 Goals milestone Mar 15, 2021
sethrj pushed a commit that referenced this issue May 5, 2021
* Added the first version of FieldPropagator and associated tests (issue #49)
* Added geometry state accessors to support FieldTrackView
@sethrj sethrj modified the milestones: Y2Q4 Goals, Y2Q3 Goals, Y2Q2 Goals Sep 24, 2021
@sethrj sethrj closed this as completed Sep 24, 2021
v0.1.0 automation moved this from Review in progress to Done Sep 24, 2021
@sethrj sethrj added the enhancement New feature or request label Feb 18, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request field Magnetic field and propagation
Projects
No open projects
Development

Successfully merging a pull request may close this issue.

2 participants