[Mesa-users] Failure of getting the effective temperature in run_binary_extras

M Sun sunmeng1118 at gmail.com
Tue Mar 16 00:11:06 UTC 2021


Hi Rob,

Thank you for the answer! Now I can get the surface temperature correctly
by -- exp(s% xh(s% i_lnT,1)). I didn't realize the answer is in the star
directory instead of the binary directory. This is a great help!

cheers,
Meng

On Mon, Mar 15, 2021 at 7:57 AM Rob Farmer <r.j.farmer at uva.nl> wrote:

> Hi,
> So the problem is that mass transfer must be computed at the very start of
> a step, before most of the data arrays have been set for the new step. See
> for instance the notes in star/other/other_wind.f90 which has the same
> problem:
>
> ! NOTE: don't assume that vars are set at this point.
>          ! so if you want values other than those given as args,
>          ! you should use values from s% xh(:,:) and s% xa(:,:) only.
>          ! rather than things like s% Teff or s% lnT(:) which have not
> been set yet.
>
> So in your case you should access the temperature and other surface
> properties using the s% xh array with contains the structure variables
> while s%xa contains the abundances:
>
> So for the (natural log) surface temperature that is s% xh(i_lnT,1)
>
> With 12115 look in star/public/star_data.inc for the different i_*
> variables which define the quantities available in s% xh.
>
> If you really the need the photosphere and not just zone 1, then look at
> how mesa computes the photosphere information in get_phot_info in
> star/private/star_utils.f90.
>
> Rob
>
>
> On Sun, 14 Mar 2021 at 01:35, M Sun via Mesa-users <
> mesa-users at lists.mesastar.org> wrote:
>
>> Dear MESA users,
>>
>> I am trying to add a wind mass accretion mechanism in MESA 12115. I
>> failed to get the effective temperature of the donor star in the subroutine
>> my_other_binary_wind_transfer from src/run_binary_extras.f. I guess that I
>> misuse/misunderstand the pointers. Here is the detail ---
>>
>> The declaration and association of the star and binary pointers are:
>> subroutine my_other_binary_wind_transfer(binary_id, s_i, ierr)
>>       implicit none
>>       integer, intent(in) :: binary_id, s_i ! s_i is index of the wind
>> mass losing star
>>       integer, intent(out) :: ierr
>>       type (binary_info), pointer :: b
>>       type (star_info), pointer :: s
>>       ierr = 0
>>       call binary_ptr(binary_id, b, ierr)
>>       if (ierr /= 0) then
>>          write(*,*) 'failed in binary_ptr'
>>          return
>>       end if
>>
>>       if (s_i == 1) then
>>          s => b% s1
>>       else
>>          s => b% s2
>>       end if
>>       print*, b% s1% T(1)
>>
>> I call the effective temperature by "b% s1% T(1)". The output looks good
>> at the very first step, then it becomes "NaN" at the following steps.
>>
>> I realize T(1) is surface temperature, not the effective temperature,
>> just use it as an example of calling the star information from the binary
>> module. The run_binary_extras.f and the binary inlist are attached
>> (starting at line 99 in run_binary_extras is my code). Please let me know
>> if you need more information. Many thanks!!
>>
>> cheers,
>> --------------
>> Sun, Meng
>> Research Associate
>> Department of Astronomy
>> University of Wisconsin - Madison
>> https://sunmeng1118.wixsite.com/mysite
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.mesastar.org/pipermail/mesa-users/attachments/20210315/3143e17e/attachment.htm>


More information about the Mesa-users mailing list