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

Implement Neutrino decay in PISA (Prob3) #748

Merged
merged 6 commits into from
Aug 18, 2023
Merged

Conversation

anilak41
Copy link
Contributor

@anilak41 anilak41 commented Aug 9, 2023

Modify numba_osc_kernels.py

  • Passed decay_flag and mat_decay to osc_probs_layers_kernel()
  • Introduced get_H_decay()
  • Modified get_transition_matrix()
  • Modified get_transition_matrix_massbasis()
  • Introduced get_dms_numerical() - seperate function to diagonalize non-hermitian hamiltonian
  • Modified get_product() to handle general case

Modify numba_hostfunctions.py

  • Modified propagate_array()
  • Modified propagate_scalar()
  • Modified get_transition_matrix_hostfunc()
  • Modified get_transition_matrix_massbasis_hostfunc()
  • Modified get_product_hostfunc()
  • Introduced get_H_decay_hostfunc()
  • Introduced get_dms_numerical_hostfunc()

Modify prob3.py

  • Passed neutrino_decay (boolean to turn on/off decay)
  • Passed decay_alpha3 parameter
  • Modified propagate_array() to include decay_flag and decay_matrix

New - decay_params.py

Anil Kumar added 2 commits August 9, 2023 09:58
- Anil Kumar (anil.kumar@desy.de)
- Sharmistha Chattopadhyay

## Modify `numba_osc_kernels.py`

* Passed `decay_flag` and `mat_decay` to `osc_probs_layers_kernel()`
* Introduced `get_H_decay()`
* Modified `get_transition_matrix()`
* Modified `get_transition_matrix_massbasis()`
* Introduced `get_dms_numerical()` - seperate function to diagonalize non-hermitian hamiltonian
* Modified `get_product()` to handle general case

## Modify `numba_hostfunctions.py`
* Modified `propagate_array()`
* Modified `propagate_scalar()`
* Modified `get_transition_matrix_hostfunc()`
* Modified `get_transition_matrix_massbasis_hostfunc()`
* Modified `get_product_hostfunc()`
* Introduced `get_H_decay_hostfunc()`
* Introduced `get_dms_numerical_hostfunc()`

## Modify `prob3.py`
* Passed `neutrino_decay` (boolean to turn on/off decay)
* Passed `decay_alpha3` parameter
* Modified `propagate_array()` to include `decay_flag` and `decay_matrix`

## New - `decay_params.py`
@LeanderFischer
Copy link
Collaborator

Please pull the master branch again and resolve the conflicts.

@anilak41
Copy link
Contributor Author

I have resolved the issues, and the numba_osc unit test is running fine on single and double precision on the local machine.

The modification of the numba_osc unit test has resulted in some new ref pkl files and these ref pkl files are not being recognized by Python 3.7 during the above check on git which resulted in the failure of the test and aborted the test for python 3.10 also.

Note that the double precision test on Python 3.10 was successful and it was checking for Python 3.7 when the test was aborted.

How can this issue be solved?

@anilak41
Copy link
Contributor Author

anilak41 commented Aug 14, 2023

The PISA installation dependencies show that at least Python 3.8 is needed, then why are we still checking these tests for Python 3.7?

@JanWeldert
Copy link
Collaborator

Looks ok to me. Have you checked if you get the same osc probabilities with your code setting neutrino decay to 0 and the old code?

@anilak41
Copy link
Contributor Author

Yes.

  • I have compared oscillation probabilities using old PISA and modified PISA for $\alpha_3 = 0$. They match exactly.
  • I have also compared PISA with OscProb for a non-zero value of $\alpha_3$, and they also match nicely.

Please see the plots in the attached presentation.

Neutrino_decay_PISA_Benchmarking.pdf

@JanWeldert
Copy link
Collaborator

Alright, should be good to go then.

@anilak41 anilak41 merged commit 0da7306 into icecube:master Aug 18, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants