introduction to muse - astro.uni-bonn.demodest8/talks/modest8_mcmillan.pdf · – evolution (?) →...

Post on 25-Apr-2018

228 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

MODEST-8

Introduction to MUSE

Steve McMillan

MODEST Research

● dense stellar systems– star clusters, galactic nuclei

● many physical processes– stellar dynamics on large and

small scales– stellar evolution– stellar encounters and collisions– gas dynamics

● large dynamic range● physical interactions among

stars

MODEST-1

● no agenda, no speakers!● recognition of basic

issues● breakout groups and

software modules– integration of live stellar evolution?– integration of live stellar collisions?

● MODEST name!

Early Successes

● first general discussion of software interfaces● definition of an

elementary stellar interface

● “toy” stellar evolution/collision implementation (Makino & Hut, in the “proceedings”)

MODEST-2

● no agenda, a few speakers!● hands-on workshop

– integration of dynamics, stellar evolution, hydrodynamics

– runaway mergers

– blue stragglers

– application to specific clusters

● MMAS/Triptych/Tripletych (Lombardi)

● working groups!

A MODEST Problem...

● runaway mergers in clusters– dynamics → high densities– collisions → mergers– ~no mass loss (?) → supermassive stars– evolution (?) → intermediate-mass black holes

A MODEST Problem...

● runaway mergers in clusters– dynamics → high densities– collisions → mergers– ~no mass loss (?) → supermassive stars– evolution (?) → intermediate-mass black holes

● simulation issues– many-body dynamics– stellar hydrodynamics– “exotic” stellar evolution– mass loss from massive stars

Freitag, Gürkan, & Rasio (2006)

Portegies Zwart et al. (2004)

“Kitchen Sink” Codes

● very successful for MODEST problems● limited physics menu

– detailed dynamics– approximate SE– heuristic BE– cartoon hydrodynamics

● hard to expand functionality● wish list...

The State of the Art

● NBODY4/6 + BSE + sticky spheres (?)● kira + seba + sticky spheres● MC + startrack + sticky spheres

– SPH/MMAS after the fact (Lombardi)

● how to include more/better physics?● hard-wiring legacy codes is not the answer

MODEST begets MUSE

● MODEST 6a: Lund, December 2005– live stellar evolution (Church)– evolution of MMAS products (Pols/Glebbeek/Lombardi)– renewed discussion of software frameworks

● MODEST 6d: Amsterdam, April 2006– first “framework” workshop– modules, interfaces, and C++ glue– name MUSE coined:

Multiscale Multiphysics Scientific Environment

What is MUSE?

What is MUSE?

● collaborative programming effort● software interface designed to connect

independent codes● interoperability: plug and play● “easy” incorporation of new physics● facilitate code integration and comparison● don't mandate a programming style or

language

Stellar Dynamics Stellar Evolution

Hydrodynamics

Stellar Dynamics Stellar Evolution

Hydrodynamics

Scheduler

Stellar Dynamics Stellar Evolution

Hydrodynamics

Scheduler

globaldynamicaldata

detailedstellar data

Stellar Dynamics Stellar Evolution

Scheduler

Hydrodynamics

detailedstellar data

Top-level Structure...

while (t <= t_end) {

get_nodes_to_move(b, next_nodes, n_next, t);

if (t > t_log) log_output(b); if (t > t_snap) snap_output(b); if (t > t_end) return; if (t > t_esc) check_and_remove_escapers(b);

integrate_list(b, next_nodes, n_next, t);

if (t >= dt_sstar) evolve_stars(b); }

...and MUSE Modules

● particle pushing● binary and multiple systems● stellar evolution recipes● binary evolution recipes● stellar collision recipes● (live stellar and binary evolution)● (MMAS recipes)● (live SPH) . . .

Stellar DynamicsStellar andBinaryEvolution

Scheduler

detailedstellar dataHydrodynamicsMultiples

MUSE Components

● wiki: http://muse.li

● modules for stars, dynamics, collisions, etc.● implemented as “black boxes” with wrappers● well defined interfaces● all modules provide prediction time scales ● coordinated by “blind” scheduler

