MESA++ logo

Level 2 MESA++

This page describes Level 2 MESA++, which extends the Level 0 and Level 1 interfaces with C++ classes.

What is Level 2 MESA++?
Some wrinkles
Namespaces


What is Level 2 MESA++?

Level 2 MESA++ extends the Level 1 MESA++ procedural interface to a fully class-based interface. It is still in its early phases, but is intended ultimately to be the high-level MESA++ interface of choice. At present, only a few classes are provided, but they include the Star class that wraps and the data and procedures required to load, evolve, examine, plot, and store a stellar model.


Some wrinkles

Because MESA++ is built on MESA, and part of the philosophy of MESA++ is that it not force changes on MESA that would not be a good idea if MESA++ did not exist, we do not have total flexibility to implement our classes as we wish. This introduces a certain amount of cruftiness into the class implementations. The worst of these is the static lookup table required to map a Mesa star_info object back to its wrapping Star object. However, this cruftiness is mostly hidden from ordinary developers and we judge it superior to putting an extra pointer into the MESA star_info object whose only purpose is to support MESA++ .


Name spaces


Level 2 classes are placed in the same namespace as Level 1 procedures and data, since there is little risk of name collisions. This also allows the transition from Level 1 to Level 2 to take place seamlessly, even within a single program..


web traffic statsSourceForge.net Logowebsite design by
Andreas Viklund