pynucastro.rates.aprox_family_rates module#
Functions to help construct rate approximations used in the aprox13, aprox19, aprox21 family of reaction networks
- pynucastro.rates.aprox_family_rates.make_CO_approx_rates(lib, root_nuclei, *, return_obsolete_rate_names=False, use_detailed_balance=False)[source]#
Create approximate rates describing C/O burning. We want to model a sequence like:
N - Z ^ | X | ... . . | ... . . | ... . . | S ............E ..... F | +------------------------------> Z
This comes up in a few cases:
C + C: S = C12, E = Ne20, F = Ng24, X = Na23
C + O: S = C12 + O16, E = Mg24, F = Si28, X = Al27
O + O: S = O16, E = Si28, F = S32, X = P31
We start with 5 rates (+ their inverses):
λ1 = S(S,p)X
λ2 = S(S,α)E
λ3 = X(p,α)E
λ4 = X(p,γ)F
λ5 = E(α,γ)F
and we want to combine these into 3 effective rates (and their inverses) by eliminating X assuming equilibrium.
The resulting effective rates are:
S(S,p)X(p,γ)F
S(S,α)E + S(S,p)X(p,α)E
E(α,γ)F + E(α,p)X(p,γ)F
- Parameters:
lib (Library or list(Rate)) – the collection of rates that we will use for finding λ1 through λ5 and their inverses. This could be a Library or a list obtained via
Library.get_ratesorRateCollection.get_rates.root_nuclei (str) – the identity of nucleus A in this approximation. This can be “C”, “CO” or “O”
return_obsolete_rate_names (bool) – Do we return a list of rates names that can be removed if we use these approximate rates?
use_detailed_balance (bool) – Do we rederive the reverse rates using detailed balance?
- Returns:
approximate_rates (list(ApproximateRate)) – A list of the approximated rates
obsolete_rates (list(str), optional) – A list of the rate names, in the form “A(x,y)B” that are obsoleted by the new approximate rates.
- pynucastro.rates.aprox_family_rates.make_ap_pg_rates(lib, reactant, product, *, use_detailed_balance=False)[source]#
Return a pair of
ApproximateRateobjects (forward, reverse) for the A(α,γ)B + A(α,p)X(p,γ)B approximation.- Parameters:
lib (Library or list(Rate)) – A Library or list of rates containing all the necessary rates for the approximation.
reactant (Nucleus, str) – The reactant, A, in the sequence A(α,γ)B
product (Nucleus, str) – The product, B, in the sequence A(α,γ)B
use_detailed_balance (bool) – Do we rederive the reverse rates using detailed balance?
- Return type:
- pynucastro.rates.aprox_family_rates.make_double_neutron_rates(lib, reactant, product, *, use_detailed_balance=False)[source]#
Return a pair of
ApproximateRateobjects (forward, reverse) for the A(n,γ)X(n,γ)B -> A(nn,γ)B approximation- Parameters:
lib (Library or list(Rate)) – A Library or list of rates object containing the neutron-capture rates
reactant (Nucleus, str) – The reactant, A, in the sequence A(n,γ)X(n,γ)B
product (Nucleus, str) – The product, B, in the sequence A(n,γ)X(n,γ)B
use_detailed_balance (bool) – Do we rederive the reverse rates using detailed balance?
- Return type: