Here are a number of small AMUSE tutorials in the form of python notebooks. These tutorial will (in part) be used for the lecture series on Simulation and Modeling in astrophysics at Leiden Observatory of Leiden University, year 2020 September to December.
Further course information can be found at the wiki
Responsibility --so-far-- is by Simon Portegies Zwart But anybody who would like to contribute is welcome.
The course is composed of 12 lectures with an equal number of assignmnets. In the middele, after 6 lectures (assignmnets) there will be a small test, and there is a final test at the end.
Exploring some of the capabilities of units in AMUSE
- How to import AMUSE modules.
- Declare variable and parameters with units.
- Perform simple mathematical operations on variables with units.
- Printing results in your preferred units.
Handling particles
- Initialize particle sets.
- Assign values to particle-set attributes.
- Use particle-set member functions.
- Assign a new attribute to a particle set.
- Manipulate particle sets.
- Query particle sets and get help.
- Select specific particles from a set.
Learn how to use modules and set up binary and multiple systems.
- Set-up a particle set.
- Initialize planetary system.
- Converting orbital elements to Cartesian coordinates.
- Generate binary from orbital elements.
perform simple N-boyd simulation
- How to generate inital conditions using built-in functions:
- How to generate a mass-function.
- How to generate a point-symmetric density distribution of particles.
- Initializing a direct gravitational N-body code.
- Initialize and use channels for intra-code data transfer.
- Detecting binaries.
- Simple plotting using matplotlib and AMUSE-native overloads.
- Making cumulative distributions
Perform simple stellar evolution calculation by setting up a stellar mass-function, declaring the stellar evolution code and run it to a certain moment in time.
- Generate stellar mass-function from internal AMUSE routine.
- Plot the results.
- Use channels from and to running modules.
Run a stellar evolution code as well as an N-body code and assure that the result is self consistent.
- Initiate multiple independent codes.
- exchange information from one code to another.
- Use Channels across modules.
- Plot results.
Perform an N-body calculation that includes stellar evolution and collisions between stars.
- Channels
- Generate initial conditions.
- Initialize stellar and N-body codes.
- More advanced channels for copying specific attributes.
- Sstopping conditions.
- Initiate collision detection.
- Find a specific particle in another particle set.
- Merge stars.
- How to find an interacting subset of particles
Simulate a single star (and a cluster) in orbit around the Galactic center.
- Single-directional hierarchical code coupling strategy (i.e. classice bridge).
- Bridge timesteps.
- Constructing classes in Python
- Incorporating an external potential to an N-body simulation
- Appreciate the role of get_gravity_at_point function in bridge.
- Appreciate the role of get_potential_at_point function in bridge.
Simulate several planetary system, each with their own N-body integrator, and the lot integrated in another N-body code. Note that here the interactions of one planet to the planets around another star are ignored in this implementation.
- use a cascade of bridges
Not yet documented Not yet working You simulate a debris disk around a moon, in orbit around a planet, in orbit around a star. This requires a higher order bridge, in order to assure that the orbital integration is performed with sufficient precision and accuracy.
- Initialize a two-way bridge
- High-order bridge initalization
- How to construct a disk around a celestial body.
Not yet documented Construct a hierarchial bridge to integrate a highly hierarchical system of star and planets.
- Non-linear coupling strategies (bridge).
- Hierarchical coupling strategies (bridge).
- Multiple channels to single particle set.
Evolve a massive single star up to the moment it explodes in a supernova. After this we inject energy into the inner-region of the star and follow the hydrodynamics of the explosion by means of a smoothed-particle hydrodynamics code.
- Run another AMUSE module to generate initial conditions for yet another code.
- How to recove the crash of a code and pick-up the result.
- Store simulation data in the form if python pickel files, and recover from those.
- plot the result of a hydrodynamical simulation.
- make an animation of simulation results.
- Run an AMUSE module as a parallel job.
- learn how to construct a population of stars that did not co-evolve
Not yet constructed