[Mesa-users] Simple one zone nuclear burning call using MESA
Philip Chang
chang65 at uwm.edu
Fri Feb 18 22:24:56 UTC 2022
Hi Rob,
Thanks for the suggestion. Skynet is a possibility, but it looks like
it is geared toward r-process and large networks, whereas I am aiming
for an alpha chain like approx19. But I will reach out to see if skynet
can be used with approximate networks.
In the meantime, would the equivalent of one zone burn in star/ be
solve_burn on star/private? Should I be modelling a burning routine
though this?
Cheers,
Philip Chang
On 2/18/22 14:51, Rob Farmer wrote:
> Hi,
> This is prefaced that the one zone burn code is not well tested or
> used. If something is not being used by star/ then there is likely a)
> bugs b) lack of development c) things that no longer make sense.
>
> >1. There are a load of pointers that are allocated on the module level
> like xin, xin_copy, etc.
>
> Yes we need to allocate things at runtime as we don't know the number
> of isotopes or number of reactions until runtime.
>
> > 2. net_1_zone_burn_const_density takes two external functions,
> get_eos_info_for_burn_at_const_density and burn_finish_substep.
>
> Lack of development. Though that has been cleaned up in recent
> versions of mesa.
>
> > 3. There is a lot of allocations and deallocation per call to nuclear
> burning.
>
> The only way to know if it's significant to your runtime is to profile
> the code.
>
> > 4. mod_one_zone_burn.f is a bit convoluted in how it runs. I am
> wondering if there are any other recommendations for good implementation
> nuclear burning networks that can be integrated into a hydrodynamic
> code.
>
> Have you looked at skynet
> https://ui.adsabs.harvard.edu/abs/2017ApJS..233...18L/abstract
> <https://nam02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fui.adsabs.harvard.edu%2Fabs%2F2017ApJS..233...18L%2Fabstract&data=04%7C01%7Cchang65%40uwm.edu%7C8c9c756e86ae49ce1c0208d9f3208436%7C0bca7ac3fcb64efd89eb6de97603cf21%7C0%7C0%7C637808144207856875%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=3OWe0ehHs9kSSznpPbdXFVwJJebozn%2BI3nSl6jmKZsU%3D&reserved=0>
> ?
>
> Prompted by this and other recent questions on using the one zone
> burn, I will be removing the one zone burner for the next mesa release.
>
> Rob
>
>
> On Fri, 18 Feb 2022 at 20:56, Philip Chang via Mesa-users
> <mesa-users at lists.mesastar.org> wrote:
>
> Hi All,
>
> Just wondering if anyone has any advice. I am working with a student
> integrating nuclear burning in my moving-mesh code, MANGA. I've
> previously integrated the mesa eos module into MANGA, e.g., compiling
> the mesa libraries and writing glue code to called the mesa
> libraries in
> MANGA. I now want to integrate the nuclear burning module in MESA
> into
> MANGA.
>
> The version of mesa that I am using is release 10398. I cannot
> upgrade
> yet as MESA moves from including crlibm to including crlibm in
> mesasdk
> release 12778, which causes issues with compilation and linking
> with MANGA.
>
> The mesa nuclear burning module will be called as a one zone burn at
> constant density per mesh point. As such I am using
> net/test/src/mod_one_zone_burn.f as the example. However, as I
> read it,
> I do not quite understand all the choices that was made it's
> development. Hopefully someone can answer some of the questions
> that I
> have.
>
> 1. There are a load of pointers that are allocated on the module
> level
> like xin, xin_copy, etc. It is not clear why they are declared as
> pointers rather than arrays outright. My guess is that size of the
> array is not necessarily known at compile time because you can use
> different networks. Is this correct?
>
> 2. net_1_zone_burn_const_density takes two external functions,
> get_eos_info_for_burn_at_const_density and burn_finish_substep.
> get_eos_for_burn_at_const_density explicitly uses the HELMHOLTZ eos,
> while burner_finish_substep using the mesa eos module. Is there a
> reason for the difference?
>
> 3. There is a lot of allocations and deallocation per call to nuclear
> burning. For instance, there is one allocation and deallocation
> per call
> to burner_finish_substep. This seems excessive to me. Usually
> allocation on the stack is much faster than allocation on the heap
> because of the (usually) expensive malloc call. I'm slightly
> concerned
> about the number of allocs in my MANGA code, as the usual usage for
> MANGA is running on a large node with 16-32+ threads per
> processes. As
> each thread will call the nuclear burning step simultaneously, I am
> concerned that the number of allocs will really slow the nuclear
> burning
> calls. Is this necessarily a major concern?
>
> 4. mod_one_zone_burn.f is a bit convoluted in how it runs. I am
> wondering if there are any other recommendations for good
> implementation
> nuclear burning networks that can be integrated into a hydrodynamic
> code. I have looked at Frank Timmes cococubed site which has
> aprox13.
> This is significantly simpler than mesa, but I know that it is not
> thread-safe, which is a necessity.
>
> Thanks.
>
> Cheers,
>
> Phil Chang
>
> _______________________________________________
> mesa-users at lists.mesastar.org
> https://lists.mesastar.org/mailman/listinfo/mesa-users
> <https://nam02.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.mesastar.org%2Fmailman%2Flistinfo%2Fmesa-users&data=04%7C01%7Cchang65%40uwm.edu%7C8c9c756e86ae49ce1c0208d9f3208436%7C0bca7ac3fcb64efd89eb6de97603cf21%7C0%7C0%7C637808144207856875%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=4NeiDgT6bxWkKk1CLaOZ0qXvr71KwuoSAE%2F%2Bnm78GJs%3D&reserved=0>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.mesastar.org/pipermail/mesa-users/attachments/20220218/4a9e5c3d/attachment.htm>
More information about the Mesa-users
mailing list