I would rename the module models.py as chem_ev_models.py or anything of the sort.
I would try to avoid single character variables such as Z or M, as well as sticking to lower case format for attributes and methods.
Base class
Should it have any instance attribute? Currently it has M_gas and Z.
If something like z_ism (as a replacement for Z) is an attribute of the base class, we would also need to define the times, right? Also, we could convert it into a property, and ensure that it is always a (one dimensional) np.array. Right now it could have different types (float or array).
Tabular_MFH
If we are using z_ism, instead of the average stellar metallicity as function of time, then we can use the new method to interpolate the masses.
Misc
Is any module using the methods dot_SFR, ddot_SFR?
Polynomial_MFH_fit is not a CEM, should it be moved somewhere else?
For reference
integral_sfr(t) = int sfr(t) dt
integral_z_sfr(t) = int sfr(t) z_ism(t) dt / integral_sfr(t)
General
I would rename the module
models.py
aschem_ev_models.py
or anything of the sort.I would try to avoid single character variables such as
Z
orM
, as well as sticking to lower case format for attributes and methods.Base class
Should it have any instance attribute? Currently it has
M_gas
andZ
.If something like
z_ism
(as a replacement forZ
) is an attribute of the base class, we would also need to define the times, right? Also, we could convert it into a property, and ensure that it is always a (one dimensional) np.array. Right now it could have different types (float or array).Tabular_MFH
z_ism
, instead of the average stellar metallicity as function of time, then we can use the new method to interpolate the masses.Misc
dot_SFR
,ddot_SFR
?Polynomial_MFH_fit
is not a CEM, should it be moved somewhere else?For reference
What do you think?