Skip to content

Commit

Permalink
some documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
emptymalei committed Mar 6, 2018
1 parent 4efb48a commit 1874904
Show file tree
Hide file tree
Showing 3 changed files with 1,536 additions and 1 deletion.
35 changes: 34 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,40 @@ This repositary provides an parallel (with OpenMP) algorithm to solve the neutri

## Documentation

To be added.
### Model

The model that we are solving is the line model.

![](assets/line-model.svg)

### Solvers

1. `test.cpp` is the code to test the functions.
2. `neutrino-headon.cpp` demonstrates the solver `Looper::halo_euler_forward_one(sa_ptr, sa_store_ptr, STEPSIZE, SIZE, RCOEFF, MIU)` which solves the one beam problem.
3. `neutrino-headon-evo.cpp` demonstrates the solver `Looper::halo_evolution_op_one(sa_ptr, sa_store_ptr, STEPSIZE, SIZE, RCOEFF, MIU)` which uses the evolutation operator stepper and solves the one beam problem.
4. `neutrino-nunubar.cpp` demonstrates the solver `Looper::halo_euler_forward_one_nunubar(sa_ptr, sa_store_ptr, ya_sa_ptr, ya_sa_store_ptr, STEPSIZE, SIZE, spect, RCOEFF, mu_arr, costheta_arr)` which solves the two beams problem.
5. `neutrino-headon-avg.cpp` and `neutrino-headon-incline.cpp` are the two attemps to solve damp the oscillations and try to find the equilibrium with less iterations.

### Conventions

1. I use polarization vectors (flavor isospin picture) to denote the state of neutrinos.

### Two Beams Model Solver

In the code, I solved an example of the two beams model with left-going beam being neutrinos and right-going beam being antineutrinos.

The solver `halo_euler_forward_one_nunubar(StateArray* rho_array_ptr, StateArray* rho_array_store_ptr, StateArray* rho_another_array_ptr, StateArray* rho_another_array_store_ptr, const double dt, const int totallength, const double spectrum[2], const double reflection, const double mu_arr[2], const double costheta[4])` takes in many parameters.

1. The first two arrays are the left beam, and the next two arrays are the right beams.
2. `dt` is the stepsize.
3. `spectrum[2]` is the spectrum of the two beams. In fact this is simply the sign of the interactions. This is also used to determine the sign of :math:`\omega_v`. The first element should be the left beam and the second element should be the right beam.
4. `reflection` is the reflection coefficient. We have the same reflection coefficient for both beams regardless of the content since we are discussing neutral current scattering.
5. `mu_arr[2]` is {:math:`\mu_L`, :math:`\mu_R`}.
6. The angles `costheta[4]` parameters: { :math:`\cos(2 \theta_L)`, :math:`\cos(2 \theta_R)` , :math:`\cos( \theta_R- \theta_L)`, :math:`\cos (\theta_R+\theta_L)` }; **It might be better to use** :math:`\xi` **which is defined as** :math:`1-\cos(\text{whichever angles})`.



To be completed.

## Acknowlegement

Expand Down
Loading

0 comments on commit 1874904

Please sign in to comment.