MESA Tutorial Day 2: Novae Bill Wolf ASU U of Wisconsin Eau Claire - - PowerPoint PPT Presentation

mesa tutorial day 2 novae
SMART_READER_LITE
LIVE PREVIEW

MESA Tutorial Day 2: Novae Bill Wolf ASU U of Wisconsin Eau Claire - - PowerPoint PPT Presentation

MESA Tutorial Day 2: Novae Bill Wolf ASU U of Wisconsin Eau Claire Outline Outcomes Background Greater familiarity with MESA Modeling a simple nova Learn capabili6es for novae Adding 6me resolu6on when


slide-1
SLIDE 1

MESA Tutorial Day 2: Novae

Bill Wolf ASU → U of Wisconsin — Eau Claire

slide-2
SLIDE 2

Outline

  • Background

  • Modeling a simple nova

  • Adding 6me resolu6on when we

want it


  • Changing mass loss prescrip6ons

  • Adding your own physics

Outcomes

  • Greater familiarity with MESA

  • Learn capabili6es for novae

  • Gain awareness of pi@alls (and how

to overcome them)


  • Basic customiza6on of code

  • Adding your own physics to MESA
slide-3
SLIDE 3

” ”

Novae are thermonuclear flashes resulting from the accretion

  • f hydrogen-rich material
  • nto a white dwarf.

What are Novae?

  • Classical vs Recurrent
  • Not Dwarf Novae
  • Environments
  • Cataclysmic Variables
  • Symbio6c Stars
slide-4
SLIDE 4

A Typical Nova Cycle

102 101 100 101 102 103 104 105 Luminosity [L] 10 days 46000 years 12 years 260 days MWD = 1.0 M ˙ M = 109 M yr1 Accretion Runaway Mass Loss SSS 104 105 106 Effective Temperature [K] 106 105 104 H Envelope Mass [M] ∆Mign ∆Mcrit ∆Mstable
slide-5
SLIDE 5

Novae Have Stability Regimes, Too

Stable H Burning

slide-6
SLIDE 6

Goal: Determine Ṁ for Stable Burning on a 1.3 M⊙ White Dwarf

Follow along with tutor ial at billwolf.spac e /proj e c ts/le ide n_2019
slide-7
SLIDE 7

Part 1: Starting from a Test Case

Follow along with tutor ial at billwolf.spac e /proj e c ts/le ide n_2019
slide-8
SLIDE 8

Create Work Directory

$ cp -r $MESA_DIR/star/test_suite/nova nova_tutorial $ cd nova_tutorial Step 1: Copy the starting work directory and cd into it Step 2: Fix makefile (or else it ignores your MESA_DIR)

  • Open make/makefile
  • Delete or comment out the line that sets MESA_DIR



 Step 3: Confirm that it compiles $ ./mk

Follow along with tutor ial at billwolf.spac e /proj e c ts/le ide n_2019
slide-9
SLIDE 9

Edit Stopping Condition 1

Open src/run_star_extras.f Notice near the top: And later, the subroutine extras_check_model

Follow along with tutor ial at billwolf.spac e /proj e c ts/le ide n_2019
slide-10
SLIDE 10

Edit Stopping Condition 2

Challenge 1: Edit extras_check_model to stop after two bursts instead of one. Challenge 2: Edit extras_check_model to define the end of a burst as when luminosity drops below 5 ⨉ 103 L⊙ (instead of 1 ⨉ 103 L⊙) We want to get the time between two bursts, so this stopping condition

  • ccurs too quickly.

We’re going to accrete matter so rapidly that after a burst, the luminosity may not ever go below 103 L⊙ (so the condition would never be met) Confirm your solution compiles with ./mk

Follow along with tutor ial at billwolf.spac e /proj e c ts/le ide n_2019
slide-11
SLIDE 11

Edit Stopping Condition Solutions

