Javascript version of kimmy, Galactic chemical evolution in python
This is a stand-alone Javascript version of the
kimmy Python library for Galactic
chemical evolution. kimmy.js
replicates all of the functionality
in kimmy.py
as of 01/17/2020.
Jo Bovy (University of Toronto): bovy - at - astro - dot - utoronto - dot - ca
Load the library, e.g., from jsDelivr
using
<script src="https://cdn.jsdelivr.net/npm/@jobovy/kimmy"></script>
for the latest version or specify the version with (update 1.1.2
to later versions as necessary)
<script src="https://cdn.jsdelivr.net/npm/@jobovy/kimmy@1.1.2"></script>
Currently, the only implemented feature is a simple one-zone chemical
model with two elements O
(for oxygen) and Fe
(for
iron). Initialize this model as
var oz= new Kimmy.OneZone();
then for example compute the evolution of the default model and obtain the [O/Fe] vs. [Fe/H] sequence, do
// Define a logarithmically-spaced array of times to compute the evolution at
var Ntimes= 51;
var min_age= 0.001; // Gyr
var max_age= 12.5; // Gyr
var log10_min_age= Math.log10(min_age);
var log10_max_age= Math.log10(max_age);
var times= Array.apply(null, {length: Ntimes}).map(Number.call, Number).map\
(x => log10_min_age+x*(log10_max_age-log10_min_age)/(Ntimes-1.)).map(x => Math.pow(10.,x));
// Obtain the evolution
var OFe= oz.O_Fe(times);
var FeH= oz.Fe_H(times);
You can also compute the distribution of [Fe/H], [O/H], and [O/Fe], for example as
var FeH_dist= oz.Fe_H_DF(0.1,-3.5,1.0); // inputs are dFeH, FeHmin, FeHmax
This returns a list with the element being the [Fe/H] bins and the second the distribution.
You can directly update the main parameters of the model and the model
will be re-computed. For example, to change the outflow parameter
eta
do
oz.eta= 4.
// Re-obtain the evolution
var OFe= oz.O_Fe(times);
var FeH= oz.Fe_H(times);
Keep in mind that once you change a parameter, it remains changed in the model.
Follow the following steps:
- Update the version in
package.json
- Create a new git tag for this version:
git tag vX.X.X
- Package up for npm:
npm pack
, check that no extraneous files are included - Publish to npm:
npm publish
- Done!