MESA Tutorial Day 2: Novae
Bill Wolf ASU → U of Wisconsin — Eau Claire
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
Bill Wolf ASU → U of Wisconsin — Eau Claire
Outline
want it
Outcomes
to overcome them)
” ”
Novae are thermonuclear flashes resulting from the accretion
What are Novae?
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 ∆MstableNovae Have Stability Regimes, Too
Stable H Burning
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_2019Part 1: Starting from a Test Case
Follow along with tutor ial at billwolf.spac e /proj e c ts/le ide n_2019Create 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)
Step 3: Confirm that it compiles $ ./mk
Follow along with tutor ial at billwolf.spac e /proj e c ts/le ide n_2019Edit 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_2019Edit 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
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_2019Edit 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_2019Replace inlists
Follow along with tutor ial at billwolf.spac e /proj e c ts/le ide n_2019Grab 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:
Part 2: Finding the Stability Boundary
Follow along with tutor ial at billwolf.spac e /proj e c ts/le ide n_2019Select 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
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_2019Part 3: Resolving the SSS Phase
Follow along with tutor ial at billwolf.spac e /proj e c ts/le ide n_2019Two 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_2019Catching the SSS Phase
As Ṁ→Ṁstable, we expect two things:
beginning of next flash decreases because ignition mass is obtained more quickly (and ignition mass decreased)
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_2019Sledgehammer 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
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:
110% of the photospheric luminosity
Follow along with tutor ial at billwolf.spac e /proj e c ts/le ide n_2019Compile 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.
Selective Timestep Control Solution
run_star_extras.f
Part 4: A New Wind Scheme
Follow along with tutor ial at billwolf.spac e /proj e c ts/le ide n_2019The 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_20191 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>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_2019log ˙ 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.01Trying 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
We want our wind to have the following behavior
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.
Trying Out the Nova Wind Scheme Solution
inlist_nova
Part 5: Controlling Accretion
Follow along with tutor ial at billwolf.spac e /proj e c ts/le ide n_2019Pausing 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_2019Run 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.
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!
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:
run_star_extras.f (look in star/other for template hooks)
extras_controls
“use_other_* = .true.” to the &controls namelist
Follow along with tutor ial at billwolf.spac e /proj e c ts/le ide n_2019Setting up other_adjust_mdot 1
Before we do anything fancy, lets implement a hook that does nothing but print a message
$MESA_DIR/star/other/other_adjust_mdot.f90 into your run_star_extras.f, right after the conclusion of the extras_controls subroutine
beginning and end of the subroutine!)
new subroutine
Follow along with tutor ial at billwolf.spac e /proj e c ts/le ide n_2019Setting up other_adjust_mdot 2
write(*,*) “Hello from other_adjust_mdot!” right before the end of your routine (so it does something)
namelist in inlist_nova
Minimal other_adjust_mdot setup
run_star_extras.f inlist_nova
Setting up the Star Info Structure
data and input parameters. We need to get access to it to do anything meaningful in our subroutine.
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_2019Pausing Accretion Before Mass Loss Redux
Challenge 9: Edit your custom subroutine to set s% mstar_dot = 0d0 if all the following conditions are met:
than nova_wind_max_Teff
Follow along with tutor ial at billwolf.spac e /proj e c ts/le ide n_2019Remember: 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.
Pausing Accretion Before Mass Loss Solution
Have We Done It?
Have We Done It? Things yet to consider…
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)