● top level “glue” — python (+swig/f2py)

Star Module

INTERFACEinitializationmass, composition

star ID

query

ID, time

massradiustemperature(structure)...

scheduling

ID t

toy modelanalytic calculation

lookup tableheuristic recipefull simulation(real star...)

...

stellar data

stellar module EFT89

INTERFACE

lookup R(M, t), L(M, t), ...

star 1, initial mass M1

star 2, initial mass M2

star 3, initial mass M3

star 4, initial mass M4

stellar module EFT89

INTERFACE

lookup R(M, t), L(M, t), ...

star 1, initial mass M1

star 2, initial mass M2

star 3, initial mass M3

star 4, initial mass M4

ID = 3, t R3(t), L

3(t), etc.

stellar module

EV (star)

INTERFACE

model r(m), L(m), (m)...

star 1, t1, r

1(m), L

1(m),

1(m)

star 2, t2, r

2(m), L

2(m),

2(m)

star 3, t3, r

3(m), L

3(m),

3(m)

star 4, t4, r

4(m), L

4(m),

4(m)

stellar module

EV (star)

INTERFACE

model r(m), L(m), (m)...

star 1, t1, r

1(m), L

1(m),

1(m)

star 2, t2, r

2(m), L

2(m),

2(m)

star 3, t3, r

3(m), L

3(m),

3(m)

star 4, t4, r

4(m), L

4(m),

4(m)

ID = 4, t R4(t), L

4(t), etc.

from gravity.hermite0.muse_dynamics import Hermite as dynfrom stellar.EFT89.muse_stellar import EFT89 as starfrom collisions.sticky_spheres.muse_collisions import StickySpheres as coll.. (initialization).while time < t_max:

time += dtimewhile dyn.get_time() < time:

id1 = dyn.evolve(time)

if id1 > 0:id2 = dyn.find_colliding_secondary(id1)evolve_stars(dyn.get_time())collide_stellar_pair(id1, id2)

evolve_stars(time)

print "end at t = ", time, ", Nstars= ", star.get_number()

int add_star(int id, double mass, double time_of_birth = Current, double metallicity = Default);int remove_star(int id);int get_number();

double get_time_of_birth(int id);double get_time_step(int id);int evolve(int id, double time);

double get_current_time();double get_model_time(id);double get_previous_model_time(id);double get_initial_mass(int id);double get_mass(int id);double get_radius(int id);double get_effective_temperature(int id);double get_luminosity(int id);

Current Stellar Interface

MUSE Functionality

● initial conditions: random numbers, standard models, etc.

● gravity modules– hermite0: shared time step Hermite integrator (MMH)– nbody1h: GRAPE-enabled Hermite NBODY1 (Heggie)– BHTree: parallel/GRAPE/GPU BH tree code (Makino)– CMC: Monte-Carlo (Fregeau)– all softened; emphasis on diversity!

● multiples– smallN (from Starlab): standalone small-N integrator, with

automatic termination and classification of outcomes

MUSE Functionality

● stellar evolution modules– EFT89– HPT00– other tracks (Gaburov)– TWIN (soon—Glebbeek)– EZ (soon—Justham)

● stellar collision modules– sticky spheres– MMAS (Lombardi)

● grid enabled, in principle (Groen)

Other MUSE Issues

● programming culture● legacy codes● legacy programmers● code sharing—pros and cons

● high-performance applications● comparison of simulations with observations

MUSE Summary

● interchangeable modules with standardized interfaces

● allows experimentation and comparison● individual modules clean implementations of

specific pieces of physics– parallel, GRAPE/GPU accelerated, grid enabled, etc.

● top-level code leverages python functionality– easy to add new modules– interface specifications still evolving

Time to replace NBODY and kira?

- maybe not quite yet...

MUSE Sessions at MODEST-8

● Friday: discussion/demonstration/tutorial● Saturday: hands-on

DISCUSSION OF MODEST-9 @ KITP AFTER THE AFTERNOON SESSION TODAY

top related