Challenge 1: Edit extras_check_model to stop after two bursts instead of one. Challenge 2: Edit extras_check_model to define the end of a burst as when luminosity drops below 5 ⨉ 103 L⊙ (instead of 1 ⨉ 103 L⊙)

Follow along with tutor ial at billwolf.spac e /proj e c ts/le ide n_2019
slide-12
SLIDE 12

Replace inlists

Follow along with tutor ial at billwolf.spac e /proj e c ts/le ide n_2019

Grab tarball from tutorial website: billwolf.space/projects/leiden_2019/#part3b Navigate to the “Download Files” button, click it, and extract it in your work directory. Replaces/adds:

  • inlist: now points to inlist_pgstar for plots
  • inlist_nova: streamlined, faster (and wronger)
  • inlist_pgstar: custom dashboard; saves pngs every timestep
  • history_columns.list: additional data for pgstar dashboard
slide-13
SLIDE 13

Part 2: Finding the Stability Boundary

Follow along with tutor ial at billwolf.spac e /proj e c ts/le ide n_2019
slide-14
SLIDE 14

Select an Accretion Rate

Challenge 3: Edit inlist_nova to accrete at this new rate. Challenge 4: Run your model ./rn and determine if it is stable (one flash and then constant luminosity) or unstable (two full flashes). If unstable, determine

  • recurrence time (time between runaways)
  • duration of SSS phase (from minimum in Teff to end of last flash)

Report values on google sheet (see tutorial website for link)

Pick a random accretion rate between 3.1 ⨉10-7 M⊙ and 3.7 ⨉10-7 M⊙

Follow along with tutor ial at billwolf.spac e /proj e c ts/le ide n_2019
slide-15
SLIDE 15
slide-16
SLIDE 16
slide-17
SLIDE 17
slide-18
SLIDE 18

Part 3: Resolving the SSS Phase

Follow along with tutor ial at billwolf.spac e /proj e c ts/le ide n_2019
slide-19
SLIDE 19

Two Ways to Control Timesteps

varcontrol_target Sets the desired value of an unweighted average of the change in logarithms of many basic variables (density, temperature, velocity, mass fractions, etc.). Smaller → shorter time steps *_limit & *_hard_limit Sets desired limits on changes in specific quantities. Regular limit adjusts next timestep if limit is exceeded. Hard limits will require a retry (redo this timestep with a shorter timestep) if exceeded.

Follow along with tutor ial at billwolf.spac e /proj e c ts/le ide n_2019
slide-20
SLIDE 20

Catching the SSS Phase

As Ṁ→Ṁstable, we expect two things:

  • 1. Time between end of a flash to

beginning of next flash decreases because ignition mass is obtained more quickly (and ignition mass decreased)

  • 2. Supersoft duration (tSSS) increases

because accretion replenishes fuel at nearly the rate it is burned away At the absolute limit, the recurrence time should increase as the supersoft
 begins to dominate the cycle lifetime, but we don’t see this… maybe we need
 better time resolution of the SSS phase!

Follow along with tutor ial at billwolf.spac e /proj e c ts/le ide n_2019
slide-21
SLIDE 21

Sledgehammer or Scalpel?

Reducing varcontrol_target? Too broad, and will slow everything. Just care about motion through HR diagram during supersoft source (SSS) phase delta_HR_limit delta_HR_hard_limit Limit how much changes in one timestep, but we

  • nly want this during the SSS phase.
