Welcome

... to the homepage of MESA, modules for experiments in stellar astrophysics.


Why A New 1D Stellar Evolution Code?
What Can It Do?
Instrument Paper
Manifesto
Download, install, and run
MESA C++ Interface and Interactive Python Driver
How do you say that?
What does thread-safe mean?



Why A New 1D Stellar Evolution Code?

Stellar evolution calculations remain a basic tool of broad impact for astrophysics. New observations constantly test the models, even in 1D. The continued demand requires the construction of a general, modern stellar evolution code that combines the following advantages:

Openness: anyone can download sources from the website.

Modularity: independent modules for physics and for numerical algorithms; the parts can be used stand-alone.

Comprehensive Microphysics: up-to-date, wide-ranging, flexible, and independently useable microphysics modules.

Modern Techniques: advanced AMR, fully coupled solution for composition and abundances, mass loss and gain, etc.

Performance: runs well on a personal computer and makes effective use of parallelism with multi-core architectures.

Wide Applicability: capable of calculating the evolution of stars in a wide range of environments.

What Can It Do?

Here are some visuals to show what mesa can do: first, some movies, then some plots from the Instrument Paper

Evolution of a 1 MSun Star, by Josiah Schwab. (2.6MB)


To make movies like this yourself, see Josiah’s How to Make a Movie with MESA + Tioga.

Here are some movies made using png output from mesa/star (see How to use MESA star).

3Msun from ZAMS through core He burning. (6MB)

8Msun from ZAMS through core He burning. (6MB)

25Msun from ZAMS through core He burning. (5MB)

1Msun: Helium core flash; 1Msun, Z=0.02. (12MB)

Another one—lots of details in this version: 1Msun: summary. (61MB)

Now for something completely different, here is a movie showing rapid accretion of pure helium onto a neutron star envelope leading to Type I X-ray bursts. (10MB)

Here are a few plots from the Instrument Paper.












Instrument paper

Several of us have been hard at work on a paper giving lots of information about MESA as an instrument for doing science. The analogy is to paper about a new telescope that can be referenced by future scientific projects that use it. It is available here: MESA paper

You should read it before you use MESA—well, at least download it and skim it before you use MESA! Then refer back to it when you have questions.


A late night session working on the paper around Bill’s dining room table with a projector, a makeshift screen, and ample red wine (left to right, Frank Timmes, Aaron Dotter, Falk Herwig, Lars Bildsten, and Bill Paxton). Photo taken by Bill’s patient wife, Kathlyn, who deserves a great deal of credit for the existence of MESA.

MESA Manifesto

The MESA Manifesto discusses the motivation for the MESA project, outlines a MESA code of conduct, and describes the establishment of a MESA Council. Before using MESA, you need to download and read the manifesto document. Here’s a brief extract.

Users are encouraged to add to the capabilities of MESA, which will remain a community resource. However, use of MESA requires adherence to the MESA code of conduct:

That all publications and presentations (research, educational, or outreach) deriving from the use of MESA acknowledge the Paxton et al. (2010) publication and MESA website.

That user modifications and additions are given back to the community.

That users alert the MESA Council about their publications, either pre-release or at the time of publication.

That users make available in a timely fashion (e.g., online at the MESA website) all information needed for others to recreate their MESA results—“open know how” to match “open source.”

That users agree to help others learn MESA, giving back as the project progresses.

Users are requested to identify themselves by joining one of the MESA mailing-lists:
MESA-users—for all active users of mesa; questions, comments, and discussion
MESA-news—for people interested in following developments in mesa but who are not active users

Download, install, and run

In the menu on the left, click “getting started” for information about downloading and installing MESA. If you want to use the 1D stellar evolution package, visit “how to use MESA star”.

MESA C++ Interface and Interactive Python Driver

Thanks to Kent Budge, a C++ interface for MESA is now available at MESA++. It features an interactive Python driver that you may find fun to play with.


How do you say that?

Say MAY-sa.


What does “thread-safe” mean?

“Thread-safe” simply means that users can take advantage of multicore processors.

For example, during stellar evolution, you need to evaluate the eos at lots of points:

do k = 1, num_zones
   call eos(T(k), rho(k), ....)
end do

Most fortran compilers (ifort and gfortran and others) support OpenMP, so the loop can be made to run in parallel by adding 2 lines of magic:

!$OMP PARALLEL DO PRIVATE (k)
do k = 1, num_zones
   call eos(T(k), rho(k), ....)
end do
!$OMP END PARALLEL DO

Now, if I have 4 cores, I’ll have 4 threads of execution evaluating the eos.

However, for it to work, the implementation needs to be thread-safe. In practice this means, making shared data read-only after initialization. Working memory must be allocated from the stack (as local variables of routines) or allocated dynamically (using fortran95’s allocate primitive). So, basically it boils down to avoiding common blocks and save’s. It’s easy to arrange for this in new code; it can be nasty converting old code however. Stellar evolution is a good candidate for making use of many cores. Just wrapping “parallel” directives around some loops does it if the system is designed with that in mind—and MESA is. But there is still much to be done to make good use of more than 3 or 4 cores in MESA/star.
It will be an ongoing effort to improve the design of the code in that area; help with that is welcomed!



web traffic stats SourceForge.net Logo Generated by webgen website design by
Andreas Viklund