Skip to content

[Feature Req.] Ability to access all perturbed velocity components (also alternate line-of-sight direction) #168

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

Open
BradGreig opened this issue Sep 17, 2020 · 8 comments
Assignees
Labels
context: python wrapper Changes predominantly concerning the python wrapper good first issue Good for newcomers
Milestone

Comments

@BradGreig
Copy link
Member

BradGreig commented Sep 17, 2020

Is your feature request related to a problem? Please describe.
Presently, lightcone quantities are fixed along the z-direction. Which means perturb_field.velocity can only return the z-component of the velocity. Related to #167.

Describe the solution you'd like
Obtaining all 3 components (x, y, z) of the perturbed velocity field should be accessible. However, it is best to avoid having all 3 components accessible at all times (for memory reasons). Thus there should be an option to keep all three components when required, otherwise only keep the line-of-sight direction for constructing lightcones.

Equally, it should be theoretically possible to construct lightcones along any direction, not just the z-direction. Default should be the z-direction, but the user should have the ability to define the preferred direction, i.e. x-, y- or z- direction.

@steven-murray
Copy link
Member

@BradGreig I thought there was already a global parameter for choosing the direction?

Definitely can optionally save all directions as part of our memory usage upgrades.

@BradGreig
Copy link
Member Author

@steven-murray, the original 21cmFAST definitely had this option, however, it appears I didn't port that over (for whatever reason).

That is likely the most sensible way to do it (in regard to choosing line-of-sight direction). However, we will have to make sure this is accurately applied throughout the code. For example, in _interpolate_in_redshift and application of subcell RSDs we need to make sure the correct axis is being interpolated along (and possibly others, but I'll need to double check).

@steven-murray
Copy link
Member

steven-murray commented Sep 22, 2020 via email

@BradGreig
Copy link
Member Author

Are you talking of one or two options (one for line-of-sight direction and one for keeping all velocity components). I'd like to try and limit too many options, preferring the same functionality with less options. If that makes sense.

@steven-murray
Copy link
Member

steven-murray commented Sep 23, 2020 via email

@BradGreig
Copy link
Member Author

I suspect these may be less frequently used that other options. Thus, should they be in UserParams or are they better served in the global_params? I was under the impression that less frequently used things should be in global_params.

@steven-murray
Copy link
Member

steven-murray commented Sep 24, 2020 via email

@BradGreig
Copy link
Member Author

Ok, no problems, if that is the logic of the UserParams/global_params divide then two additional flags makes sense to me.

@steven-murray steven-murray added good first issue Good for newcomers context: python wrapper Changes predominantly concerning the python wrapper type: code feature and removed enhancement labels Sep 30, 2020
@steven-murray steven-murray added this to the v3.1.0 milestone Oct 8, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
context: python wrapper Changes predominantly concerning the python wrapper good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

2 participants