q [log(L/L)]2 + [log(Teff/K)]2 <latexit sha1_base64="8PklifW7Ql3pnwOtPTqNq6jEik=">ACQnicdVBNb9NAFy3UEL6FeDIZdWoUiqk1A6IkltEL0jNIZWatig21nrz7Ky9rq7z0iR5d/WC7+AW38AFw5UiCsHNmq8lFGWml25o327US5FAZd98pZWX3wcO1R7XF9fWNza7vx5OmpUYXmMORKn0eMQNSZDBEgRLOcw0sjScRdPDuX/2EbQRKjvBWQ5BypJMxIztFLYeO+bC42lLyHGkS9VQlv9/X7oq7HCPV+LZILBhw59Qe8mWidh6acMJzotIY6rav/2dlTdRaqw0XTbXdfrvbov8Rruws0yRKDsPHZHytepJAhl8yYkefmGJRMo+ASqrpfGMgZn7IERpZmLAUTlIsKrprlTGNlbYnQ7pQf0+ULDVmlkZ2cr6s+dubi/d5owLjN0EpsrxAyPjNQ3EhKSo675OhQaOcmYJ41rYXSmfM042tbrtoTbn9L/k9NO23vZ7hy/avbeLuokedkh7SIRw5Ij7wjAzIknFySL+QbuXY+OV+d786Pm9EVZ5l5Rv6A8/MXNbix2A=</latexit> Follow along with tutor ial at billwolf.spac e /proj e c ts/le ide n_2019
slide-22
SLIDE 22

Selective Timestep Control

Challenge 5: Edit extras_check_model to adjust the values of the delta_HR_limit and delta_HR_hard_limit to 5e-3 and 1e-2, respectively during the SSS phase, and to -1 otherwise. Let’s define the situation where we want tighter timestep controls to be when all of the following are true simultaneously:

  • the luminosity exceeds Lburst (104 L⊙)
  • the effective temperature exceeds 8 ⨉ 105 K,
  • and when the total energy generated by hydrogen burning is less than

110% of the photospheric luminosity

Follow along with tutor ial at billwolf.spac e /proj e c ts/le ide n_2019

Compile and run your solution, reporting if it is stable or not, as well as the recurrence time and SSS duration to the second tab of the Google sheet.

slide-23
SLIDE 23

Selective Timestep Control Solution

run_star_extras.f

slide-24
SLIDE 24

Part 4: A New Wind Scheme

Follow along with tutor ial at billwolf.spac e /proj e c ts/le ide n_2019
slide-25
SLIDE 25

The Super Eddington Wind Scheme

In our current model, mass loss is determined by the following equation:
 
 
 
 Essentially, the “extra” energy in excess of the Eddington luminosity drives a mass flux traveling at the escape velocity. While physically motivated, this prevents novae from expanding much (contrary to observations), and it is quite sensitive to our choice of boundary condition. Are our results sensitive to the mass loss mechanism?

Follow along with tutor ial at billwolf.spac e /proj e c ts/le ide n_2019

1 2 ˙ Mv2

esc = L − LEdd

<latexit sha1_base64="+zwdQlC+DYFryTyOrPA83mDK6Q=">ACJHicdVDJSgNBEO2JW4xb1KOXxiB4McxEcUEUQPChHMAkMPT09SWPQndPIDT9MV78FS8eXPDgxW+xJ4m4Pyh4vFdFVT03ZlRI2361MmPjE5NT2enczOzc/EJ+cakqoRjUsERi3jdRYIwGpKpJKReswJClxGau71cerXeoQLGoWXsh+TVoA6IfUpRtJI7fx+0+cIK0erkm56kVTnutdWzQDJLg8UEVjrqxI8gGdwA59Giep3U7X7CLe7azt+3A38Qp2gMUwAjldv7JrMBJQEKJGRKi4dixbCnEJcWM6FwzESRG+Bp1SMPQEAVEtNTgSQ3XjOJBP+KmQgkH6tcJhQIh+oFrOtMjxU8vFf/yGon0d1uKhnEiSYiHi/yEQRnBNDHoU6wZH1DEObU3ApxF5nUpMk1Z0L4+BT+T6qlorNZLF1sFQ6PRnFkwQpYBevATvgEJyCMqgADG7AHXgAj9atdW89Wy/D1ow1mlkG32C9vQMbaqW2</latexit>
slide-26
SLIDE 26

