This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Last revision Both sides next revision | ||
baboons [2014/06/09 18:03] cook |
baboons [2014/06/10 18:49] brown Added help for humans take two |
||
---|---|---|---|
Line 24: | Line 24: | ||
- The mean life of the decaying particle X -> 2n (some magic decay. Not very physical, probably. But hey, we don't actually know what WIMPS are). | - The mean life of the decaying particle X -> 2n (some magic decay. Not very physical, probably. But hey, we don't actually know what WIMPS are). | ||
- The energy of these neutrons (although if it is high enough, it may not matter too much?) | - The energy of these neutrons (although if it is high enough, it may not matter too much?) | ||
- | - The abundance of X. | + | - The abundance of X. Jedamzik, 2004: 7Be is suppressed if O(10^-5) neutrons per proton are injected. Increases D/H. Lifetime of ~1000 s required. |
- n interaction rates with every other nucleus. | - n interaction rates with every other nucleus. | ||
- Mass of the WIMP. Chosen to be 100 GeV, based on the wikipedia WIMP entry, the font of all wisdom. | - Mass of the WIMP. Chosen to be 100 GeV, based on the wikipedia WIMP entry, the font of all wisdom. | ||
Line 33: | Line 33: | ||
from CDMS in 2004 suggests that this value isn't too far off. | from CDMS in 2004 suggests that this value isn't too far off. | ||
+ | |||
+ | **Code: ** | ||
+ | |||
+ | - **How to add an Isotope to bigbang** | ||
+ | - Add pointer identifier, id, in network.dek (e.g. ini56) | ||
+ | - In subroutine init_bigbang: | ||
+ | - Add 1 to ionmax | ||
+ | - Set id number (usually +1 of the last isotope) | ||
+ | - id = number | ||
+ | - Set ratnam (name e.g. "ni56") | ||
+ | - ionam (id) = isotope name | ||
+ | - Set zion (# of protons) | ||
+ | - zion (id) = Z | ||
+ | - Set aion (mass number) | ||
+ | - aion (id) = A | ||
+ | - Set bion (binding energy) | ||
+ | - bion (id) = binding energy | ||
+ | - In net_input | ||
+ | - Add initial abundance in xin | ||
+ | - xin (id) | ||
+ | - In init_isotope_rate_pointers | ||
+ | - Set pointer to 0 | ||
+ | - id = 0 | ||
+ | - **How to add a Reaction Rate to bigbang** | ||
+ | - Add reaction subroutine | ||
+ | - Add reaction and reverse reaction pointers, irid and irrid, in network.dek | ||
+ | - In subroutine init_bigbang: | ||
+ | - Add 2 to nrat | ||
+ | - Set id numbers, usually +1 of last reaction | ||
+ | - irid = number | ||
+ | - irrid = number + 1 | ||
+ | - Set names | ||
+ | - ratnam (irid) = reaction name | ||
+ | - ratnam (irrid) = reverse reaction name | ||
+ | - In subroutine init_isotope_rate_pointers | ||
+ | - Set pointers to 0 | ||
+ | - irid = 0 | ||
+ | - irrid = 0 | ||
+ | - In subroutine bigbangrat | ||
+ | - Call reaction subroutine | ||
+ | - call rate_id (btemp,bden,ratraw(irid),dratrawdt(irid),dratrawdd(irid),ratraw(irrid),dratrawdt(irrid),dratrawdd(irrid) | ||
+ | - Arguments | ||
+ | - temp => temperature in K | ||
+ | - den => density in g/cm^3 | ||
+ | - fr => forward reaction rate, N_a<sigma v> | ||
+ | - dfrdt => derivative of fr with respect to temp | ||
+ | - dfrdd => derivative of fr with respect to den | ||
+ | - rr => reverse reaction rate, N_a<sigma v> | ||
+ | - drrdt => derivative of fr with respect to temp | ||
+ | - drrdd => derivative of fr with respect to den | ||
+ | - In subroutine bigbangtab | ||
+ | - Add density dependence | ||
+ | - dtab(irid) = 1.0d0 for decay | ||
+ | - dtab(irid) = bden for 2-body interaction | ||
+ | - Likewise for irrid | ||
+ | - In subroutine rhs: | ||
+ | - Add dy/dt terms | ||
+ | - dydt(isotope1) = dydt(isotope1) - y(isotope1) * y(isotope2) * rate(irid) | ||
+ | - dydt(isotope2) = dydt(isotope2) - y(isotope1) * y(isotope2) * rate(irid) | ||
+ | - dydt(output) = dydt(output) + y(isotope1) * y(isotope2) * rate(irid) | ||
+ | - Likewise for reverse reaction | ||
+ | - In subroutine bbigbang | ||
+ | - Add tree calls for reaction if they don't exist | ||
+ | - call tree(isotope1,isotope1,eloc,neloc,nterms,nzo,iloc,jloc,np) | ||
+ | - call tree(isotope1,isotope2,eloc,neloc,nterms,nzo,iloc,jloc,np) | ||
+ | - call tree(isotope2,isotope1,eloc,neloc,nterms,nzo,iloc,jloc,np) | ||
+ | - call tree(isotope2,isotope2,eloc,neloc,nterms,nzo,iloc,jloc,np) | ||
+ | - call tree(output,isotope1,eloc,neloc,nterms,nzo,iloc,jloc,np) | ||
+ | - call tree(output,isotope2,eloc,neloc,nterms,nzo,iloc,jloc,np) | ||
+ | - In subroutine sbigbang | ||
+ | - Add Jacobian elements | ||
+ | - For example, for d(isotope1)/d(isotope2) | ||
+ | - a1 = -y(isotope1)*ratdum(irid) | ||
+ | - nt = nt + 1, only if this Jacobian element doesn't already exist | ||
+ | - iat = eloc(nt), only if this Jacobian element doesn't already exist | ||
+ | - dfdy(iat) = dydy(iat) + a1 | ||
+ | - xsum(isotope2) = xsum(isotope2) + a1 * mion(isotope1) | ||
+ | - Likewise for d(isotope1)/d(isotope1), d(isotope2)/d(isotope1), etc. | ||
+ | - For example, for d(output)/d(isotope2) | ||
+ | - a1 = -y(isotope1)*ratdum(irid) | ||
+ | - nt = nt + 1, only if this Jacobian element doesn't already exist | ||
+ | - iat = eloc(nt), only if this Jacobian element doesn't already exist | ||
+ | - dfdy(iat) = dydy(iat) + a1 | ||
+ | - xsum(isotope2) = xsum(isotope2) + a1 * mion(output) | ||
+ | - Likewise for d(output)/d(isotope1) | ||
+ | - Do likewise for the reverse reaction rate, making sure not to repeat any of the above lines that shouldn't be done if the element already exists | ||
+ | |||
+ | |||
+ | |||
Reference Papers: | Reference Papers: |