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..
website
design
by
Andreas Viklund