Optically Thick Wind Scheme of Kato & Hachisu

Kato & Hachisu (1994) developed an optically thick wind scheme that roughly follows 
 
 
 where b is a parameter that varies with mass. MESA implements this as the “nova” wind scheme. Search for nova_wind in $MESA_DIR/star/ defaults/controls.defaults or http:// mesa.sourceforge.net/controls_defaults.html

Follow along with tutor ial at billwolf.spac e /proj e c ts/le ide n_2019

log ˙ M g/s ! = −1.49 log ✓ Teff 105 K ◆ + b

<latexit sha1_base64="NEI28b2eQaIp7X+fResKq1elFcQ=">ACXHicdVFbSxtBFJ7deomJl9iCL30ZDEJEXe9tM1DQdoXQFE4VsDLOTs5vB2QszZwth2T/ZN1/8K+0kJt5aDwx8fOd8Z75Jsik0Oi695b9YW5+YbGyVK0tr6yu1dc/dnSaKw5tnspU3QRMgxQJtFGghJtMAYsDCdfB3c9x/oXKC3S5ApHGfRiFiUiFJyhofp17cs08iWE2PRDxXjhD1Iszsuy8GOGQxUX0b4uS1+JaIjb9Dvd85yj1lvRVf9pHMKwNGrPvT32d2fk2fOGHRr06w3Xable64tH/wWe406qQaZ10a/Nq54HkOCXDKtu56bYa9gCgWXUFb9XEPG+B2LoGtgwmLQvWISTkm3DOgYarMSZBO2JeKgsVaj+LATI7d6re9Mfm/XjfH8FuvEmWIyT8aIwlxRTOk6aDoQCjnJkAONKGK+UD5mJC81/VE0Is5fS90HnwPEOnYPLo8bJj2kcFfKZbJIm8chXckJOyQVpE07uyR+rYi1ZD/acXbNXHkdta6r5RF6VvfEXMYi2nw=</latexit> Mass [M⊙] b 1.33 20.78 1.20 20.72 1.10 20.67 1.00 20.62 0.90 20.55 0.80 20.49 0.70 20.38 0.60 20.24 0.50 20.01
slide-27
SLIDE 27

Trying Out the Nova Wind Scheme

Challenge 6: Edit inlist_nova to deactivate the super Eddington wind and activate the nova wind as described above. There’s

  • ne “nova_” control that you can and should ignore for now.

We want our wind to have the following behavior

  • Only on when the luminosity exceeds 104 L⊙
  • Only on when the effective temperature is below 3 ⨉ 105 K
  • Has a b value appropriate for the mass (1.30 M⊙)
  • If the radius exceeds 100 R⊙, Ṁ should cut to 10-3 M⊙/yr
Follow along with tutor ial at billwolf.spac e /proj e c ts/le ide n_2019

Run your solution, reporting if it is stable or not, as well as the recurrence time and SSS duration to the third tab of the Google sheet.

slide-28
SLIDE 28

Trying Out the Nova Wind Scheme Solution

inlist_nova

slide-29
SLIDE 29

Part 5: Controlling Accretion

Follow along with tutor ial at billwolf.spac e /proj e c ts/le ide n_2019
slide-30
SLIDE 30

Pausing Accretion Before Mass Loss

Challenge 7: Use the last “nova” control to prevent accretion once Teff < 6 ⨉ 105 K to allow a buffer between mass gain and mass loss.

Follow along with tutor ial at billwolf.spac e /proj e c ts/le ide n_2019

Run your solution, and watch the Ṁ history to confirm it is working. Uh oh! Something isn’t working! Let’s find out where this is implemented in the source code. Challenge 8: Use grep (or another text searching tool) to search for “nova_min_Teff_for_accretion” in all files in $MESA_DIR/ star/private. See if you can understand why this isn’t working.

slide-31
SLIDE 31

Pausing Accretion Before Mass Loss Solution

