Update 11/16
Pathways Proposal
Deadline was extended to this Friday (I get the impression that they feel Frontera is underutilized so far), so taking the opportunity for a few quick questions:
Fields:
120 - Astronomical Sciences (Primary) 510 - Atmospheric Sciences (Secondary) 130 - Physics (Secondary) 122 - Planetary Astronomy (Secondary)
Jonathan: University Research Staff or Faculty?
Grants: So far I've included the DoE grant, but it's MHD-focused, so maybe just barely fits the criteria: "Is the proposed work supported by a grant or grants that have undergone review for intellectual merit and/or broader impact (if relevant to the allocation)? If so, is the allocation request consistent with the objectives of the supporting grants and is the scale of resource use commensurate with the level and purpose of support?" and "the stated scientific objectives must match or be sub-goals of those described in the listed funding award(s)". Could perhaps describe as a sub-goal. Don't think we can include the NSF grant at all, based on this.
Charge exchange
Three more frames with startup allocation, but only have 103 node-hours left, so definitely can't get any more frames with it. May try to do some profiling if I have time. Here's the current state:
Update 11/9
Note of fun - the simulation is surprisingly robust to a large empty cube suddenly appearing in the center of the planet.
Frontera Proposal
Strong scaling test is done for 8-128 nodes. It looks like the proposal should be a single document, so I've combined the scaling document and the previous supplement main document. Still needs a little work, but I'll try to send it around by end of day for review.
One sticking point: the steady-state run is about 12 times faster than the current state of the simulation. How to best request the appropriate number of hours? Pathways allocations are meant to help with scaling up to make better use of Frontera (see description below) - perhaps frame single run as test case for larger request that combines both charge exchange and radiation pressure (and B fields?)? And possibly profiling time? Would still like to see if the line transfer can be improved.
Pathways
Experience suggests that not all user teams can seamlessly make the transition from more general-use resources, such as Stampede2, to a system that emphasizes larger scale computing. It is here that latent scaling bugs (such as race conditions, hard-coded array bounds, and so on) are often encountered for the first time. The “Pathways” allocations track is for projects that believe they are ready to begin scaling up, but have not yet fully tested their applications at scale. Less stringent scaling data will need to be provided to receive a pathways allocation, and the total award size will be smaller, with a focus on preparing to reach the LRAC scale.
Here's the statement of requirements, for reference:
Proposal Format
LRAC, Pathways, and LSCP Submissions Requests
When writing your LRAC request, be clear and concise. We strive to have domain experts review every request, but they may not have deep expertise in your specific subdomain. Someone outside of your area should be able to understand the scientific objectives and understand why the chosen technique is preferred over another.
Renewal requests require less documentation, as described later (jump link to section).
The documents required of a new LRAC request ensures reviewers can effectively determine how each request satisfies the Frontera allocation Review Criteria. LRAC requests are limited to 10 pages.
Research requests must include a well-documented resource-use plan that describes how the requested allocations are necessary and sufficient to accomplish the project’s research objectives. An effective resource-use plan must address the Frontera allocation Review Criteria and, in particular, must include the following elements:
Scientific Background Research Objectives and specific questions to be pursued Resource Usage Plan to achieve the research objectives Justification of the allocation amounts for all resources and resource types Access to other CI resources and why those resources are not available or sufficient for the work proposed in this request
Scientific Background and Support
Succinctly state the scientific objectives that will be facilitated by the allocation. The existing merit-reviewed supporting grants should be listed and briefly described; please include the end date for each grant listed. Requests with merit-reviewed supporting grants will not be subject to further scientific review by the LRAC; however, the stated scientific objectives must match or be sub-goals of those described in the listed funding award(s). The description of the objectives should be sufficient to allow the reviewers to assess the resource usage plan.
Research Questions
Identify the specific research questions that are covered by the allocation request. Within the context of the scientific background and supporting grants, these objectives and questions should be stated so that the reviewers can understand how elements of the resource plan will contribute to relevant answers. If you consider the allocation request in terms of computational experiments, the research objectives and questions define the experiments to be conducted.
Resource Usage Plan
The bulk of the document should focus on the resource usage plan and allocation request. Inadequate justification for requested resources is the primary reason for most reduced or denied allocations. Once again, the PI should keep in mind the Frontera allocation Review Criteria when describing and justifying the choice of resources and allocation amounts.
Justifying Allocation Amounts
This section should contain code performance timings, resource usage details, and scaling information to support the calculation of the resource request. Ideally, the code performance data should be provided from benchmark runs on the resource requested, using the model configuration(s) needed for the computational plan proposed and demonstrating the scaling efficiency to the job size(s) planned. If applicable, the panel may accept well-justified performance data from architecturally equivalent systems. PI’s should contact the Frontera Allocations Coordinator to obtain a small allocation for benchmarking or to discuss non-Frontera performance data to be used in their submission.
The justification of allocation should take the quantitative parameters from the resource usage plan and combine them with benchmark cost information to calculate the allocation needed. Where possible for computational experiments, the justification should tabulate and calculate the costs of conducting each experiment for each resource and resource type.
Disclosure of Access to Other Compute Resources
Because of the high demand for NSF-funded resources, Frontera and the LRAC closely consider whether the PI has access to other, less constrained resources on which the proposed work could be conducted. All PIs must describe their local resources and other non-Frontera resources available to them, including both local and other national resources.
Page limit: 10 pages
References
[Note: probably unnecessary]
A PI may use this OPTIONAL document to separate a lengthy bibliography of cited work to take full advantage of the page limits in the Main Document. This bibliography is not the publications resulting from prior Frontera support, which should be entered into the Frontera publications database, but rather other citations referenced in describing or supporting the intellectual merit of the proposed work or the appropriateness of the proposed approach for addressing the research objectives.
Page limit: No limit.
Document Formatting
While readability is of greatest importance, documents must satisfy the following minimum requirements. Documents that conform to NSF proposal format guidelines will satisfy these guidelines.
Margins: Documents must have 2.5-cm (1-inch) margins at the top, bottom, and sides. Fonts and Spacing: The type size used throughout the documents must conform to the following three requirements:
Use one of the following typefaces identified below:
Arial 11, Courier New, or Palatino Linotype at a font size of 10 points or larger; Times New Roman at a font size of 11 points or larger; or Computer Modern family of fonts at a font size of 11 points or larger.
A font size of less than 10 points may be used for mathematical formulas or equations, figures, table or diagram captions and when using a Symbol font to insert Greek letters or special characters. PIs are cautioned, however, that the text must still be readable.
Page Numbering: Page numbers should be included by the submitter.
Update 10/26
Frontera
Have the planet problem compiling, but running into runtime errors that appear to be related to the new Intel Fortran runtime library version. Specifically,
forrtl: severe (257): formatted I/O to unit open for unformatted transfers, unit 76, file /work/05515/adebrech/frontera/ChargeExchange_high/global.data Image PC Routine Line Source libHYPRE-2.18.2.s 00002B3589B43B86 for__io_return Unknown Unknown astrobear 00000000019B4FBE Unknown Unknown Unknown astrobear 00000000019704BE amrcontrol_mp_rea 218 amr_control.cpp.f90 astrobear 0000000001960424 amrcontrol_mp_amr 72 amr_control.cpp.f90 astrobear 00000000019837E8 scrambler_IP_astr 63 scrambler.cpp.f90 astrobear 00000000019835A6 MAIN__ 51 scrambler.cpp.f90 astrobear 000000000040E592 Unknown Unknown Unknown libc-2.17.so 00002B358BF26555 __libc_start_main Unknown Unknown astrobear 000000000040E4A9 Unknown Unknown Unknown
Relevant code:
! Open data file (quit if not successful). OPEN(UNIT=GLOBAL_DATA_HANDLE,FILE=GLOBAL_DATA_FILE,FORM='formatted') ! I added the FORM specifier to see if that would fix it ! Read in global data values. READ(GLOBAL_DATA_HANDLE,NML=GlobalData)
Haven't gotten past this one yet, but I suspect something similar will happen with future read attempts.
When I attempt to INQUIRE about GLOBAL_DATA_HANDLE I get an even stranger message:
inquire(UNIT=GLOBAL_DATA_HANDLE, access=acc, name=filename, form=formatType, exist=exists)
forrtl: severe (257): formatted I/O to unit open for unformatted transfers, unit -1, file /proc/265613/fd/1 Image PC Routine Line Source libHYPRE-2.18.2.s 00002B69A5BBBB86 for__io_return Unknown Unknown astrobear 00000000019C6A58 Unknown Unknown Unknown astrobear 000000000196FF02 amrcontrol_mp_rea 219 amr_control.cpp.f90 astrobear 0000000001960424 amrcontrol_mp_amr 72 amr_control.cpp.f90 astrobear 0000000001983AD0 scrambler_IP_astr 63 scrambler.cpp.f90 astrobear 000000000198388E MAIN__ 51 scrambler.cpp.f90 astrobear 000000000040E592 Unknown Unknown Unknown libc-2.17.so 00002B69A7F9E555 __libc_start_main Unknown Unknown astrobear 000000000040E4A9 Unknown Unknown Unknown
More investigation leads me to conclude that there's something wrong with I/O in general. I've tried re-chowning and re-chmoding all of the .data files, but no change.
print *, 'open status is ', iErr
forrtl: severe (257): formatted I/O to unit open for unformatted transfers, unit -1, file /proc/271281/fd/1 Image PC Routine Line Source libHYPRE-2.18.2.s 00002AD3EA073B86 for__io_return Unknown Unknown astrobear 00000000019C6828 Unknown Unknown Unknown astrobear 000000000196FE81 amrcontrol_mp_rea 218 amr_control.cpp.f90 astrobear 0000000001960424 amrcontrol_mp_amr 72 amr_control.cpp.f90 astrobear 00000000019838A4 scrambler_IP_astr 63 scrambler.cpp.f90 astrobear 0000000001983662 MAIN__ 51 scrambler.cpp.f90 astrobear 000000000040E592 Unknown Unknown Unknown libc-2.17.so 00002AD3EC456555 __libc_start_main Unknown Unknown astrobear 000000000040E4A9 Unknown Unknown Unknown
If no one else has thoughts, I'll shoot TACC support another message.
Update 10/19
Charge Exchange
Used up the allocated 20% on Stampede2. Gotten 27 frames so far; don't think we're at steady state, but haven't been able to check yet. Have 5000 SUs on Frontera now to get to somewhere around 35-40, hopefully.
Update 10/12
Upcoming Conferences
Exoplanet Demographics, free?, 11/9-12
AAS 237, $150, 1/11-15
Numerical Modeling in MHD + Plasma, $100, now
Charge Exchange
4 more frames. Second most recent frame:
MHD
line_transfer branch is up to date for both the PlanetaryOutflow (radiation-driven) and OutflowWind (Parker-ish wind) modules, though not everything implemented in the first is implemented in the second (various non-radiation rampings and field-related things).
To-Do
- Test B field in OutflowWind with no planet
- Implement and test embedded line transfer
- Implement and test planet import
Misc
- Metastable HeII line
- Profile line transfer on stampede
- GJ 436b
Need more computing time for those last two
Update 8/31
Charge Exchange
Here's a movie of the frames so far. Few more frames still until it hopefully speeds up and we can throw more cores at it.
MHD
Tried a run with the planet with outflow-only hydro boundaries and extrapolating B field. No dice. So many pressure protections that I had to delete the log.
Think this is confirmation that we need to change tack to getting spherical line transfer up and running so we can use global simulations (or one of the other global simulation methods we've discussed). This will require some discussion.
Job search
Making some good progress. Created a short resume - may need a little bit more modification, depending on the job. Need to get around to writing a cover letter for at least one application, so I have somewhere to start.
Also got a template for thesis from Erica. How does this outline look?
Update 8/17
Charge Exchange
Shock still working its way across the grid. 5(?) frames until we should hopefully get some speedup.
MHD tests
Extrapolating runs work well. Here's a comparison of the strong and weak cases of the corotating with stellar gravity runs:
Strong
Weak
Also tried adding magnetic field to outflow-only boundaries, which fixes the initial pressure protections, but kills the run later on (only get 3 frames, tons of protections after 1.5).
Update 8/10
Charge Exchange
Postprocessing done on the collisional ionization runs. Solar wind run is going well:
MHD
+----------------------+------------+--------------+------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | | | | Strong Field (4.5x10^1^ G) | Weak Field (4.5x10^-4^ G) | +======================+============+==============+============================================================================================================+================================================================================================================================================================================+ | | | No wind | Immediate pressure protections, but they slowly decrease. By the time the run ended (frame 10), none left. | Runs well. Slight acceleration, moving at max of ~5 km/s at 21 frames. Possibly from boundary condition? | | | No gravity +--------------+------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | | | Stellar wind | | | | Non-corotating frame +------------+--------------+------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | | | No wind | Pressure protections all over the place after a few frames, but they also disappear just before frame 10. | Runs well. Accelerates toward star, bending field lines. 20 frames. | | | Gravity +--------------+------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | | | Stellar wind | | | +----------------------+------------+--------------+------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | | | No wind | Pressure protections after a few steps, still many at frame 9.8 (furthest it got). | Runs well. Accelerates as expected, fixed at left & top because of boundary condition. 20 frames. | | | No gravity +--------------+------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | | | Stellar wind | | | | Corotating frame +------------+--------------+------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | | | No wind | Pressure protections after a few steps. Only 1 frame. | Runs well. Accelerates outward (I think as expected? Orbital velocity of planet is higher than Keplerian velocity of ambient). 4 frames (for some reason only ran on 4 cores). | | | Gravity +--------------+------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | | | Stellar wind | | | +----------------------+------------+--------------+------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
There still appears to be a problem with the stellar wind being injected. I'll check it without fields to make sure I can get it working properly. Also, the strong wind runs are looking suspiciously similar. I may run clean runs of everything for comparison purposes.
Run 1
Here are the last pressure protections from the simplest run:
q= 0.73E-04 -0.11E-01 0.37E-03 0.12E-01 0.39E+01 0.79E+00 -0.25E-01 -0.18E+01 0.00E+00 0.36E-04 Info%q= 0.73E-04 -0.11E-01 0.37E-03 0.12E-01 0.39E+01 0.79E+00 -0.25E-01 -0.18E+01 0.00E+00 0.36E-04 pos= 0.51875000E+02 0.11250000E+01 0.11125000E+02 i,j,k,mx,my,mz 20 45 25 20 53 20 Info%level 0 tnow= 0.10220561E+01 Temp is -17241.5756049894 q= 0.73E-04 -0.11E-01 0.37E-03 0.12E-01 0.39E+01 0.79E+00 -0.25E-01 -0.18E+01 0.00E+00 0.36E-04 Info%q= 0.73E-04 -0.11E-01 0.37E-03 0.12E-01 0.39E+01 0.79E+00 -0.25E-01 -0.18E+01 0.00E+00 0.36E-04 pos= 0.51875000E+02 0.11250000E+01 0.11125000E+02 i,j,k,mx,my,mz 0 45 25 20 53 20 Info%level 0 tnow= 0.10220561E+01 Temp is -17241.5756071120 Pressure protection encountered at 20 45 25 Pressure protection encountered at 0 45 25
Update 7/13
Exo3
Posters. Mine is supposed to be MHD, though it can still be edited. I think we may have gotten enough to make an interesting poster, though, especially with the last frame or two of the most recent run. Current plan is to discuss Eric's theory about the field guiding the wind in a more LOS direction in the context of original parameter space run and new results.
MHD tests
Truly uniform, constant magnetic fields. Initial conditions are the same in each pair of strong/weak field runs, barring the magnetic field strength. All simulations are using outflow-only boundary conditions.
Haven't run the simulations including a stellar wind yet, a little more difficult to double check the implementation of those.
+----------------------+------------+--------------+--------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | | | | Strong Field (4.5x10^1^ G) | Weak Field (4.5x10^-4^ G) | +======================+============+==============+============================================+================================================================================================================================================================================+ | | | No wind | Immediate pressure protections. No frames. | Runs well. Slight acceleration, moving at max of ~5 km/s at 21 frames. Possibly from boundary condition? | | | No gravity +--------------+--------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | | | Stellar wind | | | | Non-corotating frame +------------+--------------+--------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | | | No wind | Immediate pressure protections. No frames. | Runs well. Accelerates toward star, bending field lines. 20 frames. | | | Gravity +--------------+--------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | | | Stellar wind | | | +----------------------+------------+--------------+--------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | | | No wind | Immediate pressure protections. No frames. | Runs well. Accelerates as expected, fixed at left & top because of boundary condition. 20 frames. | | | No gravity +--------------+--------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | | | Stellar wind | | | | Corotating frame +------------+--------------+--------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | | | No wind | Immediate pressure protections. No frames. | Runs well. Accelerates outward (I think as expected? Orbital velocity of planet is higher than Keplerian velocity of ambient). 4 frames (for some reason only ran on 4 cores). | | | Gravity +--------------+--------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | | | Stellar wind | | | +----------------------+------------+--------------+--------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Images of runs, numbered in order of appearance in table above:
Run 2
Run 6
Run 10
Run 14
Charge Exchange
Solar-type wind crashed with MPI issues before completing a single frame. I've halved the number of cores to reduce the messaging, which should fix that.
Completed 3 (of 5 planned) frames of strong wind with collisional ionization:
Update 7/6
MHD
Still having issues with both the restart and the current fresh run.
The restart is starting properly now, but still has immediate pressure protections (not unexpected) and very high CFL to start, so it almost immediately freezes.
I'm trying to restart the fresh run from earlier frames with a higher diffusion coefficient. Running into the same issue with high CFL conditions, but this time it seems linked to the higher diffusion coefficient. Going back to an earlier frame reduces the equilibrium predicted wall time, but still trying to figure out where I need to go back to in order to get a reasonable value. Removing the maxsolverspeed helps with, but does not entirely solve, this problem. The pressure protections here are mostly in ghost zones, and pretty much entirely at various grid intersections.
Charge exchange
Solar-type wind going slow, pretty much as expected. Should speed up as the shock relaxes. But appears to be running well.
Update 6/29
Charge Exchange
Collisional ionization appears to be working. Definitely a strong upper bound without it…
Frame 300, old run
Frame 299, new run
I'll queue the GJ 436b run (as soon as I figure out why the slurm script isn't working…) and the new HD 209458b run.
MHD
Officially stuck, so I'll turn the diffusion up some more. See last week's post for latest frame.
I've also set up a run to try restarting from the final frame of the original run with an extremely high field. Need to figure out how to reload a hydro run with MHD, and add to total energy when I add the field.
Update 6/22
MHD
Only got one frame last run, still getting tons of pressure protections (despite not being close to MinTemp anywhere, as far as I can tell). Perhaps diffusion needs to be turned up a bit? But things are starting to look very interesting. Also, realized the stellar field wasn't being applied correctly at the left boundary, so I've fixed that.
GJ 436b
Slurm script seems messed up. Need to fix. Otherwise working well.
Charge Exchange Paper
Made most of the changes we discussed at the meeting. Waiting on results of collisional ionization test to start the 1.2x solar mass loss rate run, with more solar-wind-like properties.
Current MHD Summary
These runs are currently using the parameters from Run 2 of the parameter space paper, to wit:
Planet Radius | 2.146 RJ |
Planet Mass | 0.263 MJ |
Planet Temp | 3000 K |
Ionizing Flux | 2 x 1013 phot/cm2/s |
Surface Density | 1.324 x 10-16 g/cm3 |
Stellar Mass | 1.35 Msun |
Orbital Separation | 0.047 AU |
Initial B field | 4.5 x 10-3 G |
The initial B field excludes the center of the planet.
Here are some relatively current movies:
Fixed left boundary
B field
rho, temp, P
beta, no ram
beta, with ram
Update 6/8
Charge Exchange Paper
Haven't gotten any new comments yet. Still working on the collisional ionization run on Stampede.
MHD
Still lots of pressure protections, but running reasonably ok (> 1 frame per day). Looks like the high-temp vacuum is starting to smooth out, so hopefully we're over the hump.
GJ 436b
Still no issues at equivalent of frame 4 (where it crashed with pressure protections before frame 1 last time). If it makes it to t=1 (frame 10), I'll just rename the files and have it restart from there.
Jobs, etc.
Started updating my (long long form) CV based on suggestions from AAS, also finishing up the requirements for the university's teaching recognition. This includes a first draft of a teaching philosophy, which I think is sufficient for the requirements but needs some revision.
Also probably going to apply to that job Laura sent around - may want people to start too early, but at least some gov't contractors have very long hiring processes, and worst case it's good practice and I might (maybe) get some useful feedback.
Spring code
Lots of tests fail with OpenMP. Need to determine which fail because of bugs and which fail because of pseudorandom ordering. On the backburner for the moment.
Update 6/1
Charge Exchange Paper
Made the changes discussed, responded to Luca's comments. Have a job queued on Stampede to test changes with collisional ionization.
MHD
Pressure protections started immediately, so there must have been some in the missing portion last time, too. But it still seems to be running reasonably ok. Here's the current frame:
GJ 436b
Haven't hit a problem yet, it seems, so I'm continuing the current run to see where it does. If we do run into an issue, I'll run some tests with the outer boundary out farther, see if I can find a better balance between keeping the atmosphere hydrostatic and still having a decently-low ambient temperature.
Spring code
Pretty much completely done with current to-do list. Merged into master branch on GitHub. Would still like to figure out how particles are distributed using MPI (how is an essential tree implemented?) and possibly adapt the spring portion to be a hybrid code, but OpenMP works well enough for now (though I'm segfaulting in the tests while using OpenMP, so need to fix that).
Update 5/26
Charge Exchange Paper
Sent out. Reviewing together Thursday 1 PM.
MHD tests
Something weird happened to the run log on BlueHive. It only has 4 of the ~24 frames that were actually completed by the last run. It's looking much better than the previous couple of tests, though:
This Test (DIFF_ALPHA2 = 0.01)
No Diffusion
High Diffusion (DIFF_ALPHA2 = 0.1)
Acceptable? Does the diffusion need to be even lower? Is it safe to turn off the diffusion, or give it another 10-15 frames?
GJ 436b
Got a bunch of test frames for a short early-time test (for the previously-mentioned pressure protections). The last frame copied so far shows the planet getting "hairy," for lack of a better word.
Spring code
Nearly written a full test suite. A few left in shapes, output tests, and then it'll be good to merge into the master branch.
Update 5/11
Charge Exchange Paper
Postprocessing finishes tomorrow or Wednesday. Still plan to have draft done by end of week.
GJ 436b
Having some issues with pressure protections. I suspect it's related to the planet-ambient interface, so trying a test run now.
Spring code
Started writing tests (using googletest framework). Going well so far. Found plenty of bugs.
Update 5/5
Charge Exchange Paper
Postprocessing is done for the high-wind sim. I believe the low-wind postprocessing should be done by the beginning of next week, so I'm hoping to have a complete first draft of the paper to send around to everyone by the end of next week. See last week's post for a table comparing the major charge exchange papers. I didn't include Ekenbäck et al 2010, since they use a baked-in magnetosphere - don't think that would be a very useful comparison.
Exo3
I'm moderating. Once charge exchange paper is sent around I'll start running magnetic field tests again, so we can hopefully have some results for the poster.
Spring Code
I've integrated OpenMP parallel for loops everywhere I think they'll be useful. I realized this weekend that although Rebound has MPI built in, I'm not sure if the spring code add-ons will work with it. I need to dig a bit to figure out how the particles are distributed across processors.
Also on my list are to add tests, make sure all of the functions present are actually used and delete the unused, and write up some documentation.
Update 4/27
Charge Exchange
Here's the split of absorption between hot and cold neutrals:
Shows pretty much what the theoretical calculation does - the hot neutral density just isn't high enough to get significant absorption. You can see a lot more broadening in the hot case, the total absorption is just very low compared to the cold.
Papers
Study | Fluids | Planet | Resolution | Stellar wind density (/cm3) | Stellar wind velocity (cm/s) | Stellar wind temperature (K) | Stellar Wind Mass Loss (g/s) | Results |
Ours | Single (4 species tracers) | HD 209458b, self-consistent | 3D, ~0.01 Rp | 7x102, 4x104 | 1.3x107 | 8x105 | 1.6x109, 8.2x1010 | A few percent absorption |
Khodachenko et al 2019 | Multifluid (H2, H2+, H3+, HeI+II, HI+II, e-) | GJ 436b, self-consistent | 3D, ~0.5 Rp in tail | 1.2-8x103 | 4x107 | 6x105 | 7.5x1010-5x1011 | ~50% blue absorption from parameter set #11 of table 2 |
Khodachenko et al 2017 | Multifluid (H2, H2+, H3+, HeI+II, HI+II (stellar and planetary), e-) | HD 209458b, self-consistent | 2D, ? | 5x103-3x104 | 2-5x107 | 1-3x106 | Fig 9 - absorption of a few percent by hot neutrals | |
Shaikhislamov et al 2016 | Multifluid (H2, H2+, H3+, HI+II (stellar and planetary), e-) | HD 209458b, self-consistent | 2D, | 1.3x102-3.4x103 | 2.3-6.6x107 | 0.9-2.9x106 | Hot neutrals ~10x lower than required to create observed absorption (max column density ~1011 at -100 km/s) | |
Bourrier et al 2016 | Particle model | GJ 436b (4 Rp) | 3D | 1.3,3.3x103 (Best-fit values) | 8.5x106 (Best-fit) | 1.2x104 (Best-fit) | Good fit to observations | |
Christie et al 2016 | Single-fluid | HD 209458b (Rp) | 2D, cyl, ~0.05 Rp | 104 | 2x107 | 106 | Absorption of a few percent | |
Tremblin & Chiang 2013 | Single-fluid? | HD 209458b (4 Rp) | 2D, 0.00625 Rp | 2.9x104 | 1.3x107 | 106 | 1012 | Absorption of ~10% |
Summary: After reviewing all of the papers, it's starting to look like everyone can fit GJ 436 but not HD 209458.
(Not sure why only the first attachment link is working…. Open post to download attachments.)
Spring code
Basically done. A few more problems to update, some minor refactoring and upgrades for the spring part (particularly, need to figure out the correct places to parallelize with OpenMP).
Update 4/20
Charge Exchange
With a theoretical optical depth as a function of frequency of
\tau = \sigma_{\nu_0} n_{HIhot} d \frac{c}{\nu_0} \sqrt{\frac{m_H}{2 \pi k_B T}} e{-\frac{(\nu - \nu_0)2 c2 m_H}{2 \nu_02 k_B T}}
0.125704 e{-8.92598\times10{-25} (\nu - 2.47\times1015)2)
Which gives an optical depth at \nu_0 of .126, an optical depth at \pm 100 km/s of 0.061.
I've attached a Mathematica notebook with my work.
I've also made it possible to output both the unsplit and split (as separate files) Lyman-alpha absorption from postprocessing. Should be able to get some preliminary results in a day or two.
Spring Code
Split into 10 modules now, approximately 6ish left to refactor. May be able to finish by the end of the week. Almost certainly by the end of the month.
Update 4/13
Charge Exchange Paper
Figures and captions (except for postprocessing) done. Also basically done with methods. Need to talk about other papers in intro still (which? of Khodachenko19, Khodachenko17, Shaikhislamov16, Christie16, Tremblin13, Ekenback10, Bourrier16).
Postprocessing: Completed up to frame 276 for the split-species high wind. Completed up to 226 for the split-species low wind. High wind is taking 7-8 hours per frame, so should be done late next week (~10-12 days). Low wind takes closer to 10 hours per frame, but hopefully can be done by the end of the month.
Update 3/30
MHD
Test started recently. Will do some visualization checks soon, but appears to be running (slowly, but well). Will have to stop to finish the charge exchange postprocessing.
Charge Exchange
Low wind finished. Here are movies of both (missing last few frames of low wind):
High Wind
Low Wind
Spring Code
Converted Alice's code to C++ to make some of the math significantly easier to express. Still working on sorting and refactoring the majority of the code. There also appear to be dozens of unused routines - need to check on those.
Misc
Contacted by Research Outreach, paid magazine publication service. I'm assuming we're not interested, but wanted to make sure.
Update 3/23
MHD
Diffusion coefficient still appears too high. However, when set at what I think it should be, I run into min timestep issues (Atma appears to be having a similar issue). I first believed this to be related to the addition of a DIFF_ALPHA2 term for the maxspeed:
maxspeed(Info%level) = max(maxsolverspeed(Info%level), max(maxspeed(Info%level), 10d0*DIFF_ALPHA2/levels(Info%level)%dx))
But looking again, the lower DIFF_ALPHA2, the lower that term should be, so I don't believe that's the problem.
Charge Exchange
Low-wind run finished over the weekend. Working on the postprocessing now, along with the new separate-temperature postprocessing for both.
Update 3/16
AMR Line Transfer
Buffered sends with a stack of rays is a significant improvement over blocking and looping. Tests on 120 cores:
Buff+Stack | Block+Loop | Proj | |
Time | ~16 hrs | ~30 hrs | ~12 hrs |
% in LT | ~72% | ~79% | ~50% |
Time in LT | ~12 hrs | ~24 hrs | ~6 hrs |
I've merged the AMR and projected versions of line transfer into one branch, so it's possible to choose between them with a single switch. Default is non-AMR. During these tests, noticed that AMR version is ~2x faster than non-AMR on 24 cores. Hasn't affected execution time for non-AMR version.
Still probably a way to improve the ray processing order to minimize dependencies, but will take significant thought.
Charge exchange
To get a reasonable time for averaging, need about 9 more frames. Almost there…
MHD
Testing a diffusion (DIFF_ALPHA2) run. Still having pressure protections, but entirely in ghost zones now. Not clear yet if it will improve runtimes if these protections are solved, or if it will behave well (seems like too much diffusion right now).
DIFF_ALPHA = 0
DIFF_ALPHA2 = 0.1
With Diffusion, Frame 39
Without Diffusion, Frame 27
Update 3/2
Charge Exchange
Weak wind should be done this week. Here are the current figures for the high wind:
I find the differences between the initial state and the high wind interesting. The absorption is definitely more spread out, but I'm not sure enough for the significantly less-deep line center absorption. Need to compare total optical depths.
Weak wind
MHD
Results from fixed left boundary field. Left is original run, right is with fixed boundary conditions.
Update 2/3
Radiation Pressure Paper
Accepted, finally. I'll fill out the paperwork and update the ArXiv version this afternoon.
Charge Exchange
High wind
Here's the final movie. Waiting for postprocessing job to start on BlueHive.
Low wind
MHD
Here's a movie up to the current frame:
We're getting some significant slowdown due to pressure protections along the boundaries of the wind. It's actually sped up over the last couple of frames — down to 2.5 months instead of 4 months.
What I believe is happening is that a vacuum is trying to form along some of the wind-ambient boundaries. Which leads to a couple of thoughts: first, have we ever tried to build vacuum handling into AstroBEAR? I know it's possible with the exact solver, so it may be something where we could have a failsafe trigger to use the exact solver at pressure protections instead of averaging or otherwise modifying the pressure. Second, would lowering the ambient density initially help with this? I.e., if it's already closer to vacuum, would it improve runtime?
Misc
Still waiting on a bunch of MHD and AMR line transfer test runs on BlueHive.
Update 1/27
Radiation pressure paper
Revision submitted. Hopefully it'll be accepted soon and I can move the data off BlueHive.
MHD
Ramp vs No-Ramp
Slight differences. But the non-ramping version is working, so that's probably the better way to go. Working on some resolution tests now.
Charge Exchange
I have 10 more frames of this, but no room on BlueHive currently. The low-pressure wind is working (have 5 frames or so), but I believe I've pretty much used up my allotted portion of the allocation on Stampede2.
I will start the postprocessing on BlueHive, so that we can start looking at synthetic observations.
AMR line transfer
This may become useful for the higher field cases. In order to decrease the discontinuity between the planet and the ambient, we need higher resolution around the planet - but we can force the rest of the simulation to stay at e.g. level 4 maximum while refining the planet to a much higher level. However, this would be practically impossible to run in the "projected to max level" version of the line transfer routine. I'm working on updating and merging this into all of my branches.
Currently waiting on a timing test for the buffered nonblocking send with ray stack version, to see if that's an improvement over the last looping version (which may or may not have used IBsend during the test - if this isn't an improvement, probably have to check again).
At some point I would like to make a graph of the dependencies and see if there's a best way to prioritize the rays.
HPC summer school
Statements are due midnight tonight, AoE.
Exoplanets III
Talk abstract for MHD submitted. Deadline is this Friday, I assume we'll hear back Feb-Mar. Working on flight and hotel.
Misc
I've updated the development branch to use the MPI_F08 module, which allows type and bounds checking, makes iErr optional, and in general is both better and the only way to use MPI that's completely compatible with the Fortran standard. Sent a merge request on Gitlab.
I now have my own professional domain: alexcomputes.com (was tired of using my much less professional free domain on my CV).
Update 12/16
MHD
See my page for movies of moderate-field runs.
Next steps: Fix field lines in left (& right?) boundary. Test starting from complete field. Attempt higher fields (will likely require high resolution at planet boundary - means need to spend some time integrating AMR line transfer).
Charge Exchange
Successfully replaced ambient for low-wind run, but running into pressure protections - trying to work through them now.
Misc
Exoplanets 3 registration is open. AAS dress code?
Update 10/2
MHD
The bug was tracked down last week. The low-field test case now works (known working up to a stellar beta of 10-2), so I'm experimenting with some values of the ramping to get the higher-field cases working.
Charge Exchange
Here's a movie up to frame 30:
And here's the latest frame:
I've implemented a check to make sure the stellar wind has a greater total pressure than the ambient, and if not to replace the ambient (or material at a density threshold approximately equal to the ambient density) with the stellar wind (which will be a much more significant shock to the simulation, I think, but probably can't be helped). Still testing this.
Scaling Test
Still fighting with the KNL nodes. I'm talking with Baowei to try to figure out why.
Update 11/25
Radiation Pressure
Still waiting for responses to comments. Should probably send around again.
MHD
The clump test is also clearly not working. Additionally, the advection test is behaving very differently on the development branch than on the line_transfer branch. All of this suggests that there's a bug in one or more places.
Also, here's the rotating run test:
Charge Exchange
Here's frame 250.
Looks very similar to the last frame of the movie I showed previously. Once I get a movie up to the latest frame, I'll see if we can stop.
Scaling Test
Haven't gotten the KNL nodes working yet.
Update 11/18
MHD
Here's a side by side comparison of the same frame in the MHD and non-MHD runs. This is with a stellar beta of 0.01, which gives a beta of a bit less than 1 near the planet. Note that the field is clearly pretty stiff.
Do we want to see how high a magnetic field we require in order to suppress the up-orbit arm? Can calculate the RM compared to Rt and Rw, to see if the approximate field value is even feasible.
Charge Exchange
Not quite steady state, but does look like it's almost there. Here's a movie up to frame 22:
Scaling on Stampede
Think I have it working now. Should be done in a few days.
Update 10/28
MHD
We've found the bug, in upwinded_emf. I'll be checking the implementation from Gardiner & Stone 2005, but for now it runs.
We now have a more physical issue, with infall from around the AMR boundaries which I believe is due to (magnetic) pressure gradients in the ambient material. Setting the total (thermal+magnetic) pressure to a constant equal to the far-field value creates more problems (pressure protections in the initialization), but I have one more idea to try (in addition to trying a different interpolation method, to see if the boundaries will smooth out that way). Jonathan pointed out there's also magnetic tension - I'm hoping that countering the pressure will be sufficient to make things stable long enough to start the wind.
Charge Exchange
Also started a low-mass-loss-rate stellar wind run. Will check and see how that one's running soon.
Update 10/21
MHD
I think a CFL issue has been successfully ruled out (Jonathan, if you think a direct wave speed comparison would be useful, I can do that - but based on the tests already done, don't think they're necessary).
Is the prolongation of the aux fields still the most likely place for a bug? It may be time to sit down for a bug hunt.
Charge exchange
Still moving right along. Hoping we reach a steady state soon. Here's the latest frame. (At some point I'll get a movie, but waiting to hear back about the paper so we can hopefully archive the rad pressure run and make room….)
I meant to turn off the lower y boundary, turned off the upper one instead - been corrected, and shouldn't affect the simulation as it progresses (but I've queued the restart from an earlier frame anyway).
AMR line transfer
Set up a stack, still need to change ray tracing to use it. Think it should be a stack of rays rather than ray positions, which means the main ray tracing loop needs to be rejiggered again.
Once the MHD bug is worked out I should have time to go a little deeper into this, see if there's a better way to approximate the graph that represents the dependencies.
Update 10/14
MHD
Believe current problems are related to prolongation of the aux fields. Because we lose information when going from face-centered to cell-centered B fields, we can't just reconstruct the "correct" (uncorrected) aux fields from q. I believe this is the relevant piece of code, in ProlongateParentData:
DO i=1,nDim DO j=0,r**nDim-1 IF (MOD(j/r**(i-1),r)==1) CYCLE DO n=1,nDim l(n)=MOD(j/r**(n-1),r) END DO ic(1:nDim,1)=1+l(1:nDim)-rmbc; ic(1:nDim,2)=Info%mX(1:nDim)-r+1+l(1:nDim)+rmbc;ic(i,2)=ic(i,2)+2 ip(1:nDim,1)=mB(1:nDim,1)-mbc; ip(1:nDim,2)=mB(1:nDim,2)+mbc;ip(i,2)=ip(i,2)+1 Info%aux(ic(1,1):ic(1,2):r,ic(2,1):ic(2,2):r,ic(3,1):ic(3,2):r,i) = & Parent%auxChild(ip(1,1):ip(1,2) ,ip(2,1):ip(2,2) ,ip(3,1):ip(3,2) ,i) END DO END DO
Haven't looked to see if there are any obvious errors yet. Outer ghost zones were the source of the error in last test.
AMR line transfer
Thinking some more about prioritization. Setting up a stack isn't a bad idea - may be the next thing I try, since it should be easy.
In the truly ideal case, we'd know which processors each ray depended on, and we'd prioritize based on number of dependencies. There may be a better way to approximate this than a stack. I'll continue thinking.
Charge Exchange
Still progressing. Here's the latest frame:
Update 10/7
AAS
Current version of the abstract:
The photoionization-driven evaporation of planetary atmospheres has emerged as a potentially fundamental process for planets on short period orbits. Using AstroBEAR, an AMR multiphysics code, in a co-rotating frame centered on the planet, we model in three dimensions the transfer of ionizing photons into the atmosphere, the subsequent launch of the wind and the wind's large scale evolution subject to tidal and non-inertial forces. We run simulations for planets of 0.263 and 0.07 Jupiter masses and stellar fluxes of 2x1013 and 2x1014 photons/cm2/s. These simulations reveal new, potentially observable planetary wind flow patterns, including the development, in some cases, of an extended neutral tail lagging behind the planet in its orbit. In addition, the role of radiation pressure in shaping exoplanet photoevaporation remains a topic of contention. Radiation pressure from the exoplanet's host star has been proposed as a mechanism to drive the escaping atmosphere into a "cometary" tail and explain the high velocities observed in systems where mass loss is occurring. Using simulations of a planet modeled after HD 209458b and subject to both ionizing and Lyman-α radiation, we demonstrate that for the Lyman-α flux expected for HD 209458, radiation pressure is unlikely to significantly affect photoevaporative winds or to explain the high velocities at which wind material is observed. Charge exchange between the stellar and planetary winds has also been suggested as a method for creating the observed Lyman-α absorption signature. We present results of simulations that explore the effect of charge exchange on our synthetic observations. In addition, we present simulations of the effect of stellar and planetary magnetic fields on our self-consistently launched wind.
MHD
Pressure protections around the planet. Some very small B fields in the planet - may need to fix the field to zero inside the planet at every step?
Also realized that I set the field to zero inside Rp only, not inside Rob. That may help some. Perhaps it's even worth fixing the field to zero out to within a small but significant distance from Rob?
Also plan to try fixed-boundary global sim when I get a chance.
Charge Exchange
Still running fairly slowly. I expect it should reach steady state soon, though (assuming we don't enter a cycle with the stellar wind - I am using John's intermediate case).
The wind is turning inward as it approaches the outside boundary - I think this is expected due to Coriolis/centrifugal force/differential rotation? But haven't really had time to investigate yet.
AMR profiling
Actual profiling should finally run successfully on Stampede. Also on my to-do list is to make sure we're not waiting longer than necessary for local/MPI rays.
Update 9/30
Radiation Pressure Paper
Resubmitted. Hopefully not too long until we hear back.
Ray tracing
Almost working perfectly. Getting a few unexpected zero-length rays that I need to investigate, and a few strange rays toward the end.
Charge Exchange
Appears to be running well. Trying to make a movie of first six frames.
Magnetic Fields
Still having both pressure and divergence issues in the initialization. May need a brainstorming session for this one. See Mathematica notebook with equations to satisfy.
AMR profiling
Still waiting on Stampede.
Update 9/23
AAS
Booked hotel for 3rd through 9th. No longer sure where I'm flying out of, but should hopefully know soon.
Radiation Pressure
Submitting Friday. Haven't gotten Ruth's comments yet.
Charge Exchange
See last week's blog post for test results.
Test comparison
Production run with John's "moderate" stellar wind is queued on Stampede2. Also queued non-rotating parameter space runs on BlueHive.
Magnetic fields
Added option for initial stellar B field that excludes planet (as if it were a perfect conductor). Getting divergence warning immediately after initialization. I believe the field should be divergence-free, but will this be a problem?
AMR profiling
New test still queued on Stampede.
Ray tracing
Tested patch output first. That's working well. Now just need to figure out best way to read mixed data types in Matlab, and should be able to plot rays without too much issue. Using 8-core, 3-level, 2-D 16x256 base resolution test mesh, which should leave enough room for each ray to be distinct even on the finest level.
Testing charge exchange
Here are the first three steps of charge exchange for a simulation where the densities of stellar and planetary material differ by five orders of magnitude.
q(iHIIhot) = 55.0433622655540 q(iHcold) = 5504281.18319314 q(iHIIcold) = 0.000000000000000E+000 q(iHhot) = 0.000000000000000E+000 After step: q(iHIIhot) = 54.7826014982936 q(iHcold) = 5478205.36722786 q(iHIIcold) = 0.000000000000000E+000 q(iHhot) = 0.000000000000000E+000 Charge exchange coefficient is 3.455999999999997E-003 Before iHIIhot protection: q(iHIIhot) = 54.7754817989544 q(iHcold) = 5478115.68039737 q(iHIIcold) = 6.222884294905237E-003 q(iHhot) = 6.222884294905237E-003 After iHIIhot protection: q(iHIIhot) = 54.7754817989544 q(iHcold) = 5478115.68039737 q(iHIIcold) = 6.222884294905237E-003 q(iHhot) = 6.222884294905237E-003 Before iHhot protection: q(iHIIhot) = 54.7754817989544 q(iHcold) = 5478115.68039737 q(iHIIcold) = 6.222884294905237E-003 q(iHhot) = 6.222884294905237E-003 After iHhot protection: q(iHIIhot) = 54.7754817989544 q(iHcold) = 5478115.68039737 q(iHIIcold) = 6.222884294905237E-003 q(iHhot) = 6.222884294905237E-003 Before iHIIcold protection: q(iHIIhot) = 54.7754817989544 q(iHcold) = 5478115.68039737 q(iHIIcold) = 6.222884294905237E-003 q(iHhot) = 6.222884294905237E-003 After iHIIcold protection: q(iHIIhot) = 54.7754817989544 q(iHcold) = 5478115.68039737 q(iHIIcold) = 6.222884294905237E-003 q(iHhot) = 6.222884294905237E-003 Before iHcold protection: q(iHIIhot) = 54.7754817989544 q(iHcold) = 5478115.68039737 q(iHIIcold) = 6.222884294905237E-003 q(iHhot) = 6.222884294905237E-003 After iHcold protection: q(iHIIhot) = 54.7754817989544 q(iHcold) = 5478115.68039737 q(iHIIcold) = 6.222884294905237E-003 q(iHhot) = 6.222884294905237E-003 Advanced level 0 to tnext= 0.6000E-08 with dt= 0.6000E-08 CFL= 0.5764E-07 max speed= 0.1921E+02 radiation sub-cycles= 1 Info allocations = 148.7 kb 148.7 kb message allocations = ------ ------ sweep allocations = ------ 122.5 kb filling fractions = Current efficiency = 75% 16% 91% Cell updates/second = 211 209 100% Wall Time Remaining = 9.1 day at frame 0.0 of 10 AMR Speed-Up Factor = 0.2004E+03 Before step: q(iHIIhot) = 54.7752475699149 q(iHcold) = 5478092.25506669 q(iHIIcold) = 6.222857684820517E-003 q(iHhot) = 6.222857684820517E-003 After step: q(iHIIhot) = 54.7751651392209 q(iHcold) = 5478084.01114326 q(iHIIcold) = 6.222848320107427E-003 q(iHhot) = 6.222848320107427E-003 Charge exchange coefficient is 3.455999999999997E-003 Before iHIIhot protection: q(iHIIhot) = 22.3818513902974 q(iHcold) = 5478051.58934171 q(iHIIcold) = 32.3995363123598 q(iHhot) = 32.3995363123598 After iHIIhot protection: q(iHIIhot) = 22.3818513902974 q(iHcold) = 5478051.58934171 q(iHIIcold) = 32.3995363123598 q(iHhot) = 32.3995363123598 Before iHhot protection: q(iHIIhot) = 22.3818513902974 q(iHcold) = 5478051.58934171 q(iHIIcold) = 32.3995363123598 q(iHhot) = 32.3995363123598 After iHhot protection: q(iHIIhot) = 22.3818513902974 q(iHcold) = 5478051.58934171 q(iHIIcold) = 32.3995363123598 q(iHhot) = 32.3995363123598 Before iHIIcold protection: q(iHIIhot) = 22.3818513902974 q(iHcold) = 5478051.58934171 q(iHIIcold) = 32.3995363123598 q(iHhot) = 32.3995363123598 After iHIIcold protection: q(iHIIhot) = 22.3818513902974 q(iHcold) = 5478051.58934171 q(iHIIcold) = 32.3995363123598 q(iHhot) = 32.3995363123598 Before iHcold protection: q(iHIIhot) = 22.3818513902974 q(iHcold) = 5478051.58934171 q(iHIIcold) = 32.3995363123598 q(iHhot) = 32.3995363123598 After iHcold protection: q(iHIIhot) = 22.3818513902974 q(iHcold) = 5478051.58934171 q(iHIIcold) = 32.3995363123598 q(iHhot) = 32.3995363123598 Advanced level 0 to tnext= 0.3124E-04 with dt= 0.3124E-04 CFL= 0.3001E-03 max speed= 0.1921E+02 radiation sub-cycles= 1 Info allocations = 148.7 kb 148.7 kb message allocations = ------ ------ sweep allocations = ------ 122.5 kb filling fractions = Current efficiency = 77% 14% 90% Cell updates/second = 303 302 100% Wall Time Remaining = 1.8 min at frame 0.0 of 10 AMR Speed-Up Factor = 0.2879E+03 Before step: q(iHIIhot) = 22.3818513598937 q(iHcold) = 5478051.58190027 q(iHIIcold) = 32.3995362683480 q(iHhot) = 32.3995362683480 ---- After step: q(iHIIhot) = 22.3818513491939 q(iHcold) = 5478051.57928144 q(iHIIcold) = 32.3995362528591 q(iHhot) = 32.3995362528591 Charge exchange coefficient is 3.455999999999997E-003 Before iHIIhot protection: q(iHIIhot) = -4.07465558395285 q(iHcold) = 5478025.12276545 q(iHIIcold) = 58.8560431859153 q(iHhot) = 58.8560431859153</span> ---- After iHIIhot protection: q(iHIIhot) = 0.000000000000000E+000 q(iHcold) = 5478029.19742104 q(iHIIcold) = 54.7813876019624 q(iHhot) = 54.7813876019624 ---- Before iHhot protection: q(iHIIhot) = 0.000000000000000E+000 q(iHcold) = 5478029.19742104 q(iHIIcold) = 54.7813876019624 q(iHhot) = 54.7813876019624 After iHhot protection: q(iHIIhot) = 0.000000000000000E+000 q(iHcold) = 5478029.19742104 q(iHIIcold) = 54.7813876019624 q(iHhot) = 54.7813876019624 Before iHIIcold protection: q(iHIIhot) = 0.000000000000000E+000 q(iHcold) = 5478029.19742104 q(iHIIcold) = 54.7813876019624 q(iHhot) = 54.7813876019624 After iHIIcold protection: q(iHIIhot) = 0.000000000000000E+000 q(iHcold) = 5478029.19742104 q(iHIIcold) = 54.7813876019624 q(iHhot) = 54.7813876019624 Before iHcold protection: q(iHIIhot) = 0.000000000000000E+000 q(iHcold) = 5478029.19742104 q(iHIIcold) = 54.7813876019624 q(iHhot) = 54.7813876019624 After iHcold protection: q(iHIIhot) = 0.000000000000000E+000 q(iHcold) = 5478029.19742104 q(iHIIcold) = 54.7813876019624 q(iHhot) = 54.7813876019624 Advanced level 0 to tnext= 0.9368E-04 with dt= 0.6244E-04...
Jonathan was right on the money with the timestepping being too long. I've broken out the relevant blocks above. For the charge exchange step that follows the first line, we get an overall
of
Since HIIhot is only ~22, this gives us HIIhot of ~-4 after charge exchange is complete.
This run is from after I implemented protections for any species less than 0. The section that follows the first line shows that 4 is added back to HIIhot and Hcold, and removed from HIIcold and Hhot, reversing the excess charge exchange that brought HIIhot negative.
This method of protection can result in large oscillations arount equilibrium. Better would be to prevent any one species from changing more than e.g. 10%, as we do with the other quantities, but this is more computationally expensive thanks to the amount of subcycling that would be required in some places (namely those with large
in comparison to any one species).Update 9/16
AAS
Registered. Have flight info ready, will get hotel once I have flight confirmed.
Abstract: Charge exchange? Should have results by January. Poster, iPoster, or iPoster-Plus?
Radiation Pressure
Ruth said minor comments are on the way. Haven't heard anything from Eric.
Charge Exchange
Last week's problem with no hot neutrals appearing was exactly as expected. That's been fixed. But in the second frame I'm still ending up with stellar material right by the planet, for some reason (which is what the changes that caused the previous issue were prompted by…). I've added some debug statements - if that doesn't work, may be time for another small test problem, though it seems odd that it happens only near the planet - suggests to me that it's a problem with the simulation, or possibly some other multispecies routine (species protections? These should preserve 0s, though), rather than the charge exchange routines. In particular, the fact that there's no problem for an entire frame suggests it's something about the changes caused by the stellar wind.
First frame
Second frame
Freezes on BlueHive when compiled with optimization level 3, before reading in from restart file. Runs fine when compiled with optimization level 2. Should probably figure out why at some point, but for now I'm letting them run.
AMR Profiling
Trying to run on Stampede. Minor problem with profiler, trying suggested workarounds now.
Ray Tracing
Queued on BlueHive. One job should start on Friday; also requested job with shorter time allocation, to see if it might start earlier (don't need long).
Update 9/4
AAS
Need to register by 9/25, abstracts by 10/8 (if we want to submit something). I'm not currently an AAS member - not sure what the turn-around time is to become one, but it's a significant difference in registration fee.
Flights are ~$1200, similar for (AAS) hotel, though looks like about 2/3 price is available.
Radiation Pressure
Sent around what should be the nearly final version of the radiation pressure paper along with the response to the referee. I'll plan to submit as soon as I have a response from everyone (hopefully end of the week or beginning of next).
Charge Exchange
I've removed everything that I believe can eliminate the added hot neutrals from charge exchange (ionizing radiation, reverse charge exchange, collisional ionization [not turned on originally]), and checked that the charge exchange rate is being calculated correctly in the actual line transfer step (rather than in diagnostics). We have rates up to order 10 in some places, so with a dt of 0.1 over a frame, we should end up with some significant amount of hot neutrals after a frame now. Still getting none, however. Feel like I have to be missing something stupid now.
AMR profiling
Stampede has the Intel profiler available. Haven't had a chance to use it yet, but as soon as the charge exchange is working I'll check it out.
Non-rotating charge exchange
Feel like this should wait until we think we have charge exchange working, unless there's some reason it might give a clue to what's going wrong? I can't think of any, though. Ready and waiting, though.
Update 8/5
Radiation Pressure Paper
Believe almost every comment has been addressed. Two things remaining:
- Neutral speed plot: better version below?
- Timescale for bulging of wind. It may actually be a box effect (cycle is very close to 2 crossing times), though I'm not yet sure physically how reaching the edge of the box might increase the effect of radiation pressure.
Charge Exchange
See my previous blog post for the latest thoughts on charge exchange. It's recently started again on Stampede and is moving fairly quickly (~6 days left as of this morning). Here are the latest frames:
Species proportions
Charge exchange potential
Non-rotating Charge Exchange
Using the terminal velocity and mass loss rate from this thesis to approximate the wind of an O6 star at the orbit of Jupiter, I get a wind density of ~2x10-18 g/cm3, which is within an order of magnitude of our current values of 4.5-6.5x10-19 g/cm3. Given this, I've queued the rotating tests with the same wind as HD209458b (though technically they should be corrected for a different planetary and stellar mass).
AMR line transfer
Mixed news on this front. Bad news: The (current on the repo) version of the AMR line transfer is taking about double the amount of time on BlueHive as the previous. Good news: Based on one frame, it appears to be working for a full problem (rather than the simplified tests).
I'd like to run this in a profiler, but I haven't yet gotten it working (getting errors when attempting to run through slurm). I may try a run on an interactive session on a single node, though that will be far fewer cores, which may affect the hotspots…
For reference, here's the updated table:
Projection | AMR | |
Total Runtime | 43 101 s | 110 095 s |
Total AMR Time | 40 543 s | 108 990 s |
Relative Time Across All Levels: LineTransfer | 56.10% | 79.48% |
Relative Time Within MaxLevel: LineTransfer | 61.06% | 84.39% |
Relative Times of Each Level: 4 | 91.87% | 94.18% |
Update 7/22
Charge Exchange
A few more frames. So far, charge exchange is occurring, presumably creating a hot neutral population which is then immediately ionized (on the next line transfer step [not subcycle], by both photoionization and possibly ionization by "reverse" charge exchange). This suggests that the amount of neutral stellar material should be alternating between zero and some small value every step, which means at some point a frame may be output with nonzero amounts of Hhot….
Charge exchange should be creating at most ~10-4 Hhot (in CN). The highest-rate locations are in the shadow of the planet. HIIcold reacts with Hhot, and we have large amounts (~10-2-100) of HIIcold. This reverse charge exchange is already taken into account in the rate calculation, but if it's oscillating we may not have seen the opposite side of the step yet.
All this to say I'm not yet sure where the Hhot is going, and I haven't figured out the appropriate diagnostics to look at to make sure everything is happening as it should be, even if it's not quite the expected result (everything being zero when Hhot is zero, and not having seen a frame with nonzero Hhot yet).
Here are some figures for the latest frame:
rho, 1-X, T
Proportion of species
Clockwise from top left: Ionized cold, ionized hot, neutral hot, neutral cold
Amount of species
"Charge exchange potential"
min(Hcold, HIIhot)/max(Hcold,HIIhot) - so proportion of material that can undergo an exchange, disregarding the reverse interaction.
Charge exchange rate (CU)
Multiply by dt to get delta Hhot
AMR line transfer ==
Still hasn't started on BlueHive.
Non-rotating charge exchange
Still waiting on AMR line transfer.
Paper
Good discussion Thursday. Haven't had much chance to start making figures or new changes yet.
Update 7/15
Charge Exchange
Working on stampede. Here's the first frame:
I believe the neutral planetary material top-left is from the higher density (higher recombination rate, possibly also from higher temperature) in the stellar-planetary wind shock. Note that no charge exchange has occurred yet (but there's little contact between neutral planetary and ionized stellar material so far).
Trying to make a VisIt expression for charge exchange potential, but the following gives a "cannot divide by zero" error:
if(gt(Hcold,1e-2), HIIhot/Hcold, 0)
Note that the division should never happen if there could be a zero in the denominator, so I'm not sure why VisIt is complaining here…
AMR line transfer
Fixed the missing condition on the displaced child mask update. Still waiting on newest test on BlueHive.
Non-rotating charge exchange timing tests
Have the steady states ready. Need to calculate the stellar winds - use original distance (vs. larger orbital distance e.g. O-type)?
Radiation Pressure Paper
Got referee response. Sent around preliminary thoughts, will try to start addressing them this week. To recap my email:
- Collisional nature of the wind (not hard-body collisional but electrostatically collisional)
- Clearer distinction between our focus on the cometary tail vs. the observed velocities
- Discussing more thoroughly the absorption of momentum by ionized hydrogen
Update 7/8
Charge Exchange
As usual, Stampede is continually frustrating (related: Jonathan, you mentioned a plan to migrate from gitlab.circ to git.circ—any ETA on that?). Still making progress, though.
AMR timing
Baseline test complete (single frame of HD209458b steady state). What we believe to be the most efficient version is queued on BlueHive. Here are the relevant stats from the baseline run:
Total Runtime | 43101 s |
Total AMR Time | 40543 s |
Relative Time Across All Levels: LineTransfer | 56.10% |
Relative Time Within MaxLevel: LineTransfer | 61.06% |
Relative Times of Each Level: 4 | 91.87% |
Other tests
- Charge exchange timing for non-rotating parameter space planets
- AMR ray tracking
Misc
Posted my suggested progress through Toro on a blog post. Feel like there should be a better place to put this - perhaps an "Introduction for New Students"-type page would be useful?
Suggestions for Working Through Toro
- Read Chs 1-3 on the Euler equations and solutions to hyperbolic equations in general. Some of this will likely be familiar.
- Read Ch 4 and write the exact Euler solver described.
- Read Ch 5 and write the Godunov upwind scheme, for the linear systems described.
- Read Ch 6 and update the Godunov upwind scheme to use the exact Euler solver.
- Skip 7&8
- Read Ch 9 and write the approximate-state solvers (good place to find out if you're following good programming practices).
- Read/skim Chs 10-12 and write at least the HLLC solver (which is the one used in AstroBEAR). Note that there have been some significant improvements to the HLLC chapter in the third edition. Write the rest if you're interested, though I wouldn't recommend the Osher solver (it's interesting mathematically, but doesn't seem to offer much over the other solvers).
- Read Ch 16 and write a 2D/3D solver (test problem in Ch 17). Another place where you'll really notice if you've been following good practice.
- For second-order solvers: Read Ch 14 (skim 13 for an introduction to the same concepts for scalar equations) and write the WAF and MUSCL schemes (esp. MUSCL-Hancock, used in AstroBEAR).
Note that the ends of the code-related chapters have example code. I'd strongly suggest looking at some modern Fortran style guides rather than following the old style given in these, not least because it's much easier to follow your own code if it's written with meaning.
Update 7/1
Charge Exchange
Modified to track stellar and planetary ionization rates separately. I believe this is the most efficient solution to dividing the ionization and recombination properly among the species, since a single rate can't account for the difference in proportion between the recombination and ionization rates.
rates(i,j,k,iPlanetIoniz) = f*(1d0-emtau)/dx*(q(iHcold)/q(iH)) rates(i,j,k,iStellarIoniz) = f*(1d0-emtau)/dx*(q(iHhot)/q(iH)) rates(i,j,k,iPlanetIoniz) = rates(i,j,k,iPlanetIoniz) - RecombinationRate(T, ne*(1-ambFrac), q(iHIIcold)*(1-ambFrac)) rates(i,j,k,iStellarIoniz) = rates(i,j,k,iStellarIoniz) - RecombinationRate(T, ne*(1-ambFrac), q(iHIIhot)*(1-ambFrac))
Non-rotating timing on BlueHive
Need to get the data from Baowei. Then will do this after AMR tests are done.
AMR line transfer
The first timing test (projected-grid, for comparison) is queued. I'm using a single frame (220→221) of the steady state of HD209458b, no radiation pressure.
Tracking rays
Lowest testing priority right now, but ready once other tests are complete. Contemplating how best to implement plotter for output in Mathematica/Matlab/python.
Misc
Working through pre-req to fall course. My website is up.
Update 6/10
Radiation Pressure Paper
Updated version is on the arXiv today. I've emailed it out to a few people.
Charge Exchange
Waiting for job to start on BlueHive to get diagnostics.
AMR line transfer
Pushed two commits with separated local and MPI rays, and keeping an integer pointer to the next free ray and ray to be processed (instead of looping through entire array each time). Not tested yet, but weren't complicated changes, so (fingers crossed) they should work immediately. Now just need to compare timings to see if it was worth it for plane-parallel.
Also pushed commit with output for following ray propagation across the grid in time order (synchronized time, ray initial position, and processor ID). This may require some testing, particularly to determine the best way to process it for visualization.
Misc.
Set up GitHub repository of my Euler code. Working on personal website, as well.
Update 6/3
Radiation Pressure Paper
Submitted to MNRAS and the arXiv. Also looked at renormalized absorption:
Will update paper on Overleaf soon.
Charge exchange
Ionized and neutral planetary material appear to be interacting and becoming stellar material. Think the problem must be here:
if (q(iHhot) /= 0) then prop(i,j,k,lt_iHhot) = q(iHhot)/(q(iHcold) + q(iHhot)) else prop(i,j,k,lt_iHhot) = 0d0 end if if (q(iHcold) /= 0) then prop(i,j,k,lt_iHcold) = q(iHcold)/(q(iHcold) + q(iHhot)) else prop(i,j,k,lt_iHcold) = 0d0 end if if (q(iHIIhot) /= 0) then prop(i,j,k,lt_iHIIhot) = q(iHIIhot)/(q(iHIIcold) + q(iHIIhot)) else prop(i,j,k,lt_iHIIhot) = 0d0 end if if (q(iHIIcold) /= 0) then prop(i,j,k,lt_iHIIcold) = q(iHIIcold)/(q(iHIIcold) + q(iHIIhot)) else prop(i,j,k,lt_iHIIcold) = 0d0 end if data(:,:,:,lt_iHhot)=data(:,:,:,lt_iHhot)-rates(:,:,:,iIoniz)*dt*prop(:,:,:,lt_iHhot) + rates(:,:,:,iChargeExchange)*dt data(:,:,:,lt_iHcold)=data(:,:,:,lt_iHcold)-rates(:,:,:,iIoniz)*dt*prop(:,:,:,lt_iHcold) - rates(:,:,:,iChargeExchange)*dt data(:,:,:,lt_iHIIhot)=data(:,:,:,lt_iHIIhot)+rates(:,:,:,iIoniz)*dt*prop(:,:,:,lt_iHIIhot) - rates(:,:,:,iChargeExchange)*dt data(:,:,:,lt_iHIIcold)=data(:,:,:,lt_iHIIcold)+rates(:,:,:,iIoniz)*dt*prop(:,:,:,lt_iHIIcold) + rates(:,:,:,iChargeExchange)*dt rates(i,j,k,iChargeExchange) = chargeExchangeRate*(data(i,j,k,lt_iHIIhot)*data(i,j,k,lt_iHcold) - data(i,j,k,lt_iHhot)*data(i,j,k,lt_iHIIcold))
Charge exchange rate should be zero whenever there is no planetary or stellar material. Proportion of stellar material should be zero when there is no stellar material. So it should be impossible for q(iHIIhot/cold) to become nonzero when they're both zero at the start of the line transfer step. Clearly they are, however - will put some diagnostic variables in to see what exactly is nonzero when it shouldn't be.
Also need to check timing for charge exchange runs on non-rotating case of parameter space runs on BlueHive (will need to get the last frames).
AMR line transfer
Will try to run timing this week (after charge exchange diagnostics are complete), in addition to working on a new commit with optimizations.
Upcoming/Possible Projects
In approximate order of importance (though not necessarily priority).
- Literature review
- Spherical line transfer
- Metastable helium line
- Hot Neptune
- Flares
Fall 2019 registration
Last semester to take courses for credit. Would like to take CSC 482 (designing efficient algorithms), I think - will talk with Laura as well.
Update 5/24
MHD proposal figs
Also, a test of the streamlines. I like the LICs better, since the streamlines have a habit of not ending.
Radiation Pressure Paper
Found issue with postprocessing. Reprocessing synthetic observations. Here's a first look at the difference. The difference is significant, but doesn't change our conclusions.
Charge Exchange
Current frame
We also need to decide on the high-med-low for the stellar wind. Here are the current parameters (taken from John's simulation, except the mass loss rate, which is the solar mass loss rate - which corresponds to a 4x higher wind density than their strongest wind):
Parameter | Value |
cm | |
K | |
cm/s | |
g/s | |
AMR line transfer
Timing run is next up (for comparison with non-AMR and new optimizations), along with work on optimizations.
Also working on a way to output propagation of rays across grid for a step (just for a nice visualization):
Need: ray position, synchronized time
Ray position is easy.
Synchronized time pseudocode:
call MPI_barrier ! To synchronize time - unless MPI_wtime_is_global, in which case all processors are synchronized already and this becomes much easier initTime = MPI_wtime call PropagateRay subroutine PropagateRay time = MPI_wtime - initTime MPI_file_write(time,position) ! Or might be easier to save an array of time, position and write it out after all rays are processed, in processor order (so we don't have to calculate the buffer)
Update 5/13
Radiation Pressure Paper
All changes received so far made. I'm ready to submit.
Also, we still need to upgrade the Overleaf account to enable sharing again.
Charge Exchange
Running successfully on Stampede. On 20 nodes (960 cores), predicted time to completion is currently 1.8 months (got 2 frames in 48 hours). I expect this will speed up significantly once the stellar wind is more completely introduced and we reach closer to steady state.
Cost to allocation would be 1.8 mo x 30 days/mo x 24 hr/day x 20 nodes = 26000 node-hours. Much higher than I'd like.
Current frame
We also need to decide on the high-med-low for the stellar wind. Here are the current parameters (taken from John's simulation, except the mass loss rate, which is the solar mass loss rate - which corresponds to a 4x higher wind density than their strongest wind):
Parameter | Value |
cm | |
K | |
cm/s | |
g/s | |
AMR line transfer
Final functional fixes made (except a couple relating to subcycling). Some optimizations remaining, but could start using it for runs. Still want to do timing comparisons between old and new routines, and would be good to get a baseline for comparison of various optimizations.
Update 4/29
Radiation Pressure Paper
Moving this to the top of my to-do list. Should have first final look done in next couple of days.
Charge Exchange
A few more Stampede problems. Made it up to line transfer step with last run, so I'm hopeful it will just run now.
AMR line transfer
First clump test (radiation pressure only) still partially successful (See code page, though I have a few more frames). Local ray communication works, and fixed race condition (though still may switch to buffered sends). Currently tracking down source of unmatched sends and/or receives.
Update 4/18
Charge Exchange
Square appears to be from a combination of diffusion and advection (advective ionization is significantly negative). Chombo conversion appears essentially correct (slight discrepancies between max and min of rho?), so attempting to run on stampede.
AMR line transfer
First clump test (radiation pressure only) partially successful (See code page. I'm running into what appears to be a race condition in the MPI library - multiple recvs are being used to accept the same sends. I've put debugging this on hold while developing the local (non-MPI) communication.
Currently testing the MPI-less implementation.
Update 3/25
AMR Line Transfer Tests
Running the same test seen here, which is IonizationFront module. Parameters are given in Mathematica notebook attached to that page, but for thoroughness:
Variable | Value |
nScale | 5d7 |
TempScale | 1d4 |
lScale | 1.5d10 |
iLineTransfer | 1, 2, or 3, as appropriate |
IonizingFlux | 2d12 |
LyAlphaFlux | ~5.1d13 |
ambientDensity | 1 |
ambientTemp | 1 |
nDim | 3 |
Dependent on test (initial test parameters listed)
lCollisionalIonization | F |
lRecombination | T |
lLymanCooling | F |
lRecombinationCooling | F |
lIonizationHeating | F |
GmX | (256, 1, 1) |
MaxLevel | 0 |
GxBounds | (0, 0, 0, 2d0, 1d-2, 1d-2) |
start_time | 0d0 |
final_time | 5d1 |
final_frame | 500 |
lSkipHydro | T |
Working my way up the test hierarchy.
* Single ray (1D), single processor. Ran for very long simulation time, to give solid point of comparison.
* Multiple rays (2D, GmX(2) = 32, GxBounds(5) = 2.5d-1), single processor (final_time = 1d1, final_frame = 100), refined from x = 0.25 to 0.75.
* Multiple rays (2D), 2 processors (neighbor patch).
* Single ray (1D), single processor, 2 levels in middle-ish (child patch, MaxLevel = 1).
Result of refinement for optical depth
* Multiple rays (2D), single processor, 2 levels (child patch).
* Multiple rays (2D), multiple processors, 2 levels (neighbor(? - may need to force somehow) and child patches).
* Multiple rays (2D), multiple processors, 2 levels (neighbor and child patches), with domain boundary refined.
* Single ray (1D), single processor, for radiation pressure.
* Single ray (1D), single processor, for radiation pressure.
* Compare runs from combination test.
Comments: y and z directions are treated identically, so it's unnecessary to test both "2D" and "3D" cases (note that nDim is always set to 3 in global.data, resolution just set to 1 and size very small in "1D" and "2D" cases). Believe the above set should test all cases in each if statement.
Some working changes have been pushed.
Update 3/18
AMR line transfer
Jonathan and I worked out the remaining logic last week. Short summary of what we discussed here. Also includes some thoughts on spherical line transfer.
Current to-do list is on AMR_line_transfer_2 branch in linetransfer_control.f90. Will need to clean up git when it's ready.
Other projects
- Radiation pressure
- Needs comments, punching-up of how we address Cherenkov paper
- Charge exchange
- On debugging to-do list, for weird recombination(?) in bottom right hand corner
Update 3/4
Radiation Pressure
Final measurements made. Here are related plots:
During bubble-out portion
During blowback portion
Charge Exchange
Compiles, runs, and does something. Need to test it — possibly determine steady-state mixing ratio for some density? Also still seeing that excess neutral square behind the ablated planet material. It almost looks like the recombination shadow we see in the other simulations, but since we don't have any ionizing radiation I don't see what would maintain the completely ionized state outside that region (perhaps it's not actually complete?). Could also be from some mixing, or more time spent there by the stellar wind… thoughts?
Uses HD209458b parameters, as given in this post.
Initial state
Final state
AMR line transfer
Made good progress last Wednesday. Latest commit just has a short to-do list, mostly cleanup. Primary functional code left is implementing an MPI derived type for sends and receives of rays, and a custom scatter and gather (because of differing array sizes).
Update 2/18
Radiation Pressure Paper
Believe it's nearly done. Could use some help with the results comparison section and the punchiness of the conclusions, and there's one more measurement I need to make (will likely have to wait until after my qual).
Next Steps
- Finish AMR line transfer
- Believe I have a working algorithm, just need to finish implementing it
- Charge exchange
- Will run just stellar wind, no ionizing flux, to see effects of mixing only
- May be able to run later this week
- Think it would be useful to run HD209458b with just stellar wind as well as charge exchange, both for comparison with Cherenkov et al. and to separate the effects of each (under the assumption that John's results may not be representative of the results for the significantly different planet)
- What next? Spherical line transfer?
Update 1/31
Qual
- What should I be reviewing?
- What should I focus on in the brief (10 journal-style pages)?
- Should I try to work in all of the papers, tell the story so far in limited detail? Focus on just one?
Radiation pressure paper
- Sent an email around with information related to our previous discussion. I've begun incorporating some of the information where appropriate. Body of email copied below for reference.
- Could use some brainstorming on alternate ways to make the same point as these measurements:
- Comparing the average speed of a particle being significantly affected by radiation pressure to the escape speed of the system
- , , comparison (could also compare pressures, if I can figure out a good length scale to convert volumetric radiation force to radiation pressure)
Even using the high-memory nodes on the visual partition, VisIt either crashes (at end of trying to load Chombo) or hangs (while processing) when trying to make the necessary plot. Possible to load all of the VTKs created when saving 3D plot in python, maybe?
- Cherenkov et al 2017 ionization procedure:
- This is the entirety of what they say about their ionization procedure: “In the grey approximation, the last term in equation (6), the rate of photoionization, can be written in the form , where h is the Planck constant, σUV = 6.3 × 10−18 cm2 is the photoionization cross-section at the Lyman limit frequency ν0, FUV = F0 (apl2/l2) is the intensity of ionizing radiation at distance l from the star centre, F0 = 884 erg cm−2 s−1 is the radiation intensity at the planet orbital distance, apl, (Schneiter et al. 2016) and τ is the optical depth.”
- Sections 2.3 and 2.4 talk about the radiation transfer model they use, but only in the context of the radiation pressure (Lyman-alpha line). My assumption would be that they intend for this to extend to the ionizing radiation, but they never make this explicit.
- None of the previous studies that could reasonably be considered to be by their group use self-consistent ionization
- Launch conditions from Bourrier et al.
- Bourrier et al 2013 launch metaparticles of neutral hydrogen only, and stop tracking ionized hydrogen—this may have a significant effect on the dynamics, since much of what is being pushed on (indirectly) is ionized
- Their highest density is at launch radius, and is ~107 /cm3. Around the same location (Mach surface/Hill sphere at ~2.8 Rp), we have a total density of ~6x106 /cm3, with a neutral density of ~8.5x104 /cm3 (for no-flux simulation). So their optical depth to Lyman-alpha radiation is significantly higher.
- They say “the number of atoms in a meta-particle is calculated to keep a low value of the corresponding optical depth dτ in front of a fraction of the occulted stellar surface.” Unclear to me what exactly this means.
- Their metaparticles are launched randomly in every direction with thermal speed of 11000 K (much higher than our temperature at this point).
- HD 209458 vs. other stars' Lyman-alpha fluxes
- From Wood 2005, Lyman-alpha fluxes for other G0 V stars normalized to HD209458b orbital distance, in erg/s/cm2: 18344, 18955, 14374, 23836; HD209458 = 6409
- So it’s on the low side, by a factor of ~3
- Optical depth in wings (near planet)
- At 3 Rp in +y, 50 km/s ± 2km/s bin, optical depth of 1.66 (in high flux case)
- What happens as we transition between ionizing flux regimes?
- From Sec 5.3 of John's paper: While in E-limited, neutral fraction constant, density higher, so total neutral density (and therefore optical depth) higher. Crossing into R-limited, neutral fraction reduces as 1/F1/2, and density increases at the inverse rate, so optical depth becomes constant. At some point, wind may start turning around to create the swirly arms – at this point, optical depth should ~double from previous.
- Local ionization equilibrium
- Essentially maintained at 0.03 events/sec throughout wind, outside of small region - see attached VisIt plots (high side, high top, med side, med top, which plot the absolute value of RecombinationRate-IonizationRate (so they're a measure of the distance from ionization equilibrium)
- Effect of averaging over bubbling in high-flux case
- Very small effect, mostly deeper center transit in the phase where the wind is expanding out of the Roche lobe. See attenuation and observation comparisons.
- Plots of velocity, neutral density
- Final attached plot is neutral mass density with velocity contours plotted over. Contours are: blue, 1x105 cm/s; red, 5x105 cm/s; cyan, 1x106 cm/s; yellow, 5x106 cm/s; magenta (none present), 1x107 cm/s
Update 1/15
AMR line transfer
Making good progress. I believe I have the implementation almost completely defined, just remains to write some of the organizational code. The algorithm I have isn't as efficient as I'd like, but I haven't yet figured out a way around the limitations. Once I have a working prototype (end of the week?) it may be worth reviewing to see if there are any speedups or reduced memory usage possible.
In some searching, I also found what appears to be a decent spherical algorithm for ray tracing. It's an approximation method combining the long-characteristic and short-characteristic methods that was implemented for FLASH. I definitely think it's something we should consider for AstroBEAR (I haven't tried yet, of course, but I believe it's possible to implement it in our code).
Radiation pressure paper
Have looked at Luca's comments. The biggest is a paper by Cherenkov et al., who have done something similar but included the Doppler shift in the absorption coefficient. I can't tell how they calculate the optical depth for ionizing radiation. They also include the stellar wind and start with a much higher-temperature (~2x) and higher-density (~100x) planet. Their resolution is significantly smaller, though it changes in a way that's unclear (I believe they just use unevenly-spaced points) from the outer portion to the inner portion of the grid.
There are also a couple of comments on clarity that I could use another set of eyes on.
Finally, the measurements that I'm attempting to make keep crashing VisIt. I'm going to try yet another method this week.
New Year, New Update
Project Statuses
- Radiation Pressure
- Paper sent around to everyone (astrobear Overleaf account still on free plan)
- Luca's looked at it and made some small edits and some comments — haven't looked at any of them yet
- Two measurements still to make (I've commented at the location)
- Radiation pressure vs ram pressure vs thermal pressure at edge of wind (need to think about this one some more)
- Average speed of material absorbing significant amounts of flux (currently using between 100% and 1% of maximum radiation pressure as boundary of "significant")
- AMR line transfer
- Sketch of code written, significant modifications required
- Main focus for next couple of weeks
- Charge exchange
- Will run just stellar wind, no ionizing flux, to see effects of just mixing (can run this week)
- HD209458b
- Need to discuss at some point whether we want to do a paper on just the planetary wind
- High ionizing flux - effect on mass loss rate/wind structure
Charge Exchange
Update 12/17
Radiation Pressure Paper
Figures pretty much done. Need to put the medium flux and high flux average results side by side, and most could use some minor tweaking for presentation. Currently only using the streamline image for the high flux case, but may want to add at least radiation pressure (especially if it turns out that a lot of the absorption is happening in a fast-moving shell).
High flux results are as expected on average, but the results for the blowback phase are worrisome - could use a second opinion.
Bubbleout (245-290)
Full average (245-315)
Blowback (290-315)
Will have a first draft shared with everyone by end of day Friday.
Update 12/3
Radiation Pressure
Another 3 frames done. I have it running still, but if this is sufficient, I can stop it and start postprocessing so we can get the remaining plots for the paper.
Parameter space
Spent a good portion of last week retrieving data and making movies. Checking the proofs and sending back today - should be completely done by tomorrow evening.
Update 11/26
Parameter Space Paper
Submitted. Need to get password for one of macs to get data for movies to upload to YouTube. Also need to make list of people to send to.
Radiation Pressure
7 additional frames finished. VisIt is having problems drawing the Mach contour the first time (works on redraw) — any thoughts?
There may be a slight bulge starting at the planet again, but it's still too early to say definitively.
AMR line transfer
Jonathan and I had a productive meeting two Wednesdays ago. I should be able to sit down and get a functional version this week.
Project Statuses
- Radiation Pressure
- Outline of paper
- Need to make a few more plots for high Lyman flux case, once it's completed (early December?)
- Will address Eric's email, as well - measure speeds of blowoff at a variety of points along side and compare to energy requirements
- AMR line transfer
- Sketch of code written, significant modifications required
- Charge exchange
- Next will be stellar wind, no ionizing flux, to see effects of just mixing
- HD209458b
- High ionizing flux - effect on mass loss rate/wind structure
Update 11/12
Project Statuses
- Parameter space paper
- Ready to resubmit
- Need to retrieve data for some movies, then to be posted on YouTube
- Waiting on John to submit to arXiv
- Radiation Pressure
- Outline of paper
- Need to make plots as listed
- Need a few more frames of high flux - keep running out of memory, currently trying 8 GB/CPU
- HD209458b
- High ionizing flux got 7 frames in 5 days, so could probably see changes in ~1 month
- Charge exchange
- Believe I have stellar wind on the grid successfully
- Need to test charge exchange now
- AMR line transfer
- Sketch of code written (see previous blog post)
- Jonathan and I are going to discuss this week sometime
HD209458b
Here's frame 7 of the high ionizing flux run. You can see the hotter wind material bubbling out into the Hill sphere.
Charge Exchange
Stellar wind appears to be successfully on the grid.
Initial:
Final (link to movie):
Update 10/22
Parameter Space Paper
Just a few comments left. Copied from my email:
Places/comments that could still use some attention:
- General qualitativeness and informality (anything in particular stand out?)
- Where to discuss the appropriateness of the case B recombination assumption - in methods where we state the assumption, or later in the results/conclusions somewhere?
- I've added a few citations to John's paper. Further suggestions for places to add a reference, or more discussion (particularly in section 4.2), are welcome.
Response-only:
- How to respond to single-frequency suggestion (Just say we've considered it?)
- Square features in streak images from lack of velocity to convolve with noise
In addition to reviewer comments, I've updated the figures with new colorbar ranges that should highlight some of the features more clearly.
HD209458b synthetic observations
Still processing. Should have results for low and medium radiation pressure soon. High radiation pressure run is complete. Average observations over burp, non-burp times? I'll look to see what John did, as well.
HD209458b mass loss rate
High ionizing flux crashed with MPI_WAITANY error, at level 4 after a few time steps. First time this has happened (code is unchanged), so I've requeued it, but I'll also go see if I can find the cause. Unfortunately, the error message doesn't give a location of the call. Fortunately, we only have a few calls to MPI_WAITANY.
AMR line transfer
Have a maybe halfway there commit on new branch AMR_line_transfer. Here's the relevant code:
linetransfer_declarations
Ray type and linked list of rays. Ray may need a few more data structures inside.
type RayDef integer :: sendRequest, recvRequest real(kind=qPrec) :: currentIonizingTau, currentIonizingFlux, currentLymanTau, currentLymanFlux type(InfoDef), pointer :: info integer :: localCoord(nDim), level type(RayDef), pointer :: next end type type RayList sequence type(RayDef), pointer :: self type(RayList), pointer :: next end type
linetransfer_control
Truncated code for integration along ray, only change is we don't have to hack q from the layout data any more.
type(infodef), pointer :: info type(RayList) :: rayList type(RayDef), pointer :: ray !!! Still only want to do the calculation once, after each hydro update is complete IF (n < FinestLevel) then linetransfer_iters = 0 SubcyclingReason = 'N' RETURN end if call StartTimer(iLineTransferTimer,n) ! Convert total to internal energy on all levels CALL ConvertLevelsTotalToInternalEnergy dt=levels(n)%dt tnow=levels(n)%tnow tfinal=tnow+dt linetransfer_iters = 0 DO WHILE (tnow < tfinal) rates = 0d0 ! Set info to default values if (lt_iF /= 0) info%q(:,:,:,iFlux) = 0d0 if (lt_iD /= 0) info%q(:,:,:,iDepth) = 230d0 if (lt_iFa /= 0) info%q(:,:,:,iFlux_a) = 0d0 if (lt_iDa /= 0) info%q(:,:,:,iDepth_a) = 230d0 !!!!!!! Things to think about with sends/receives: !!!! Should tag each ray individually (related to position on left boundary; corrections for split and joined rays?) !!!! When crossing child patch, can't continue on parent until we've received the ray back from child !!!! How and when can we collect the rays from finer grids? !!!! When can we distribute the rays to coarser grids? !!! Nodelist is local, right? And if a processor has a parent and child, can it communicate the ray without MPI? ray=>rayList%self ! Head of linked list for this processor DO n=0,MaxLevel nodelist=>Nodes(n)%p DO WHILE (ASSOCIATED(nodelist)) info=>nodelist%self%info ! info points to current patch info ! Loop over left boundary of current patch do j = 1,info%mx(2,2) do k = 1,info%mx(3,2) if (n == 0 .and. left boundary == xmin) then ! If we're on domain boundary at root level, set ray to boundary conditions ray%level = n ray%currentIonizingTau = 0 ray%currentIonizingFlux = IonizingFlux ray%info=>nodelist%self%info !!! ray%info now points permanently to the correct patch info? ray%localCoord = (/1,j,k/) ! zone index for local patch else if (info%childmask(0,j,k) == -1) then ! If we're a finer grid, receive ray from parent and divide call mpi_irecv(receivedRay, 1, mpi_defined_type, parent, linetransfer_tag, mpi_comm_world, recvRequests(parent)) ! Receive ray from parent !!! Define a ray type for mpi communication? Only need tau and flux; where is processor of parent stored? !!! but this can only actually be done once ray is received... so move it to processing loop, and need to process rays based on origin rayNum = 1 ! Divide ray from parent across appropriate cells do while (rayNum <= 4) ray%level = n ray%currentIonizingTau = receivedRay%currentIonizingTau ray%currentIonizingFlux = receivedRay%currentIonizingFlux/4d0 ray%info=>nodelist%self%info ray%localCoord = (/1/) !!! not sure how to set this one yet if (rayNum < 4) rayList=>rayList%next rayNum = rayNum + 1 end do else if (info%childmask(0,j,k) > 0 .or. info%childmask(0,j,k) == neighborchild) then ! if we're on a coarser grid not at domain boundary or patch boundary, do nothing !!! How is neighborchild set? It's not a parameter... else call mpi_irecv(ray, 1, mpi_defined_type, neighbor, linetransfer_tag, mpi_comm_world, recvRequests(neighbor)) ! Receive ray from neighbor !!! Define a ray type for mpi communication? Also probably need an array of requests, rather than storing them in the individual rays, so we don't have to iterate through the list to check them all... ray%level = n ray%info=>nodelist%self%info ray%localCoord = (/1/) !!! not sure how to set this one yet end if end if rayList=>rayList%next end do end do nodelist=>nodelist%next end do end do !!! This will return to head of list, right? ray=>rayList%self do while (associated(rayList)) if (ray%currentIonizingFlux /= IonizingFlux) call mpi_waitany(recvCount, recvRequests, indx, mpi_status_ignore) !!! wait for new ray if we're not on the left boundary of domain info=>ray%info do i = 1,info%mx(1,2) j = ray%localCoord(2) k = ray%localCoord(3) if (i == info%mx(1,2)) then ! If we're at right boundary of current patch if (info%childmask(i,j,k) == 0 .or. info%childmask(i,j,k) == neighborchild) then call mpi_isend(ray, 1, mpi_defined_type, neighbor, linetransfer_tag, mpi_comm_world, sendRequests(neighbor)) ! Send to neighbor else !!! Need to sum appropriate rays here - mpi_reduce? Except collectives are blocking, so we'd never get to another ray to do the sum... so need a conditional to test when we're ready to send a ray to parent call mpi_isend(ray, 1, mpi_defined_type, parent, linetransfer_tag, mpi_comm_world, sendRequests(parent)) ! Send to parent end if else if (info%childmask(i,j,k) > 0) then call mpi_isend(ray, 1, mpi_defined_type, child, linetransfer_tag, mpi_comm_world, sendRequests(child)) ! Send to child do i = i,info%mx(1,2) !!! I think this will do what I intend... but not certain yet if (info%childmask(i,j,k) < 0 .and. .not. neighborchild) then call mpi_irecv(ray, 1, mpi_defined_type, child, linetransfer_tag, mpi_comm_world, sendRequests(child)) ! Receive from child exit ! Return to outer loop at new location !!! Need to wait to receive summed rays from child before we can continue along this ray... end if end do else !!! can break this back into subroutine(s) ! Goal is to take input flux and integrate equations across grid to find ionization rate and heating rate ! Flux has units of number per area per time in computational units ! Data has computational units of the density of neutral hydrogen, ionized hydrogen, ionization rate, and heating rate q=>info%q(i,j,k,:) ! Calculate radiative transfer of ionizing flux ..... ! Calculate radiative transfer of Lyman-alpha flux ..... !!! Could do all of this as array operations instead of zone by zone - probably more efficient? ! Adjust heating and cooling rates if they exist ..... ! Recombination ..... ! Recombination cooling ..... ! Lyman alpha cooling ..... ! Charge exchange ..... !Update minimum time step by looking at rate of energy, neutral, and ionized species ..... end if end if end do rayList=>rayList%next end do #if defined _MPI CALL MPI_ALLREDUCE(MPI_IN_PLACE, dt, 1, MPI_DOUBLE_PRECISION, MPI_MIN, MPI_COMM_WORLD, iErr) #endif dt=min(dt,tfinal-tnow) IF (dt == 0d0) THEN WRITE(*,*) 'dt = ', dt, tnow, tfinal STOP END IF linetransfer_iters=linetransfer_iters + 1 tnow=tnow+dt call mpi_waitall(sendCount, sendRequests, mpi_statuses_ignore) !!! wait for all sends after we've finished the rays that we needed to receive END DO
Update 10/15
Parameter space paper
Spent most of last week working on this. Fixed the issue where the colormap wasn't clipping at the lowest value (interpolation gives NaNs beyond range). Need to figure out the best new range still, but here's a preview:
Also made a number of edits, and a few places still to work on. Would like to have it resubmitted by end of next week (proposals are all due this week, I believe?).
HD209458b
Synthetic observations aren't promising here. We're using up to about half the flux reported in the literature, which would probably up the mass loss rate by a factor of ~1.9 (to about 1010, still a little on the low side).
Radiation Pressure
High Flux
We get the same sort of burping John sees in his medium-wind case.
Med Flux (Actual HD209458b Lyman-alpha Flux)
Very subtle widening of the arms, due to some material being pushed radially outward.
Low Flux
Even more subtle widening, very similar to medium flux.
Medium and low flux appear to be pretty much steady-state. Probably don't need to get more frames - doesn't look like there'll be much change to average out. All three still queued on Stampede, but we're pretty low on time now. Satisfactory to make synthetic observations?
Update 10/8
Radiation Pressure
Runs on Stampede2:
Running on 128 nodes (6144 cores), we currently (frame 211) have an efficiency of 13% hydro, 38% line transfer (including layout communications), 52% total. Estimated completion 2.9 days. This is down from 23%, 54%, 76% at frame 203 with estimated completion in 1.5 days, where the current run started. Reduced estimated wall time by a factor of ~10. Produced 8 frames in the last 6 hours.
Max speeds are only on the order of 10s, and haven't changed significantly in current run (nor has dt). Here are some comparisons of the mesh:
Frame 180 (pre-radiation pressure):
Frame 203:
Frame 211:
So it's definitely related to increased resolution due to disturbance by the radiation pressure, which should settle down eventually.
Pseudocode for AMR line transfer:
Start line transfer if (processor at -x boundary) calculate radiative transfer (to child boundaries?) ! only actually needs to be calculated on finest grid if (hasChildren) prolongate at boundaries and send to child ! somehow need to be traveling along the ray while we do this, so that we encounter children in order (so that prolongation and restriction are correct) end if send ray to neighbor else receive from neighbor calculate radiative transfer if (hasChildren) prolongate at boundaries end if if (not at +x boundary) send to neighbor end if end if
Related: Have we ever thought about using the MPI distributed graph routines to keep track of neighbors?
HD209458b
Discovered that there's something incorrect about the stellar size output by the code (because it's still set by the stellar lambda, since it's not needed on the grid). Rerunning postprocessing on BlueHive, should have some new results tomorrow morning.
Update 10/1
Radiation Pressure
Stampede is working now, even without increasing request descriptors, because it's running much more slowly, as Baowei was finding (~1 month to get to 300 frames). I think it's time to tackle AMR line transfer.
Also, we could theoretically run on BlueHive. Based on the new speed on Stampede, though, it would take months to complete a run.
HD209458b
Some very interesting results from the synthetic observations. Very little variation over time, as expected from looking at the simulation.
Here's the highlight:
We see significant symmetric absorption in the blue and red wings during transit (but not much before or after). Perhaps worth investigating a finer time series of these.
Update 9/24
Radiation pressure
Communicating with TACC about missing tmi fabric. While loop appears to be working (should be blocking, but it's hard to tell when it immediately errors…), so should be working once the execution problem is straightened out.
BlueHive predicts 2.3 years, before being killed (due to long timestep), so it's not going to be effective to run even with a large reservation.
HD209458b short paper
Postprocessing of HD209458b run in progress. I'll finish some of the analysis in the next few days. Things to look at right now:
- Tau/xi terms (ratios of dimensionless Coriolis, tidal, wind accelerations)
- Regimes (should be energy-limited; probably type II from Matsakos?)
- Velocities and densities along sub-/anti-stellar ray, with markers for sonic and Hill radius (Coriolis?)
- Synthetic observations - high v?
- Compare all of these with most similar (high mass, low flux) planet from parameter space paper
Update 9/17
Radiation Pressure
No real progress to report, other than that stampede is beginning to test my patience. But I believe I've solved all of the problems (except the MPI issue - more below), so we should at least start getting some frames.
MPI issues
Located all of our calls to IRECV and ISEND, and all matching WAITs are there. No MPI errors are going ignored. Is there anything else we can do to be convinced that the problem's not on our end? (Here's one example of a case where irecv is called by RECV, which could potentially cause the issues we're seeing but not be anything we can affect).
I've found the environment variable that controls the request descriptors (not sure why I couldn't find it before, but I distinctly remember not being able to set it), and upped it to 1014, so hopefully that will be sufficient to allow us to run for the full two days we're allowed.
HD209458b ionizing flux only
Got some analysis done here. Mass loss rates are about an order of magnitude lower, which is to be expected given the tighter binding of the atmosphere.
Mass loss rate: ~5.3x109 g/s
It is (almost?) just Roche lobe overflow. Here's the Hill sphere (in red) overlaid on the wind, with contours of the dimensionless Coriolis length.
MHD planets
Here's the global steady state.
Global simulations are actually much worse than local. The run stalls out after 6 frames. Running for 2 more days, we get three more frames; here's the last one output:
Stellar wind implementation
I have a Matlab script that's solving for the (radial) velocity, pressure, and density of a pseudo-stellar wind with adiabatic gamma. I have noticed a couple of odd jumps that seem to be artifacts of the numerical solver, however. Also, I can't solve for any points inside the reference radius. This seems like a Matlab (or, specifically, vpasolve) limitation, but I haven't looked into other numerical methods in Matlab or otherwise. I've attached a sample solution file.
Current list
I'll just keep this as a running tally, to keep us all organized a bit:
To Do
- Continue radiation pressure runs
- MHD planet runs (use the larger local runs as good-enough?)
- Invert subcycling for line transfer
- Add MHD to line transfer run
- Test John’s stellar wind for charge exchange
- Test charge exchange
- Run charge exchange
- Development for AMR line transfer/point source line transfer
- Development for metastable He
Complete
Debug MPI issue on stampede (ish)
Set up global MHD run (w/ stellar wind)
Update 9/10
Project/To-Do List
- Radiation pressure
- Run high/med/low flux
- Debug MPI issue (using too many descriptors)
- MHD planets
- Fill parameter space
- Add fields to parameter space run
- Charge exchange
- Get initial conditions working (stellar wind without charge exchange populations)
- Test charge exchange (have an attempt to compare to Christie et al [with fixed boundary code, though] - any other ways?)
- Run (with suite of stellar wind strengths as in John's paper, perhaps? Should maybe look at what's predicted to affect the efficacy of charge exchange)
MHD planets
Refer to Jonathan's page for simulation parameters.
Using box of effective resolution 5123 for size (1 CU)3, with sphere of radius 0.25 CU forced to be resolved to level 1 (so it's equivalent to Jonathan's previous runs). Currently running corotating sims (do we want non-rotating as well?). Beta of 0.1 corresponds to surface magnetic field of 0.23 G.
Corotating
theta \ beta | 10 | 1 | 0.1 |
0 | 224 | — | 208 |
45 | — | — | — |
90 | — | — | — |
Have hydro steady state:
Also have a late state of the beta=0.1 run. May actually be a couple of frames too long, with some of the field lines being distorted down-orbit by stellar wind/planetary wind interactions? Running time is increasing, but only 4 days remaining when I restart (worth trying to get a few more frames?).
Beta = 10 run hit a wall at frame 224 - 1.9 months remaining.
Radiation Pressure
Run with no radiation pressure appears to have reached steady state. Actually not too different from frame 180 where radiation pressure is introduced in new runs.
Have a couple of frames from the high flux and medium flux cases. Just had stampede queue access restored, so will be restarting them.
High
Med
Debugging
Fixed makefile issue for debugging on stampede. Now that I have queue access again, should be able to use DDT to see if there's a leaky thread somewhere.
Radiation pressure calculation
Current calculation
Here I'm attempting to add the effects of ablation (more energy is absorbed by the layers being blown off than is required to unbind them), as well as the nonzero width of the bound torus (the gas at the inner edge of the torus will be more tightly bound than the gas at the orbital distance).
See these movies for some physical intuition. Note the steady state reached by the first - I've approximated this as two nested parabolas for the calculation.
Other approaches
Ruth's 2009 paper shows that radiation pressure alone would be insufficient to produce the mass loss rate determined by observations. Since this calculation is concerned primarily with ablation of the planet itself, and assumes a priori that radiation pressure can accelerate planetary hydrogen to the orbital velocity, I'm not sure it's relevant to our current situation.
Shaikhislamov et al. used the reconstructed Lyman-
flux of ~1014 phot/cm2/s to calculate the pressure applied to the planetary wind: barye, which is about 2 orders of magnitude less than the pressure from their stellar wind (so they argue it's appropriate to neglect). Our torus is supported by a thermal pressure of ~8x10-7 barye, and a ram pressure (in the x direction) of ~10-11 barye (so insignificant compared to the thermal pressure).Radiation pressure initial steady-state status
Slowly-ramping (full flux around frame 80)
Quickly-ramping (full flux around frame 20)
As a reminder, here are the parameters for the planet:
Simulation domain: 20 R_p cube (0.0146 AU)
rho_p = 1.625d-15 g/cm3
T_p = 3000 K (not really important as long as wind gets hotter - T_wind should be >5300 K for this planet)
M_p = 0.73 MJ
R_p = 1.529 RJ
a = 65 R_p = 0.0475 AU
M_s = 1.23 MS (for tidal forces)
F_UV = 2d13 phot/cm2/s (Sun-like for orbital radius)
F_Ly-alpha = 4.1d14 phot/cm2/s, 4.1d15 phot/cm2/s, 4.1d13 phot/cm2/s (HD209458b flux, 10x, 1/10x - would it be better to do 5x and 1/5x?) (ramping up in approximately 1.5 CT, or 1/6 orbit)
Update 7/31
- Need to move out of 476 for a week or two. What should we do with computers/where should we store miscellany?
- Parameter space paper essentially done. If we want input from Ruth, we should set up a time to talk with her. I'll give it a final once-over, then submit.
- First cut of intro and methods for radiation pressure paper. Introduction may need to go a little deeper into a discussion of the wind itself - could use some input here. Also, I've pulled most of the methods from the parameter space paper.
- HD209458b status: These two frames compare almost the same amount of physical time:
The wind is building much more slowly. Based on Owen & Alvarez 2015, we're well into the cooling-limited regime here. This seems relatively borne out by the heating and cooling happening:
Doing a calculation similar to that for the radiation pressure blowoff (but I believe more accurate - fewer unknown factors here), without cooling, we would expect the mass between the ambient and Rp to be completely unbound in Louden et al. reconstructed a lower total ionizing flux (a factor of ½) than we're using, but we could increase the flux to get a stronger wind.
CT ([min flux, med flux, max flux]), compared to CT for our heavier parameter space planet (which is on the high side, but not too far off - plus, we're not launching all of the mass considered here). This suggests it will take ~50x longer to launch the wind with HD209458 There's no explicit dependence on planet radius, but changing the radius also changes the density (which is why these differ, in addition to the additional planet mass).- I believe charge exchange should be working now, with the stellar wind also implemented as required. I have the stellar wind set to maintain in the -x, y boundaries (y because there's the rotational component of the interaction). Waiting for the most recent test to start (requires more RAM than available on debug partition).
To Do
- Still contemplating the blowoff threshold. Eric has suggested cooling as a possible mechanism; I'd also like to include some sort of ablation, since the outside layers can absorb a lot more energy than required to unbind them before they're no longer shielding the inner gas (this is partially because we assume the gas absorbs at line center, no matter its radial velocity - this may be more important than we were initially thinking).
- Finalize charge exchange. Will test against analytic 1D solution; anything else we can test against?
- Continue HD209458b radiation pressure.
Update 6/4
Radiation Pressure
Still looking ok at 16 frames.
I've attached a Mathematica file with calculations for the balance point in terms of various quantities. The most questionable approximation, I believe, is that of constant density (although the radiation pressure isn't actually pushing on all of the material, I expect the momentum to transfer between the leading edge and the rest of the wind as they collide). With current parameters, the balance point is calculated to be about 1012 phot/cm2/s.
Flares
Clearly one hour at 100x steady flux is too strong of a flare. Luca's suggested 40 minutes might be a more reasonable time, and I can turn it down, as well.
Update 5/14
HD209458b Lyman-alpha flux
Got a response from Luca - the most accurate number for the Lyman-alpha flux at HD209458b's distance is 4.1x1014 photons/cm2/s (6.7x103 ergs/cm2/s) (Wood et al., table 3). So our flux here is about a factor of 2 lower than what is experienced by HD209458b.
Flares
Flare test running on stampede. Using Run 2 with flare parameters of:
Flare duration | 1 hour (0.12 CT) |
Flare strength | 10x |
Flare time (peak) | 15.5 CT |
Final time | 17 CT |
Should be about 16 hours to run once I have it working.
Paper
Going through and editing, putting in references. Should be done by the end of the day - finished with introduction and methods.
Archiving old data
afrank_lab full- Baowei, any progress on moving the tarballs?
Update 4/30 (Radiation Pressure)
WASP-12b paper accepted - will be posting to ArXiv today.
Radiation pressure:
All of the following are in computational units:
For
and , white is .
Cross-cut
Ly- flux for HD209458b
From here (Bourrier & Lecavalier des Etangs 2013), flux peaks at J = ~28x10-14 erg cm-2 s-1 AU-1.
Converting to photons cm-2 s-1,
Which is 3 orders of magnitude less than the maximum flux in our simulation. If instead it should be scaled to the orbital radius (0.04747 AU, not 1 AU), that reduces it to 1.2x1010.
Timescale for blowoff vs. replenshiment
Assume torus of axis
AU, radius of cm, and uniform density g/cm3. Given the mass loss rate of the planet, the timescale for replenishment is:s
The timescale for blowoff is dependent upon the gravitational binding energy and the energy deposited by photons on the edge of the torus per unit time:
erg
erg/s
s
Update 4/16
Paper
- Run5 done:
- Non-rotating results and rotating run 1 results done. Need to discuss 2 further and write about 5 and 6.
- Want to get a good start on the discussion this week. Any sections I'm missing from the current outline?
Radiation Pressure
- 2d14 almost done. 2d15 crashed - I suspect everything's just been violently blown away, but VisIt keeps crashing every time I try to make visualizations of these. I'll try to figure that out this afternoon.
Update 3/26
Submitted WASP-12b revision.
Parameter space paper coming along. What still needs work:
- Intro: Have a sketch, but still needs citations and probably needs to be filled out more.
- Methods: Regime (Energy vs cooling limited)
- Discussion: Have an outline. Anything else that stands out from the figures?
Run6 for paper stalled, Run5 almost done.
Radiation Pressure
The higher-flux run looks good. Switched from plotting X to plotting 1-X, so log plots now work well (also changed this in the figures for the paper).
2d14, top
2d14, side
2d14, force comparisons
2d15, top
2d15, side
2d15, force comparisons
Radiation Pressure Testing
Comparisons of force from radiation pressure and magnitude of gradient of thermal pressure, and magnitude of gradient of ram pressure (not actually a force, doesn't seem useful for comparison):
Comparisons of ambient pressures in frame 150 and frame 151. Here is where the problem lies - ambient pressure is increasing due to OUTFLOW_WIND boundary conditions being set in a different way than before. This disrupts the steady state and masks the effect of radiation pressure on the stellar side of the wind.
Neutral fraction, temperature, density, and
, which is dependent on these. At edge of wind, between ~4 and 5, the temperature drops and the neutral fraction increases enough that most of the Lyman-alpha radiation is absorbed near the edge.Update 3/15
Exoplanets II abstract:
Using AstroBEAR, a 3D MHD fluid dynamics simulation code, we have developed a new platform on which to study the dynamics of planetary winds, including a variety of microphysics such as ionization heating, radiation pressure, and charge exchange. We will present the results of a study of the effects of planet mass and stellar flux on the structure of hot Jupiter winds, as well as changes to this structure that result from introducing radiation pressure.
WASP-12b paper sent out to authors for review of referee response.
Parameter space paper coming along. First cut of methods done, with a start on results. How much repetition is appropriate for figure captions/commentary? Intro is next on list of things to write.
Related, running out of space on BlueHive again. My personal quotas are full on BlueStreak (could request more - only have 200 GB here), BlueHive, and Stampede, and afrank_lab is full on BlueHive. We could back up and remove all but the final frames of the four low-flux cases (do we need the low-flux, high-density, low-pressure test for anything?).
On the simulations, the low-pressure ambient test for Run5 is proceeding nicely. The low-pressure ambient tests are running significantly faster than the higher-pressure ones - something to keep in mind when designing future planet simulations.
LyAlphaFlux = 0
This seems to indicate a problem. Running a couple of tests indicates that there's no radiation pressure in the first dozen or so steps, and the flux is zero throughout the grid, so it may just be that we haven't reached a steady state yet in Run2 (on further consideration, though, this doesn't seem likely to be the case - Run2 looks very stable between frames ~120 and 150, at least).
Two possible tests spring to mind - let test run go further with debug output in the line transfer routines, or run Run2 further with iLineTransfer=1, see if the same thing occurs. Some minor parts (that shouldn't matter on a restart) were changed between the original run and the radiation pressure run, primarily the number of zones between the outer boundary and the zero radius.
Radiation Pressure, Run2, top
Radiation Pressure, Run2, side
Planet Updates 3/13
Planet density comparisons
Go here for gif/stills; test2_side and test2_top are the final frames acquired (frame 97)(the GIFs don't make it there).
2c max ram pressure @ 1.5 Rp, frame 65 = 1.74x10-4
2c max ram pressure @ 1.5 Rp, frame 20 = 1.04x10-4
2c initial ambient pressure = 3.9x10-8
2 max ram pressure @ 1.5 Rp, tfinal = 8.375x10-4
2 max ram pressure @ 1.5 Rp, frame 98 = 7.77x10-4
2 max ram pressure @ 1.5 Rp, frame 65 = 8.47x10-5
2 max ram pressure @ 1.5 Rp, frame 20 = 2.7x10-5
2 initial ambient pressure = 1.7x10-8
Note that the original Run2 didn't have any buffer zones (pressure matching was essentially right at the outer boundary), which is why the ambient pressure is lower.
Update 3/6
Updated WASP-12b paper to address referee concerns. Should new figure be included in the paper, or just the referee response?
Updated summary post with run statuses.
Started parameter space paper.
Radiation pressure:
Planet Status
Blog post summarizing everything working so far for the parameter space study.
x10 flux
2x1017 flux (high)
Instead of using theoretical calculation, used theoretical relationship for 1D run - so upped planet density by only 2 orders of magnitude. Looks pretty good.
Radiation Pressure
This was before implementing ramping, without setting up the steady state wind first. Currently working on running from frame 150 of Run2 with ramping of the Lyman-alpha flux.
Update 2/19
Blog post summarizing everything working so far for the parameter space study.
Fixed bug in WASP-12 run - needs to restart from frame 10.
Highest-flux case working, but not launching wind. I expect the problem is resolving the ionization front:
Run1 flux, for comparison
Run3 flux
Run3 Lyman-alpha cooling
Run3 ionization heating
Run1 Lyman-alpha cooling
Run1 ionization heating
Finally, streak images are inverted:
Just invert Y-axis in matlab?
Update 2/12
Simulations
Blog post summarizing everything working so far for the parameter space study.
Started test of radiation pressure run - first few steps are struggling (pressure protections and high CFL). Once VisIt is done with mass-loss rates, will be able to see what's up.
WASP-12 run is at frame 116. Need to look at output - console only has level 0, but when I checked previously the planet was resolved at level 2. Also, execution time shot up at frame 116.
Last but certainly not least, adding a tracer to the ambient and stopping recombination for ambient material seems to be working fairly well at solving that problem (first frame in short time, no recombination in ambient yet), but the execution time still shot up - only got 3.5 frames in 5 days. Again, once VisIt is free I'll be able to take a look at the problem.
Simulation Movie Summary
Physical Parameters
1.32443x10-16 g/cc | |
1.350 Msun | |
(0.04747, 0, 0) AU | |
1.95 rad/day | |
lRotate | T |
lStellarGravity | T |
Simulation Parameters
BaseRes | (80,80,80) |
MaxLevel | 3 |
Zones/RP | ~27 |
Extent | (37, -10, -10, 57, 10, 10) |
Physical Extent | (5.55x1011, -1.5x1011, -1.5x1011, 8.55x1011, 1.5x1011, 1.5x1011) cm |
TimeScale | ~8.3 hours |
lScale | 1.5x1010 cm |
lScale = RP
rhoScale = rhoP
Run # | MP (MJ) | Flux (phot/cm2/s) | Status |
1 | 0.07 | 2x1013 | Complete |
2 | 0.263435 | 2x1013 | Complete |
2b | 0.263435 | 2x1013 | Running, frame 70 |
3 | 0.263435 | 2x1017 | |
4 | 0.07 | 2x1017 | |
5 | 0.07 | 2x1014 | Running, frame 22 |
6 | 0.263435 | 2x1014 | Running, frame 66 |
7 | 0.07 | 1x1015 | |
8 | 0.263435 | 1x1015 |
2b is higher-density planet surface with low flux.
Movies
noRot, Run 1 (side view)
noRot, Run 2 (side view)
Rot, Run 1 (top view)
Rot, Run 1 (side view)
Rot, Run2 (top view)
Rot, Run2 (side view)
Mass Loss Rates
noRot, Run 2 mass loss
noRot, Run 1 mass loss
Rot, Run 1 mass loss
Streak Streamline Images
Run1
Run2
Planet Closeups (top views)
Run1
Run2
Update 2/5
Simulation Status
WASP-12b, w/ stellar rotation | |
Running | 75/150 frames complete, ~3.5 days remaining |
Rotating Frame | |||
Run # | MP (MJ) | Flux (phot/cm2/s) | Status |
1 | 0.07 | 2x1013 | Complete |
2 | 0.263435 | 2x1013 | Complete |
3 | 0.263435 | 2x1017 | Unqueued |
4 | 0.07 | 2x1017 | Unqueued |
Non-rotating Frame | |||
Run # | MP (MJ) | Flux (phot/cm2/s) | Status |
1 | 0.07 | 2x1013 | Complete |
2 | 0.263435 | 2x1013 | Complete |
3 | 0.263435 | 2x1017 | Unqueued |
4 | 0.07 | 2x1017 | Unqueued |
Run 3 testing
Looks like we need to take a different tack. The ambient is still ionizing too quickly and creating a shield in front of the planet. Lowering the flux (and therefore the density requirements) is one option - to get an idea of how much, look at the recombination timescale:
For
(one unit of time), need ~5x10-15 g/cm3 of (fully ionized) hydrogen. With a flux of 2x1017, the ambient medium is at about 10-14 g/cm3. So reducing just one order of magnitude, to a flux of 2x1016, may be sufficient to solve the ambient recombination problem, since it would increase the recombination timescale to about 10x the simulation timescale.Another option is to consider other adjustments to the ambient profile. If we were able to start the exponential profile farther in and still get a sufficiently low density at around Rp, that seems like a good option, but I can't seem to fiddle the profile into such a shape.
Run2 side view
Run2 top view
Other analysis products?
- Movies (as above)
- JC’s streak images that show flow pattern?
- Total Mass loss rates
- Back flow rates?
- Observations of the kind in Carroll-Nellenback ea 2016?
Update 1/22
Simulation Status
WASP-12b, w/ stellar rotation |
Running (Baowei) |
Rotating Frame | |||
Run # | MP (MJ) | Flux (phot/cm2/s) | Status |
1 | 0.07 | 2x1013 | Complete |
2 | 0.263435 | 2x1013 | Complete |
3 | 0.263435 | 2x1017 | Unqueued |
4 | 0.07 | 2x1017 | Testing |
Non-rotating Frame | |||
Run # | MP (MJ) | Flux (phot/cm2/s) | Status |
1 | 0.07 | 2x1013 | Complete |
2 | 0.263435 | 2x1013 | Complete |
3 | 0.263435 | 2x1017 | Unqueued |
4 | 0.07 | 2x1017 | Unqueued |
Attempting to run Run4 until transients die down. After 20 hours, timestep is still about 1x10-7 - doesn't look like it's going to be successful. It's almost certainly related to the high ambient temperature of ~1013 K (not sure how much the transient flows are important in the final analysis - sound speed is very high).
Could try lowering density ratio based on recombination timescale (make sure it's large). Could also up resolution so planet gets closer to zero density, but this wouldn't be particularly effective in saving computational time (because of line transfer step - planet itself is only small fraction of grid, so high resolution hydro there is not a problem - which brings an idea - limit line transfer to something higher than max level?).
Movies in progress for corotating Run2.
Radiation pressure
Merged charge exchange and radiation pressure into local line_transfer branch. Need to test to make sure merge was successful, then can queue radiation pressure version of Run2.
WASP-12b Hill vs. bow shock radii
Using Matlab script for planetary parameters, we would need a stellar wind density (at base) of about the same as the planetary wind density:
with
Flux to ionize Jupiter
An O-type star would need to provide about 1.2x1038 ionizing photons per second to a planet at Jupiter's orbit for the equivalent flux. An O star actually provides about 1050 phot/s, resulting in a flux of 1.3x1021 phot/s/cm2 (or about 4 orders of magnitude more than our high-flux case above).
Update 1/11
Referee report, WASP-12 paper
Moderate revision - only one real concern, that being the effect of stellar rotation on the stellar wind-planet wind interaction. Eric's comment that "If the result depended on the distribution of mass around the planet, then the point of the referee would lead to very important differences" is accurate, I think, and I do believe that's what we were attempting to get across in that section - so we could either revise that section for clarity, or we could run a new simulation (already set up) where the stellar rotation rate isn't locked to the orbital rotation rate.
The other concern was Fig 2, the 3D rendering. I feel it adds something, but I'm not sure I can make a strong argument for its continued inclusion.
Simulation Status
Rotating Frame | |||
Run # | MP (MJ) | Flux (phot/cm2/s) | Status |
1 | 0.07 | 2x1013 | Complete |
2 | 0.263435 | 2x1013 | 111 frames complete |
3 | 0.263435 | 2x1017 | 5 frames complete |
4 | 0.07 | 2x1017 | Unqueued |
Non-rotating Frame | |||
Run # | MP (MJ) | Flux (phot/cm2/s) | Status |
1 | 0.07 | 2x1013 | Complete |
2 | 0.263435 | 2x1013 | Complete |
3 | 0.263435 | 2x1017 | Unqueued |
4 | 0.07 | 2x1017 | Unqueued |
I plan to prioritize finishing rot_Run2 over the weekend (Jonathan - change frame numbers before restart?).
Now that I've looked at a few frames of Run3, the problem is apparent. The ambient medium is too dense, so no flux is making it to the planet. I believe there's a quick fix for this (extend the planet profile a bit farther, so that we get closer to zero density at the pressure-matching condition), although it may require upping the resolution at the outer boundary as well.
I do have movies for rot_run1 and noRot_run1/run2:
Rot, Run 1 (side view)
Rot, Run 1 (top view)
noRot, Run 1 (side view)
noRot, Run 2 (side view)
Rad transfer module test
Re-running the ionization-only, radiation pressure-only, and combined tests, they look good. The secondary effects in the ionization-only test are pretty strong still, but in general it appears to act like we expect. In the combined test, the effects of ionization dominate radiation pressure at the current fluxes (2x1013 ionizing flux, 5x1013 Lyman-alpha flux), but you can still see the effects of radiation pressure (particularly after the clump has been blown away).
Rad press only | Ion only |
Combined |
Fellowships
NESSF - not sure about my chances, but worth applying? Mostly not sure how strong of a proposal I can write.
Update 1/4
Simulation Status
Rotating Frame | |||
Run # | MP (MJ) | Flux (phot/cm2/s) | Status |
1 | 0.07 | 2x1013 | Complete |
2 | 0.263435 | 2x1013 | 111 frames complete |
3 | 0.263435 | 2x1017 | Unqueued |
4 | 0.07 | 2x1017 | Unqueued |
Non-rotating Frame | |||
Run # | MP (MJ) | Flux (phot/cm2/s) | Status |
1 | 0.07 | 2x1013 | Complete |
2 | 0.263435 | 2x1013 | 112 frames complete |
3 | 0.263435 | 2x1017 | Unqueued |
4 | 0.07 | 2x1017 | Unqueued |
Still need to look at 3&4 - I suspect the excessive cooling is related to the higher density in those runs, though.
Rad transfer module test
I've fixed the bug causing the 1D ionization test to fail:
However, the bug was such that it wouldn't have affected the clump test - and in fact the tests are identical pre- and post-fix:
Simulation Update
- Ionization-only test: Matches exactly the results from our original ionization tests (way back when) up to the final frame at 4ish hours (~0.205 time units). Since this simulation is running in 3D, it doesn't go as far as the potentially troublesome simulation, but I think it's safe to go back to 2D.
The long term behavior still appears to not be what we expect — given the behavior of the 1D simulation (see below), it may be due to a higher flux than expected being used.
1D test: With the HotJupiter branch line transfer module, we get a stable ionization equilibrium (did rerun to make sure none of the parameters had been changed). With the radiation pressure implemented, the ionization front moves across the simulation domain to the right, indicating something incorrect happening. However, the momentum is a constant 0, so it doesn't appear to be radiation pressure-related.
- Investigated neutral tail coming from the first planet. Velocity vectors show it's originating almost entirely well outside of the planet boundary.
- Have simulations queued for parameter space. For production runs, using total of 150 frames for 15 computational times (5.25 days, or ~30 planetary crossing times).
Rotating Frame | |||
Run # | MP (MJ) | Flux (phot/cm2/s) | Status |
1 | 0.07 | 2x1013 | 117 frames complete, running |
2 | 0.263435 | 2x1013 | 107 frames complete, queued to restart |
3 | 0.263435 | 2x1017 | Unqueued |
4 | 0.07 | 2x1017 | Unqueued |
Non-rotating Frame | |||
Run # | MP (MJ) | Flux (phot/cm2/s) | Status |
1 | 0.07 | 2x1013 | Unqueued |
2 | 0.263435 | 2x1013 | Unqueued |
3 | 0.263435 | 2x1017 | Unqueued |
4 | 0.07 | 2x1017 | Unqueued |
Was missing the TABLES from the non-rotating version, not sure why I wasn't getting any error output.
Update 11/20
- From discussion on Wednesday, see this page.
- For planet density in the high-flux case (assuming recombination-limited flows), see previous blog post.
Runs
Currently running small planet, low flux case (still recombination-limited, but looks like thanks to tidal forces the
surface is staying well above the reset radius). Modified parameters (from first link above):Mp | 0.07 MJ |
TP | 1000 K |
Also queued high flux, same size planet case. Python script was modified so that the planet profile is calculated assuming the totally-neutral surface is at the planet radius (though this is absolutely not the case for the new density). Modified parameters:
Ionizing flux | 2x1017 phot/cm2/s |
5.3x10-9 g/cm3 |
Code stuff
Got another soft crash on the small planet - need to investigate (race condition seems likely - Jonathan suggested layout_comms).
Running ionization-only test with radiation pressure implemented again to confirm and investigate results (second link above).
Further thoughts
Do we want to think about including a stellar wind at all? My thought: maybe for later simulations, but not for the parameter study, and probably not for the radiation pressure.
We had discussed possibly increasing the distance in y to capture more of the up- and downwind arms — may be nice for production runs at least (I wouldn't expect it to break anything, but could be worth testing first).
Setting Atmosphere Density
Constants:
Assume every photon entering a tube of dimensions (R0-RP, dx, dx) is absorbed by the time it reaches RP, and all the hydrogen in the tube starts ionized (X=1). Using an adiabatic atmosphere, the density profile is given by
,
with
, , and the number density at the surface of the planet (to be solved for).Volumetric recombination rate is
,
(at the wind temperature of 104 K).
Total recombinations (per unit time) are then given by
Total photons entering the tube per unit time are given by
,
where
is the photon number flux.Solving the equality of these two quantities for np, find
.
For the currently-running case, our flux of 2x1013 gives a mass density of
, much larger than our current value of 1.32x10-16 (but we're not recombination-limited in the current case). For the high-flux case, Jphot = 2x1017,.
Update 11/13
- Summarized important elements of radiation pressure papers (from Luca).
- Now that compute nodes are back up, can restart simulation (equilibrium state to restart from) from where it was killed.
- Registration for next semester — Geometric Methods in Fluids?
Update 10/30
Radiation Pressure
- Static radiation pressure test looks good. Setting up some dynamic tests. (Normalize min vel to sound speed?)
- Radiation/recombination-limited simulation (same as previous, but with 2x1017 max flux) needs to have ramping adjusted - larger flux just obliterates the atmosphere. I'm thinking start from 10-4 or so lower, and adjust the ramping speed and half time accordingly.
- Need to work out photon-limited parameters — mass of planet as given is too low for the radius and temperature and results in an infinitely extended atmosphere.
Rotation and Radiation Pressure
First Set of Parameters
See here for an enumeration of the possible parameter space with orbital distance, flux, and planet mass variable. What follows is the top left of the first table.
See here for other simulation parameters.
Top view
Side view
Radiation Pressure
Testing with slab of density 1 (in CU), all neutral, embedded in ambient of density 0.01, all ionized. Setting
, the whole thing should be in a stationary state (the domain is thin enough that over the grid is close to 0). Some problems with initial test conditions (I don't think I've sufficiently isolated the effects of radiation pressure).I've restarted test with no hydrodynamics and constant temperature rather than pressure (
depends on T), and the entire domain neutral. Seems like having hydrodynamics turned off removes gravity, though. From comparing diagnostic variables, seems like scaling is off on the radiation pressure term.Scaling:
…and fixed.
Timing, Wind Updates
Timing
See previous post for most simulation parameters.
Zones/RP | Box side length | qTol | Rotation? | Stellar gravity? | hours/CT | Days to 20 CT | Timing source |
64 | 8 RP | 1d30 | N | N | 4.17 | 3.56 | Total runtime |
32 | 20 RP | 1 | Y | Y | 10.8 | ~10 | Timing single frame (200-201) |
32 | 8 RP | 1d-2 | Y | Y | ~4 | ~3.5 | Est. from blog |
Timing estimates that we discussed at Monday's meeting are inaccurate - I think there may have been a soft crash.
Wind
Line transfer evolving steadily. Still looks good at about two crossing times further than last post.
Top
Side
Fixed boundary temperature profile is backwards, but I don't think I'd expect that to affect the evolution other than reflecting it over the y=x line.
Also still working on box size/flux ramp test, but now I'm getting dt=0 on BlueStreak. Will be looking into this.
1D
After quick discussion with Jonathan, added spherical geometric terms (dilution and cooling) to code. Queued on BlueHive.
Update 10/2
Line transfer
Stellar gravity and Coriolis test went well.
Parameters are the same for linked line transfer run, except:
Extent | (37, -10, -10, 57, 10, 10) |
Physical Extent | (5.55x1011, -1.5x1011, -1.5x1011, 8.55x1011, 1.5x1011, 1.5x1011) cm |
Side view
Top view
Contour key:
Purple | Mach 1 surface |
Black | |
Green | Rib |
Red | RP |
Yellow | Rob |
Brownish-red |
Next
Need to test bigger box on BlueStreak (and perhaps get OpenMP working?). Since line transfer step happens at maximum resolution, the resolution of the box plays only a small role until a large portion becomes resolved. Pace is ~50 frames in 20 hours.
Fixed boundary
The equilibrium state is too close to the corrected Parker solution for any evolution to be seen. At 10-11 CT, the wind is the same as at 1 CT. Nothing more to be done here.
1D comparison
Physical Parameters
4x10-13 g/cc | |
0.7 MJ | |
1x103 K | |
1.4 RJ | |
lRotate | F |
lStellarGravity | F |
lRampFlux | F |
Flux | 1x1013 phot/cm2/s |
Simulation Parameters
Resolution | 2048 |
Zones/RP | ~450 |
Extent | (-4.5,0) |
Physical Extent | (-4.5x1010, 0) cm |
frames/CT | 1 |
TimeScale | 9.68 hours |
lScale | 1x1010 cm |
lScale = RP
Got a run that seems to have reached steady state. Stays well below supersonic, though. Still need to get lineouts to compare with Ruth's '09 paper, but the problem seems to be that as the wind launches, the surface moves out so that the wind is launching from what seems to be a very different planet.
Next
Comparison of the ionization diagnostic variables should show why the wind isn't staying sufficiently ionized for an insignificant optical depth. Results should lead toward either futzing with the code or altering the simulation parameters.
Tidal & Coriolis Test
Physical Parameters
1.32443x10-16 g/cc | |
0.263435 MJ | |
1.350 Msun | |
(0.04747, 0, 0) AU | |
1.95 rad/day | |
2.65 RP | |
lRotate | T |
lStellarGravity | T |
Simulation Parameters
BaseRes | (32, 32, 32) |
MaxLevel | 3 |
Fixed boundary (old code)
1x10-19 g/cc | |
102 K | |
104 K | |
2.6369 | |
lPlanetTempProfile | T |
set such that RP is equal for both runs.
Zones/RP | ~27 |
Extent | (.9, -.1, -.1, 1.1, .1, .1) |
Physical Extent | (6.381x1011, -7.09x1010, -7.09x1010, 7.799x1011, 7.09x1010, 7.09x1010) cm |
TimeScale | 3.52 days |
lScale | 7.09x1011 cm |
TimeScale = Porb
lScale = a
Contour key:
Purple | Mach 1 surface |
Lilac | Mach 10 surface |
Black | Extent of box below |
Red | RP |
White | RHill |
Brownish-red |
Not enough frames to capture evolution (where I suspect the tidal forces may be apparent). Requeued with 1/10th time. However, top view shows clear Coriolis effect. Looks perhaps a bit stronger but otherwise consistent with Fig. 6.
and givenLine Transfer
3x103 K | |
2.14559 RJ | |
lRampFlux | T |
HalfTime | 4 |
RampSpeed | 2.65 |
Fluxmax | 2x1013 phot/cm2/s |
Zones/RP | 32 |
Extent | (43, -4, -4, 51, 4, 4) |
Physical Extent | (6.45x1011, -6x1010, -6x1010, 7.65x1011, 6x1010, 6x1010) cm |
frames/CT | 100 |
TimeScale | 8.3825 hours |
lScale | 1.5x1010 cm |
lScale = RP
Contour key:
Purple | Mach 1 surface |
Black | |
Green | Rib |
Red | RP |
Yellow | Rob |
Brownish-red |
Unable to start from steady-state run, planet in incorrect position. At frame 760, there still appears to be some subsonic material at the edges, but this may just be because it hasn't yet blown out the entire ambient. The flow profile seems to be more strongly entrained up- and downwind than the above run.
Next?
May be best to run a (slightly larger?) box to steady state with the planet located correctly (using HD209458b orbital parameters - appropriate?), then add stellar gravity and rotation.
Update 9/25
- Ionizing planet: see previous post
- Two more things to (possibly) examine:
- Increase box size by Rp in each direction, to match size of box in ATHENA
- Whether ramping time or box size has bigger effect on
- Should just need one more run (high resolution, small box, long ramping time)
surface
- Also, doesn't seem to be resolving anywhere but where it's forced
- Two more things to (possibly) examine:
- Testing planet with Coriolis and stellar gravity (point particle off grid - ok?): BlueHive problems, only at frame 60. Wind isn't far enough from planet to be affected significantly by Coriolis, but tidal forces are definitely working.
Side View
Top View
- Still working on 1D version of planet
- Charge exchange: Have a modified fixed boundary condition module that should be testable, but working through a strange issue with the code.
- Conferences: I sent an email with a few options, reproduced below. Ruth and John have not made any plans for next year yet - they're going to meet to discuss and get back to us.
https://exoplanets.phy.cam.ac.uk/Meetings/exoplanets2 - Early July.
http://rencontresduvietnam.org/conferences/2018/exoplanetary_science/ - Last week of February/first week of March.
https://www.cospar-assembly.org/show_infopage.php?info=52 - Mid July.
http://eas.unige.ch/EWASS2018/program.jsp - Early April.
Resolution comparison
- Queued two more: -5 Rp to 5 Rp in all directions (same domain as ATHENA), at medium resolution (32 cells/Rp - BlueHive) and high resolution (64 cells/Rp) - BlueStreak.
- Also would like to compare a quick ramping time for one set of good runs, to determine if it's the ramping time or box size that has the most impact.
1 unit of computational time is 2 crossing times (for the planet - from 0 to Rp at the sound speed at the planet surface).
No movies for first two, due to storage difficulties.
64 zones/Rp, 2x1013 flux, quick ramping time (half flux by frame 30)
(Ignore the velocity data in this frame - I suspect it's corrupted).
64 zones/Rp, 2x1011 flux, quick ramping time (half flux by frame 30)
64 zones/Rp, 2x1013 flux (total execution time 3.56 days)
32 zones/Rp, 2x1013 flux
32 zones/Rp, 2x1011 flux
The low-flux case doesn't appear to have reached a steady state yet, possibly because the flow stays subsonic even with the larger box.
16 zones/Rp, 2x1013 flux
Tests 9/1
Lyman-
tests2x1013
2x1013, no Lyman-
2x1013, X=0
Conclusion: Lyman-
cooling is related to the problem (perhaps just exacerbating), but not due to the interior of the planet collapsing any more (since there's no cooling in the case X=0 inside the planet).Bigger box with corrected? BCs
Some …interesting… grid-aligned effects, plus the jump in temperature and pressure of the ambient (HII and ne increase, but that would decrease rather than increase the temperature).
Tests 8/31
Fixed the temps in at least one of these. Frames for all. VisIt didn't behave as I expected, so missing the first half of 2x1011, 2x1012.
2x1011
2x1011, no Lyman
2x1012
2x1012, no Lyman
2x1013
2x1013, no Lyman
2x1013, X=0
Issues 8/30
Simulations to Run
- Photon fluxes of 2x1011, 2x1012, 2x1013 (maximum), with and without Lyman
- X = 0 inside planet, 2x1013 flux with Lyman
Original Results
Line transfer routines crashing was a problem with density and pressure protections not recalculating ionization state. Fixed (see ProtectionOptions).
Longer run doesn't look any better, though. Note that the temperature may not be exact (may be off by up to a factor of 2).
After 4 days
AstroBEAR/ATHENA debugging
Initial Conditions
Initial conditions for the planet are finally correct. The ambient media still differ - the planet ends slightly earlier, and the profile is very steep near the edge.
Density
Temperature
Pressure
Ionization Fraction
Radiative Transfer
- The optical depths are close, but not quite identical. At ~300 s,
Working backwards, I find \sigmaH = ~6.28x10-18 for AstroBEAR, and ~6.14x10-14 for ATHENA - tested, and the difference isn't significant for the optical depth:
(ATHENA in blue, AstroBEAR in orange)
- Ionization/recombination rates and heating/cooling rates are qualitatively similar, but still differ by 1-2 orders of magnitude.
Ionization
(Without advective terms)
Theory Comparisons
It appears that the actual data from ATHENA doesn't match the theoretical calculation (using the data for n, X, and \tau in the equations on the LineTransfer page).
Heating
(Without advective terms)
- Electron densities are correct:
Dynamics
For the first time, the dynamics are beginning to look sort of similar. Radial velocities are too large outside of the planet for AstroBEAR:
And the evolution of the temperature on the day side is correct:
Update 8/3
- ATHENA and AstroBEAR comparisons are working nicely. There are still a lot of differences between the simulations, however. Dashed lines are ATHENA, solid are AstroBEAR.
Initial conditions
Flattening radius - ATHENA flattens at r_ib rather than r_mask
Electron densities - ATHENA goes to near zero inside planet, AstroBEAR is just 10-10 of the H density (this is probably not significant in the end)
r_ob - ATHENA profile extends to r_zero, but uses values at r_ob for density and pressure at edge
Pressure profiles differ
These last two seem likely to cause many of the differences seen once things actually start happening.
Frame 1
Looks like this ATHENA run was actually run with ramping - John seemed to believe it was not, so either the flag he's using isn't successful or he grabbed the wrong simulation accidentally
dE/dt for PdV, Lyman-alpha, and ionization heating all differ fairly significantly
AstroBEAR recombination is incredibly small - likely not attributable to differences in profiles
Other differences at this point are almost certainly attributable to the difference in flux or the difference in outer boundaries.
With the profile extended to rzero (and the resolution increased by one level), the location of the outer boundary becomes closer, but the values no longer match. So something is going wrong either in the calculation or import of the profile, still.
- Gave Diyora edge-centered VTK output from VisIt volume plot to start with. I almost have the layout working, but can't seem to get the refined data (only the coarsest is showing in the chombo). Is only level 0 data loaded BeforeGlobalStep?
- Did testing for OpenMP version of code. Problem appears sometime between 5 tasks/4 threads and 10 tasks/12 threads (haven't determined exact cutoff yet).
- Working on presentation for eclipse at Ogden Farmers' Library.
Comparison with AMR
Both with recombination/cooling, 2e13 flux, no Lyman alpha cooling
323 + 2 levels AMR
1283 fixed grid
Lineouts
Circles are 323 + 2 levels AMR, triangles are 1283 fixed grid. The 1283 fixed grid is 200 frames shorter - the last frame is repeated. Day side looks nearly identical - night side differs, probably due to lower resolution.
Density
Ionization fraction
Optical depth
Temperature
Heating/cooling time scales
Heating/cooling rates
Planet To-do
- Add diagnostics for cooling and recombination. ✓
- Subcycling time for planet. ✓
- Add flag for Lyman cooling. ✓
- Check cooling terms for correctness. ✓
- Ramp up flux over time. ✓
- Check recombination on night side. ✓
- With stored optical depth, calculate ionization and ionization heating rate (can't be done straightforwardly with a diagnostic variable). ✓
- Jonathan will be adding optical depth variable. ✓
Runs
- Lyman cooling, recombination/cooling, 2e13 flux ✓
- Recombination/cooling, 2e13 flux ✓
- Recombination/cooling, no flux ✓
- Lyman cooling, recombination/cooling, 2e10 flux ✓
- Calculate new profile for planet unaffected by Lyman cooling ✓
- Lyman cooling, recombination/cooling, ramping flux 1.2e13 → 2.02e13 ✓
- Recombination/cooling, ramping flux 3.6e12 → 2e13 - running
Update 6/14
- Implemented multispecies gas for Roe solver in AstroBEAR, but need a solution for density or sound speed for van der Waals gas to implement it. Relevant code snippet:
! Entropy fix !!! Implement a different entropy fix to use van der Waals gas - density equations have complicated/no solution lambdaLL = WL(ivx) - PrimSoundSpeed(WL) lambdaRR = WR(ivx) + PrimSoundSpeed(WR) if (lambdaLL < 0 .or. lambdaRR > 0) then call StarPU(WL((/ irho, iE, ivx /)), WR((/ irho, iE, ivx /)), PrimSoundSpeed(WL), PrimSoundSpeed(WR), pstar, ustar) ! Passively advected (tracers; y,z momentum) ExactL = WL ExactR = WR ! Solution in interaction region ExactL(iE) = pstar ExactL(ivx) = ustar ExactR(iE) = pstar ExactR(ivx) = ustar ! Densities differ if (mpi_id == 0 .and. iEOS == EOS_vanDerWaals) write (*,*) 'This solution for density will not be accurate. The attraction parameter is not yet included in these calculations.' ExactL(irho) = PrimExactDensity(WL,pstar) ExactR(irho) = PrimExactDensity(WR,pstar) lambdaLR = ustar - PrimSoundSpeed(ExactL) lambdaRL = ustar + PrimSoundSpeed(ExactR) end if if (lambdaLL < 0 .and. lambdaLR > 0) then ! Check for transonic rarefaction on left side print *, 'Using entropy fix.' lambda(1) = lambdaLL*((lambdaLR - lambda(1))/(lambdaLR - lambdaLL)) end if if (lambdaRL < 0 .and. lambdaRR > 0) then ! check for transonic rarefaction on right side print *, 'Using entropy fix.' lambda(nDim+2) = lambdaRR*((lambda(nDim+2) - lambdaRL)/(lambdaRR - lambdaRL)) end if
- Wrote WAF scheme for own solver. Working, but results are not as good as I expect based on Toro's. Not yet sure where the problem lies.
- Related: Transmissive boundary conditions for second set of ghost cells don't quite make sense yet. Why move back inward to get wave to flow out?
- Finished edits of WASP-12 paper; reprocessed absorption.
- Still getting explosion (but better than implosion) with adiabatic atmosphere.
Should be the same as Jonathan's result - not sure why it appears to not be working.
Stable Atmosphere
I've added some data and a Matlab script for creating images such as those below. Density is on a linear plot- looks pretty good overall, although there's a strange wiggle near the inner boundary. Pressure is on a semilog plot, and is orders of magnitude off (I believe these should be in the same (computational) units).
EDIT: After running for longer time, not as stable as it first appeared (although I'm not seeing the same values in the lineouts as before, either). Perhaps the outer boundary is not as balanced as it should be?
Density plot (same scale as below):
Lineouts:
Pressure lineout scale changes dramatically after first frame, but can't get VisIt to save window correctly.
Update 6/2
- Roe solver implemented in AstroBEAR:
Still need to implement van der Waals gas and figure out how to implement multispecies (and find tests).
- Testing charge exchange:
Seems to be working pretty much as expected, although the proportions of cold HII to hot H seem a little wonky - likely because of the other physics present, though.
- WASP-12 paper nearly there. Got some comments back from Luca, so I'll look at those in the next few days.
AMR flux
Link to some thoughts.
Update 5/9
- Wrote multidimensional Euler solver, found here. Some highlights of the tests:
Comparing HLL to HLLC with stationary CD:
Strips in x and y only seem to appear after wave hits boundary - something to worry about?
Can't see quite as much - can't get VisIt to make slices of pseudocolor plots. But still looks pretty good.
The remainder of the tests can be found here.
- Anything else to do with code? Haven't implemented RCM, FVS, Roe, Osher, higher-order (WAF, finite volume, etc.) schemes, source terms.
- WASP12:
Update 4/18
- Wrote Godunov solver for linear advection, inviscid Burgers equations, as well as Godunov solver for Euler equations (see here). Need to write up and comment Euler solver still, though not much is different. Also looking at a quick parallelization - need to check shared and private variables in loops. See here for test results.
- Working on higher mass loss rate planet. Think I was trying to change too much at once, so upped the stellar wind density a bit (bow shock radius is now at ~0.3). Currently having trouble reloading grids on restart - MPI errors.
Update 3/23
- Wrote exact Riemann solver.
- Finished correct WASP run - time extended by ~100000 years, so not terribly significant. Updating paper figures (still need to find good output format).
Update 2/22
- Working on stellar fallback in WASP-12.
- Also have some analysis of WASP wind asymptoting. Took ram and thermal pressures of wind and set equal to disk pressure at required density at various radii - see Mathematica notebook. For hydrogen extinction, need for HI at , . This temperature is right on the border of H- and ff/bf opacity, so hard to say with certainty, but given the relatively low density it should be fine. (link)
- Paper is in decent shape. Still needs some editing and a sentence here or there (figures and a few references, as well), but meat is done.
Update 1/26
- Working on (done with?) application for Blue Waters fellowship
- WASP-12b:
Ran for 10 more orbits - planetary mass loss rate not asymptoting yet, but it does appear to be becoming more variable (just numerical?).
Qualitatively, disk is identical:
Also running with
- MHD: Running with betas for comparison with Owen and Adams - time growing exponentially again for stronger B, so need to look at that.
WASP-12 column density
Need 2x1017 /cm2 column density of magnesium, so ~2x1022 of hydrogen. Currently too small - by calculating average density in a box around the disk and multiplying by length of box, I find ~2x1018 /cm2 of hydrogen. Would need to increase density by 4 orders of magnitude - plotting average density in this box over time, estimate 105 orbits, or about 300 years, to build up sufficient density.
They estimate that a mass loss rate of 3x1010 g/s for WASP-12b will give an upper limit of 4x1021 /cm2 for Mg column density.
At 3.3 Rp, mass loss rate of planet is around 8x109 g/s (appears to be decreasing over time, though), which is about 3.75 times lower than the mass loss rate used to estimate the column density - linear in mass loss rate, so this still gives an estimate of 1021 /cm2. A rough estimate of the mass loss rate of the disk gives 5.1x107 g/s, so two orders of magnitude smaller than the mass loss rate of the planet - which correlates well with an increasing overall disk mass (using slope of disk mass over time, get ~2.4x109 g/s as a very rough estimate - within an order of magnitude).
Update 12/13
MHD
Anisotropic MHD simulation at a surface beta of 50 seems to have gone pretty well:
And top view:
The magnetic field goes a bit crazy at the end, but the flow still looks about what we'd expect, with outflow from the night side highly suppressed and material there concentrated near the equator by the field. Best, we don't get the strange fourfold outflow and fallback. Seems narrower than the suppression seen by Owen & Adams, but that may be because of a difference in temperature profiles (they use radiative transfer).
I'm currently running a simulation with a beta of 10, which may lead to more coherent field lines - I can next run a simulation with similar field strengths to Owen & Adams, if the anisotropic simulations appear to be good.
WASP
The planet has only existed for half an orbit, so there's not much to see for troubleshooting purposes yet. But so far it looks as expected, with lobes spiralling up-orbit and down-orbit. Side view shows strange wave patterns starting in stellar wind around frame 7 - perhaps I need to increase the size in z a bit more?
Update 11/29
- MHD begins to throw pressure protections between 1e-5 and 1e-2. They are thrown, as far as I can tell, immediately upon creation of the planet (went down to final time of 1e-100, with 100 frames). Up to this point, the fields and contours all look identical to the zero-field case, but want to check out early times for small B:
(Attempting to narrow down where protections start to happen I did a stupid - running three jobs again.)
10 frames of output posted on alfalfa for B=1e-2, to 0.01 orbits: MHD data
- Ran a larger WASP-12 simulation, but it also crashed - what exactly does changing the start time do computationally-speaking (for data output purposes)? It also runs until the planet is created - connection? But up to that point, stellar wind evolution is uninteresting/unchanged.
Update 11/15
- Removed extra refinement from MHD simulations and extended boundaries by 0.025 in each direction. Still have subsonic material leaving grid in x-y plane, as well as both subsonic and sub-alfvenic eventually leaving in the z direction. Also, alfven speed is becoming very large in a concentrated area around frame 24 and increasing computation time significantly - not sure if there's anything to do about this.
Definitely going to increase grid size more. Anything else to do about computation time and irregularity of contours?
- WASP-12b simulations appear to have gone extremely well, on the other hand. Ran a test with new parameters for density, bow shock radius, etc.:
0.036180 | ratio of planet radius to orbital separation | |
0.324198 | ratio of stellar radius to orbital separation | |
0.069149 | ratio of Hill radius to orbital separation (from planet) | |
0.125384 | ratio of bow shock radius to orbital separation (from planet) | |
0.314214 | ratio of planet sonic radius to orbital separation (from planet) | |
0.314214 | ratio of coriolis radius to orbital separation (from planet) | |
87.507134 | ratio of densities at bow shock | |
19.542018 | stellar lambda | |
17.369379 | planetary lambda | |
Orbital separation | 0.022930 | AU |
Mass of Star | 1.349999 | solar masses |
Mass of Planet | 1.405393 | Jupiter masses |
Radius of Star | 1.599000 | solar radii |
Radius of Planet | 1.736000 | Jupiter radii |
Temperature of Star | 999999.016096 | Kelvin |
Temperature of Planet | 10009.919196 | Kelvin |
Density of Star | 3.211200e-17 | g/cc |
Density of Planet | 3.211200e-15 | g/cc |
Orbital period | 1.090679 | days |
Mass loss from Star | 1.002167e-18 | solar masses per yr |
Mass loss from Planet | 5.460294e+07 | g/s |
Mach number of Stellar wind at shock | 2.050641e-01 | |
Mach number of Planetary wind at shock | 4.368280e-01 | |
predicted bow shock radius in units of lscale | 1.255086e-01 |
Mass loss rates may be a bit low - can increase both densities to get higher, but sims look good:
Still a slight spiral feature in the initial stellar wind, before planet is created, but doesn't seem to persist (may just be Coriolis effects - doesn't appear to originate from stellar surface). Ran 9 full orbits - reaches quasi-steady state after about 3 days:
Update 11/2
- Finished GRFP application on Friday. Waiting on two letters of recommendation (as of noon today).
- WASP-12b: According to matlab script, no bow shock. Plot for ram pressures is
Initialized stellar wind out too far, so that planet was created inside:
- MHD simulations of HD209458b: attempting to control refinement. On most recent attempt, segfaulted:
Relevant code snippet:
SUBROUTINE ProblemSetErrFlag(pos, Info) TYPE(InfoDef) :: Info REAL(KIND=qPREC), DIMENSION(:), INTENT(IN) :: pos REAL(KIND=qPREC) :: x(3), r x=pos-PlanetPos r=sqrt(sum(x**2)) ! Force lowest resolution outside of 5*Rp IF (r > 5*planetRadius) THEN Info%ErrFlag = 0 END IF END SUBROUTINE ProblemSetErrFlag
Next thought is to write a separate subroutine that can be called in ProblemSetErrFlag, similar to the subroutines being called in the before step - but is this too simplistic?
- Also time to register for next semester - high-energy astrophysics or compressible fluids?
- Finally, 2D Owen and Adams MHD simulations.
Update 10/11
- Ran simulations with small and zero magnetic fields, as well as turning off the planet boundary (Parker wind out to bow shock) and lowering the CFL variables to 0.75, 0.1, 0.3. Runtimes below:
Run | Time |
B=0 | 308s |
B=1e-10 | 302s |
No planet boundary | 17000s (~5 hrs) |
CFL decreased | 68000s (~18 hrs) |
Seems the magnetic field and the incorrect bow shock radius are both playing a role, but bow shock radius is the bigger problem (since we need magnetic field). Some side-by-side comparisons:
And alone, without all of the mess:
Some higher-resolution simulations:
- Finished drafts of GRFP statements.
- Began working through Toro.
Update 9/21
- Debugging MHD simulation runs. Starting with Bp = 0.54 G, Bs = 13.5 G, cutoff radii of 0.125 and 1*1010 respectively. First run, time to completion approached infinity - fixed this, but simulations are still extremely slow. Currently running short time, high framerate. Also calculated Alfven speed ( ) and plotted contours - high (3.5*107 cm/s) near poles of planet. This seems to be higher than I would expect for the maximum Alfven speed, which should be near 5*106 cm/s.
- Read three papers on WASP-12b observations (Absorbing Gas, Metals in Exosphere, NUV absorption. Observations of WASP-12 have found lines missing from the magnesium spectrum, particularly, which are extremely unlikely to not be radiating from the star. In order to get absorption to the observed levels, it requires a density of a least an order of magnitude more than the interstellar medium. It is therefore hypothesized that WASP-12b is creating a cloud of gas that is capable of creating the observed magnesium absorption lines.
Update 9/13
- Determining parameters for magnetic fields of planet and star for HD209458b simulations:
Matsakos et al. use the plasma
at the base of the outflows (surfaces) to define the magnetic field strength. With , the magnetic field at the surface is 11.5 G, or ~10 Bs.The magnetic field of HD209458b was estimated to be ~10% that of Jupiter (Ref), or ~0.5 G. This gives , which is right in the middle of the range used in Matsakos (0.002 - 400).
Currently, calculations of the bow shock radius use
. Will need to convert this to using by relating magnetic field:
Or, in terms of knowns,
With the
values above, this gives a bow shock distance of 0.155 (in computational units).(What does PlanetaryAtmospheres represent? to plasma )
fromThe other parameter that needs to be set is the cutoff radius for the fields. Currently planning on large (essentially infinity) for the star and near the edge of the box for the local simulations (0.125 orbital radii).
Once these are set, I'll be ready to start running simulations. Plan to begin with isotropic temp profile and no rotation, then jumping to anisotropic with rotation (& the global model) if it works - are we interested in the intermediate models still?
- Also beginning to look at simulating WASP-12b, to attempt to reproduce the observed absorption lines of Mg II and Ca II. Physically, this requires that a fairly dense (109/cm3 of H) and stable torus be created by the capture of the planetary wind. Will possibly require inclusion of radiative transfer, depending on level of ionization of torus.
- Passed prelim.
- Began application for NSF GRFP.
Update 7/27
- Ran simulation with lambda=5 for longer time, to get to steady state:
- Numerical integration technique for isothermal Parker wind - starting from differential equation in terms of u and r, parameterize in terms of s, so that
We can calculate the Jacobian for this dynamical system, and evaluate it at the critical point:
This gives the linear approximation to the system near the critical point; calculating the eigenvalues and eigenvectors, travel a small distance along the eigenvector with positive eigenvalue (corresponding to tangent to the stable manifold of the original system) and use numerical integrator of choice outward from the critical point.
- Also started determining B fields for planet and star - looking for sigma of both to be 0.1 initially (based on Jonathan's example parameter space).
Update 7/20
- Looked again at the Parker wind differential equation:
If we assume spherically symmetric outflow in an isothermal corona, then by conservation of momentum, continuity, and the ideal gas law, we have
Continuity shows that
, where C is a constant. If we substitute for p and rho into the momentum equation, we get a differential equation in u and r:Define
so that (i.e., sonic radius); substitute and rearrange to findIntegrate both sides to find the Parker wind equation,
- Modified the domain on a couple of simulations to better resolve the planet/capture sonic radius. Also plotted contour of sonic radius.
Value | Mdot (g/s) | ||
lambda=5 | 5.6x1011 | (unchanged) | |
Mp = 0.25MJ | > 1.67x109 | (not well resolved) | 3.7x108 |
Tp = 5x104 K | Negative throughout | (not resolved) | 3.4x108 |
For lambda=5, may not reach quasi-steady state.
Tp = 5x104 K:
Mp = 0.25 MJ:
Sonic radii:
- Continuing to work my way through Zel'dovich.
Update 7/7
- Solving parker wind equation,
psi − ln(psi) = 4 ln(xi) + 4/xi − 3, where psi = (v/vs)2 and xi = r/rs.
There are 4 types of solutions - combinations of sub/supersonic at the surface and v → 0/vf as xi → infinity. The only physical solution is subsonic at the surface and has a nonzero velocity infinitely far away, and passes through xi = 1, psi = 1.
Attempts at solutions using approximations and a single solve:
Alternate implementation of approximation from Jonathan's code; works for r > rs, but not r < rs.
Pertinent line is: yy(i)=vpasolve(y - log(y) == -3 + 4*log(xx(i))+4/xx(i),y,(xx(i) > 1) * xx(i) + (xx(i) ⇐ 1)*exp(3-4*log(xx(i))-4/xx(i)))
Interpreted as:
if xx(i) ≥ 1
yy(i)=vpasolve(y - log(y) == -3 + 4*log(xx(i))+4/xx(i));
else
yy(i)=vpasolve(y - log(y) == exp(3-4*log(xx(i))-4/xx(i)));
end
Correct & incorrect plots:
- Calculated mass loss rate in VisIt. Used a scalar expression for the radial mass (momentum) flux and summed over isosurfaces (can also use spherical slices) to get mass loss rate. Plots were unfortunately uniform in display; however, in experimenting, discovered the flux operator makes plots that appear qualitatively correct for the flux:
Mass loss rates for the various simulations from last time:
Value | Mdot (g/s) | |
Aniso | 6.1x109 | |
lambda=5 | 5.6x1011 | |
lambda=15 | 3x107 | |
Mp = MJ | 9.9x109 | |
Mp = 0.5MJ | 1.5x109 | |
Mp = 0.25MJ | > 1.67x109 | (not well resolved) |
Tp = 5x104 K | Negative throughout | (not resolved) |
Tp = 5x103 K | 1.4x109 | |
Tamb = 3 K | 4.5x109 | |
Tamb = 25 K | 4.5x109 | |
Tamb = 50 K | 4.5x109 |
Aniso appears correct, based on plot from planet paper.
Working on calculating the sound speed to get the sonic radius.
- Started working through occasional prelim problems, as well.
Update 6/23
- Ran planetary simulations with no rotation and an anisotropic temperature profile with various parameters. See my page for density movies. Changing lambda performs as expected - with lambda = 5, there is a marked increase in the strength of the wind, and with lambda = 15 there is very little to no wind. Changing the mass of the planet didn't result in quite a clear changes, but overall it doesn't appear to have affected the wind very much. Hotter planet appears to have a stronger outflow, while the cooler planet doesn't differ qualitatively from the original run. The last simulations I've performed so far were decreasing the ambient temperature, and this doesn't appear to affect the wind very much in terms of density. Momentum plots, however, appear to show outflows that are stronger by a factor of two.
- Also researched justification for using a fluid approximation for charge exchange. In Christie et al., they calculate the mean free path (sound speed over rate of reaction) for charge exchange and note that it is less than the planetary radius (in regions dominated by the planetary wind) to justify using the fluid approximation, with mixing and exchange primarily at turbulent boundaries. In Murray-Clay et al., they justify the fluid approximation in general by comparing the scale height H to the mean free path of a particle, with the fluid approximation holding for H > lambdamfp at the sonic point (in other words, the exobase [where H = lambdamfp] is above the sonic point). Thus, H > Rp as well, and therefore greater than mfp of charge exchange near the planet.
- Finally, working my way through Zel'dovich and Raizer for hydrodynamics. Beginning viscosity and heat conduction at the moment.
Update 6/3
- Read Tremblin and Chiang for computational charge exchange. The paper is a followup to earlier studies of charge exchange between planetary and stellar winds, which used Monte Carlo simulations of particles. Here they use the hydrodynamic equations (no magnetism, Coriolis and centrifugal forces, or tidal gravity); the isothermal planetary wind was initialized as 80% ionized, following Murray-Clay et al. The planetary wind incorporated photoionization/recombination and advection. To incorporate charge exchange, the hydrodynamic code was augmented with chemical reaction solvers, where beta is the reaction rate.
These equations take reverse exchange into account, so as not to overestimate neutral hydrogen (still slightly overestimated). They are very similar, but not identical to, the equations used by Christie et al.
The simulations appear to reproduce the observed absorption curves well, with asymmetry between the two sides of the Doppler shift.
- Used Jonathan's Matlab code to examine change of bow shock radius with magnetic fields. If sigma* and sigmap are equal, the bow shock radius is unchanged with or without magnetic field - ratio of radius to orbital separation, chibow = 0.240468. With sigma* = 1, sigmap = 0.1, chibow = 0.148204; sigma* = 0.5, sigmap = 0.1, chibow = 0.187300; sigma* = 0.1, sigmap = 0.5, chibow = 0.302483; sigma* = 0.1, sigmap = 1, chibow = 0.363674; and with sigma* = 0.5 and sigmap = 1, chibow = 0.297793 ≈ chiCoriolis.
- Also attempted to recreate isotropic planetary wind with no rotation (Run5 from planet directory). Copied .data files, but clearly didn't turn out correctly. Need to figure out why.
Update 5/11/16
Started catching up a bit from the end of the semester. Read Schneiter et al. 2016 and Christie et al. 2016:
- Schneiter paper makes synthetic observations of Lyman-alpha absorption in tails created by interacting solar and planetary winds, with photoionization included. They have nineteen models of varying stellar UV flux (photoionization rate), stellar wind conditions, and mass-loss rate of the planet. Both the stellar and planetary winds are isotropic, and radiation pressure from the star is approximated by reducing stellar gravity. They find that by including photoionization, a smaller neutral tail is formed; they also find a lower time to a stationary state than in previous models without photoionization. The most absorption is found in the blue-shifted side, between -130 and -40 km/s, the extent of which is dependent on the mass loss rate of the planet and on the ionizing flux. By comparing their models to observation, the heat efficiency of HD 209458b can be predicted to be less than 50%. In addition, it can be seen that the observed Lyman-alpha absorption does not necessarily require charge exchange to accelerate the neutral hydrogen sufficiently.
- 2.5D spherical simulations of planetary and stellar wind interactions, including charge exchange, were performed. Density was fixed at the base of the planetary wind and an inflow boundary condition on one half of the simulation served to emulate the stellar wind. In addition to charge exchange, advection, photoionization and recombination, and collisional ionization were included. The escape parameter lambda was used to categorize the models; it was found that there were two distinct regimes, with a transition region between. With lambda ⇐ 4 (high planetary temp), the planetary wind becomes transonic before colliding with the stellar wind, creating a large tail that takes a significant amount of time to mix. With lambda ≥ 6 (low planetary temp), the planetary wind has no chance to become transonic before it encounters the stellar wind, and the winds interact turbulently rather than collide, resulting in a well-mixed, barely evident tail. The transition region between these is also shown clearly in the calculated mass-loss rates of the simulations.
Update 3/7
Read Murray-Clay paper: Authors seek to numerically determine validity of hypothesis that hot Jupiters could be evaporated down to their rocky cores over the planetary lifetime. They use a one-dimensional model that includes heating/cooling terms, tidal gravity, and the effects of ionization on the mass-loss rate, and ignore the Coriolis force. Numerically, they use a relaxation solver, and find solutions iteratively by removing simplifying conditions one at a time.
They find that, for main-sequence stars, about 20% of H is still neutral at the sonic point, and place an upper bound of ~3.3*1010 g/s on the mass loss rate. For hotter (T Tauri) stars, they find an upper bound of ~6.4*1012 g/s. The assumption of a hydrodynamic wind is shown to be self-consistent, and they estimate that these are overestimates by ~4x. By reducing the wind speed to subsonic values and including a stellar wind, the day-side wind may be reduced or completely suppressed - they hypothesize that this may lead to night-side outflows.
They compare observations to estimates from their model, and note a few possible reasons for the disagreement in Lyman-alpha lines. A promising candidate is cited as acceleration of neutral hydrogen due to charge exchange. They note that modelled spectrally-unresolved measurements appear to be in agreement with observation.
Update 2/29
Read the Stone-Proga paper - a comparison of 2D simulations to spherically symmetric simulations run by others. They characterize escape from the planet with the hydrodynamic escape parameter, use no magnetism (hydrodynamic rather than MHD), and ignore heating and small-scale effects at the base of the wind.
In models with no stellar wind and an isothermal outflow, they find that the sonic surface of the wind is closer to the planet, with a slower radial velocity on the night side of the planet, and a very evident shock in the |v|/vs plot at various angles. For larger values of gamma, this shock produces a delta T, and the sonic surface is farther from the planet (but still nearer than in the spherically symmetric models). Introducing a stellar wind creates a back-swept profile, but has little effect on the sonic surfaces or mass-loss rate.
Should have more time to read Murray-Clay and a few other papers this week.
Update 2/15
Ran OutflowWind? simulations with varying parameters. Thickness and wind velocity don't appear to have any effect - perhaps an effect of rescaling? Velocity speeds up the simulation as a whole. Radius increases size of wind, but otherwise has little effect, at least at small values. Increasing density appears to decrease relative density at the center of the front of the outflow. Increasing temperature creates a more diffuse cloud at the end. See page for comparison .gifs.
Plan to read some papers this week.
Update 2/8
Not much progress since last week, so plans for this week: Read at least two of my growing library of papers. Experiment with parameter space of OutflowWind code.
Update 2/1
- Read Matsakos paper. They use static rather than adaptive mesh, with flows modelled isothermally. 16 models (4 parameters, 2 values each - high/low flux, high/low escape velocity, large/small orbital radius, and weak/strong magnetic field). Some showed tail, some showed accretion stream - in the end, organized into 4 categories, based on relative strengths of planetary wind, gravity, and magnetic field - 2 categories with tails, 2 with accretion at 90 degrees or directly under planet.
- Ran two more test runs of OutflowWind with longer simulation time and more frames.
Update 1/25/16
- Applied for Kavli summer program - should hear back in a month or so.
- Watched Madhusudhan talk at PPVI, describing "current" (as of 2013) state of exoplanet research. Consisted primarily of discussion of hot Jupiters, with short sections on the end discussing hot Neptunes and super-Earths. Hot Jupiter temperature inversions based on atmospheric composition and C/O ratio, and atmospheric circulation. Hot Neptunes require either non-equ. chemistry or high metallicity to fit current data.
- Also began reading Matsakos paper.
Plan to run a couple of short test runs similar to previous post, finish Matsakos paper, and read some papers from PPVI.
First Run Test
Installed code on pas servers, ran with mpirun OutflowWind, 10 frames, saved output to server. Used local installation of VisIt to draw frames (after copying output locally), saved movie as png then used convert to create GIF. Added both as images to blog post (below).