[mesa-users] restarting mesa binary and donor/accretor switching

Pablo Marchant pamarca at gmail.com
Thu Sep 17 15:57:19 EDT 2015


and also, the binary info is stored independently, there is a type for that

type (binary_info), pointer :: b

the pointer can be assigned using the binary_id integer which is part of
star_info

call binary_ptr(s% binary_id, b, ierr)

in a binary system modelling two stars, both have the same binary_id.
Orbital parameters are stored in this binary_info type, so you can access
things like b% separation. So the switch just requires swapping the
pointers to the stars, plus some indexes that are used to acces either
donor or accretor properties, so the few lines of code I sent before are
all you need to perform a swap.
Am 17.09.2015 10:43 nachm. schrieb "Pablo Marchant" <pamarca at gmail.com>:

> I don't see why it wouldnt work if you copy the relevant parts of the
> set_donor_star subroutine into extras_finish_step, with your own criteria
> to swap the donor.
>
> write(*,*) "switching donor"
>
> if (b% d_i == 2) then
>
> b% d_i = 1
>
> b% a_i = 2
>
> b% s_donor => b% s1
>
> b% s_accretor => b% s2
>
> else
>
> b% d_i = 2
>
> b% a_i = 1
>
> b% s_donor => b% s2
>
> b% s_accretor => b% s1
>
> end if
> Am 17.09.2015 10:37 nachm. schrieb "Sterl Phinney" <esp at tapir.caltech.edu
> >:
>
>> Dear Pablo,
>>         Thanks, indeed the saved models of course didn't have matching
>> model numbers.  I can rename the photos to match as you suggest to
>> restart.
>>         I've been using mdot_scheme = "Ritter" rather than "roche_lobe".
>> You are indeed right that the subroutine set_donor_star seems currently set
>> only to operate if mdot_scheme == "roche_lobe" (or "contact"). I can try to
>> see if I can continue the evolution for a few steps with roche_lobe and
>> then restart with "Ritter", but it would be great if the switch also worked
>> with the other more physical schemes.
>>         Is there some more elegant work-around to allow a former accretor
>> to become a donor than the above? I gather the binary's orbit data is
>> stored with star 1. Is this always assumed to be the donor?  And if so, is
>> there some way to swap stars 1 and 2 by hand as an alternative?
>>         Cheers, Sterl
>>
>> On Thu, 17 Sep 2015, Pablo Marchant wrote:
>>
>>
>>> Hi Sterl. MESAbinary effectively assumes the photos are synchronized, and
>>> actually overrides the photostep control of the stars so they have the
>>> same
>>> value. I have seen this behaviour when starting with saved models that
>>> dont
>>> have matching model numbers. This can be sorted out by fixing the initial
>>> model numbers at the beginning of the run. I guess something of this sort
>>> has to be your issue, as the model numbers are different at the end of
>>> your
>>> run.
>>>
>>> Right now I'm only with my smartphone so its a bit complicated to
>>> actually
>>> check your files. in ~2 weeks I could give them a good look. In the
>>> meantime
>>> you could just rename the photos to have the same number, and restart
>>> using
>>> that number.
>>>
>>> I think the donor switching was only setted up to work with the
>>> roche_lobe
>>> scheme for mass transfer (you can check it on the subroutine
>>> set_donor_star
>>> in binary_evolve, just ignore the stuff about "contact" which is
>>> something
>>> experimental I have in there). I did not experiment to much with these
>>> options, so right now I cant remember the reason for that limitation.
>>> But we
>>> can certainly adjust it for your needs.
>>>
>>> Cheers!
>>>
>>> Am 17.09.2015 6:50 nachm. schrieb "Sterl Phinney" <esp at tapir.caltech.edu
>>> >:
>>>       Dear Pablo, Bill et al,
>>>               Following on from my MESA summer school lectures, I have
>>>       been experimenting with further with MESA binary and
>>>       evolve_both_stars = .true.
>>>               I am using mesa-7624 (current release). The inlists and
>>>       input saved models in the attached Algol.zip file sort-of
>>>       succesfully make Algol (the final exercise of my Lecture 2).
>>>       But I decided to run the evolution further, and have encountered
>>>       two mysteries.
>>>
>>>       1. The model numbers in photos1/ and photos2/ are not
>>>       synchronized,
>>>       while restarts seem to assume that they are, and thus don't work
>>>       properly.
>>>       Details of mystery 1:
>>>        During a run, log output and timestamps confirm that
>>>       photos1/x750
>>>       photos2/x700
>>>       are a pair associated with a single evolutionary time,
>>>       and the run terminates also writing unequal photo numbers for
>>>       star
>>>       1 and star 2:
>>>       ---
>>>       save LOGS1/profile20.data for model 1790
>>>       save photos1/x790 for model 1790
>>>       save LOGS2/profile23.data for model 1743
>>>       save photos2/x743 for model 1743
>>>       termination code: Terminate because accretor (r-rl)/rl >
>>>       accretor_overflow_terminate
>>>       ---
>>>
>>>       But when I restart, there are weird jumps in the star mass
>>>       suggesting
>>>       that non-matched photos are being used to restart star 1 and
>>>       star 2.
>>>       Looking into run_binary_support.f90
>>>       I see lines
>>>              doing_restart = (ierr == 0)
>>>              if (doing_restart) then
>>>                  read(iounit,'(a)', iostat=ierr) photo_filename ! same
>>>       for both stars
>>>
>>>       which suggests to me that MESA is in fact assuming the right
>>>       thing to do is to use the same photo for both stars, and I don't
>>>       see a way to input
>>>       the correct, non-matching photonumbers for the two stars.  What
>>>       am I
>>>       missing here?
>>>
>>>       2. When MESA terminates the evolution of Algol (see final log
>>>       output in mystery 1 above: "Terminate because accretor (r-rl)/rl
>>>       > accretor_overflow_terminate"), star 1 (the first donor, and
>>>       initially more massive star) has become a hot white dwarf,
>>>       accretion has long ago ceased, and star 2 has just filled its
>>>       Roche lobe for the first time and ought to become the new donor
>>>       to star 1.
>>>
>>>       In my inlist, I set
>>>       keep_donor_fixed = .false.
>>>       which I'd thought would allow the former accretor (star 2) to be
>>>       relabelled as the donor, and permit evolution to continue with
>>>       accretion from star 2 onto star 1.
>>>       But since the termination code is stopping with
>>>       "Terminate because accretor (r-rl)/rl >
>>>       accretor_overflow_terminate"
>>>       clearly that relabelling isn't happening.
>>>
>>>       I see that I could also set "accretor_overflow_terminate" =
>>>       [something >0]
>>>       which might allow evolution to continue, but this isn't a case
>>>       of both stars filling their Roche lobes, but of a desired switch
>>>       of
>>>       accretor to a donor. How do I make that happen?
>>>       (I'd experiment more myself if I didn't have to run for an hour
>>>       to get to this stage: see mystery 1!).
>>>
>>>       Thanks, Sterl
>>>
>>>       --
>>>       E. Sterl Phinney
>>>       Professor of Theoretical Astrophysics &
>>>       Executive Officer for Astronomy and Astrophysics
>>>       California Institute of Technology, 350-17
>>>       Pasadena CA 91125 USA
>>>
>>>       [on sabbatical until 18 March 2016 as
>>>        Radboud Excellence Initiative Professor
>>>        Department of Astrophysics
>>>        Radboud University
>>>        P.O. Box 9010,
>>>        6500 GL Nijmegen, The Netherlands]
>>>
>>>
>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.mesastar.org/pipermail/mesa-users/attachments/20150917/e5d94aad/attachment.html>


More information about the Mesa-users mailing list