[mesa-users] isotopic initial abundances

Bill Paxton paxton at kitp.ucsb.edu
Sun Jan 4 12:57:52 EST 2015

On Jan 4, 2015, at 8:32 AM, Ehsan Moravveji wrote:

> Dear Bill,
> Thanks helping me dive into so many subroutines. I managed to find my way to /chem/data/lodders03.data, and fix my input list of mixture.
> My next question is the compatibility between the input list of isotopes, and the burning nets.
> First a little bit of explanation: OP Mono is able to calculate opacities for 17 elements: H, He, C, N, O, Ne, Na, Mg, Al, Si, S, Ar, Ca, Cr, Mn, Fe and Ni. 
> I would like to include these elements in my run, to have their full contribution to the opacities. Therefore, I require a consistent list of input isotopes for mixture and an appropriate burning net.
> Question 1:
> Shall every isotope that I put in the input mixture, be present in the burning net? Through inclusion of “add_iso()” in a customized net?
> OR
> Shall every isotope that is needed in the burning net, be passed through input mixture file?
> You clearly realize that I have a compatibility concern now.

I'm not sure I understand your question, but here's some info that might be relevant.
the list of input isotopes for setting initial abundances must be a subset of the set of isotopes in the net.
i.e., the net determines the set of isotopes.  
the inlist list cannot add to the set; it doesn't need to include every item in the set.

> Question 2:
> Does OP Mono also compute the opacities for isotopes of these 17 elements? E.g. can I include the two isotopes of S, etc?
> Does it incorporate the partially ionized states of these elements/isotopes?

OP mono deals with elements not isotopes.  So for each call on OP mono, there is a step to create a list of element abundances.
Typically this is done by the routine 'get_op_mono_args' in kap/kap_lib.f90.  

But of course you can do-it-yourself by using the hook routine 'other_kap_get_op_mono'.
That way you have the option of including elements in the mix for OP mono that are not in the actual net.
For example, you might be running star with a net that doesn't include Cr or Mn.  
By using the hook, you can construct an element abundance set for OP mono that
includes Cr and Mn at your chosen levels in combination with abundances to match
the abundances of the isotopes in the stellar model.

However it might be simpler just to add to the set of isotopes and avoid using a hook.
Here's an example -- assume my standard net is 'approx21_cr60_plus_co56.net'
It is missing Na, Al, and Mn from the OP mono set of elements.  

here's a 2-line special net that adds isotopes as representatives of those elements.

	include 'approx21_cr60_plus_co56'
	add_isos(na23, al27, mn53)

Note that we do not add reactions for these, so they will be inert with constant abundances.
Set the desired abundances using your initial abundances file.

The cost of this scheme is that the stellar model is carrying around these extra isos.
The benefit is that you don't have to write any code for a special hook.

You might notice another possible solution at this point.  
It is something Falk suggested long ago, however when he pointed it out to me we were already deeply entrenched in the current scheme.
But sometime someone might take this on and convert the code.   The idea is that mesa/star know about a list of inert isos as part of the model.
The inert isos would have the same composition everywhere in the model.
The mass fractions for each cell would be the sum of the active isos that are explicitly in the cell and the inert ones that are implicitly everywhere.
That would provide at simple solution for your problem.   But it would come at added complexity in the mesa/star code.


> Thanks for your support
> Ehsan.
> On Jan 3, 2015, at 11:53 PM, Bill Paxton <paxton at kitp.ucsb.edu> wrote:
>> On Jan 3, 2015, at 10:05 AM, Ehsan Moravveji wrote:
>>> Dear mesa developers and users,
>>> First of all, let me wish you a wonderful and flourishing 2015.
>> Thank you!  ;D  Same to you.
>>> I have a question regarding initialization of isotopic abundances.
>>> There are currently (using v.7280) two possibilities to specify the initial mixture. 
>>> (1). The first is to use pre-defined abundance list, like
>>>     initial_zfracs = 3
>>> looking into /chem/public/chem_def.f, the element abundances in number fraction (in spectroscopic notation) are defined there. E.g. 
>>>        GS98_element_zfrac(e_H)=12.00
>>>        GS98_element_zfrac(e_He)=10.93
>>>        GS98_element_zfrac(e_C)=8.52
>>>>>> Clearly, the abundance of isotopes of carbon are not specified here. However, if the burning net requires to incorporate, e.g. C13, then C12 and C13 (over some function calls) will receive non-zero shares of initial C abundance. Thus, there are some function calls taking care of this that I still do not know.
>> track it down --- the trail starts in star/job/run_star_support.f90 with a call on star_set_standard_composition; that is in star/public/star_lib.
>> that calls set_standard_composition in adjust_xyz. (in star/private).
>> that call get_xa_for_standard_metals which in turn calls one of the chem routines such as GN93_element_zfrac to get the element fractions.
>> then it calls get_xa to set the isotope mass fractions.  after doing the h and he isotopes, it calls adjust_z_fractions to finish the job.
>> it calls the chem function lodders03_element_atom_percent to get info about abundances of isotopes in the solar system.
>> the mass fraction for each element is then divided among the isotopes of that element in the current net in proportion to their solar system abundances.
>>> (2). the other possibility is providing a list of elements with their mass fractions as a two-column file
>> No.  That is not correct.   It is not a list of elements.   It is a list of isotopes with a mass fraction for each.  
>> the list must be a subset of the isotopes in the current net and the sum must be 1.
>> track it down -- starting from star/job/run_star_support with a call on star_uniform_xa_from_file; that's in star/public/star_lib.
>> that calls set_uniform_xa_from_file in adjust_xyz.  
>> that reads the file by calling read_xa and then stores the mass fractions by calling set_uniform_composition.
>> -b

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.mesastar.org/pipermail/mesa-users/attachments/20150104/e68bd387/attachment.html>

More information about the Mesa-users mailing list