$MESA_DIR/star/private/winds.f90 Just deal with reading in the controls from the namelist We’ll have to finish the implementation on our own!

slide-32
SLIDE 32

Setting Up an “other” Hook

MESA allows you to inject your own code into your simulation. It does this by supplying “hooks” into the code at various stages. You use them by doing the following:


  • Writing a subroutine with a prescribed interface in

run_star_extras.f (look in star/other for template hooks)


  • Pointing the other_* hook to your subroutine in

extras_controls


  • Turning on the hook in your inlist by adding 


“use_other_* = .true.”
 to the &controls namelist

Follow along with tutor ial at billwolf.spac e /proj e c ts/le ide n_2019
slide-33
SLIDE 33

Setting up other_adjust_mdot 1

Before we do anything fancy, lets implement a hook that does nothing but print a message

  • Copy the subroutine null_other_adjust_mdot from

$MESA_DIR/star/other/other_adjust_mdot.f90 into your run_star_extras.f, right after the conclusion of the extras_controls subroutine


  • Rename this to something more descriptive (be sure to fix name at

beginning and end of the subroutine!)


  • In extras_controls, point s% other_adjust_mdot to your

new subroutine

Follow along with tutor ial at billwolf.spac e /proj e c ts/le ide n_2019
slide-34
SLIDE 34

Setting up other_adjust_mdot 2

  • Add the line


write(*,*) “Hello from other_adjust_mdot!”
 right before the end of your routine (so it does something)


  • Recompile to make sure there are no syntax errors (./mk)

  • Add use_other_adjust_mdot = .true. to the controls

namelist in inlist_nova


  • Run to see if your message is printed each timestep
Follow along with tutor ial at billwolf.spac e /proj e c ts/le ide n_2019
slide-35
SLIDE 35

Minimal other_adjust_mdot setup

run_star_extras.f inlist_nova

slide-36
SLIDE 36

Setting up the Star Info Structure

  • The star info structure is the entity that holds all of our model’s

data and input parameters. We need to get access to it to do anything meaningful in our subroutine.


  • Our case: initialize the star info structure by adding


type (star_info), pointer :: s
 before the ierr = 0 line, and after it, add
 call star_ptr(id, s, ierr)
 if (ierr /= 0) return
 which actually populates the structure with data and bails out if something goes wrong

Follow along with tutor ial at billwolf.spac e /proj e c ts/le ide n_2019
slide-37
SLIDE 37

Pausing Accretion Before Mass Loss Redux

Challenge 9: Edit your custom subroutine to set s% mstar_dot = 0d0 if all the following conditions are met:

  • nova_scaling_factor > 0 (don’t run unless doing nova wind)
  • Luminosity is above nova_wind_min_L
  • Teff is less than nova_min_Teff_for_accretion and greater

than nova_wind_max_Teff

Follow along with tutor ial at billwolf.spac e /proj e c ts/le ide n_2019

Remember: star info structure (s) gives you access to all inlist controls and all data in $MESA_DIR/star/public/star_data.def Run your solution, and watch the Ṁ history to confirm it is working. If it is, report the usual data to the Google sheet, using the fourth tab.

slide-38
SLIDE 38

Pausing Accretion Before Mass Loss Solution

slide-39
SLIDE 39
slide-40
SLIDE 40

Have We Done It?

SORT OF

slide-41
SLIDE 41

Have We Done It? Things yet to consider…

  • Spatial resolution
  • Time resolution outside of SSS
  • Outer boundary condition
  • Nuclear network
  • Mixing (diffusion? overshoot? rotational mixing?)
  • Oh yeah, rotation!
  • Time-dependent convection
  • Better energy conservation with tighter tolerances
  • Intermittent accretion from disk instability
  • Effects of companion on mass loss

These might not all be relevant to the question YOU are trying to answer, but you should at least consider them all. (A convergence study is ALWAYS relevant)