vice.singlezone.Zin =================== Type : real number, ````, or ``dataframe`` Default : 0.0 The metallicity of gas inflow. Numbers and functions apply to all elements tracked by the simulation. Functions must accept time in Gyr as the only parameter. A dictionary or a ``dataframe`` can also be passed, allowing real numbers and functions to be assigned on an element-by-element basis. This attribute quantifies only the metallicity of gas inflow *in excess* of that which is produced by the big bang. For example, even when this attribute is set to 0 for helium, its abundance by mass in accreting gas will still be given by ``vice.primordial["he"]``. If the element in question was not produced during big bang nucleosynthesis (i.e. ``vice.primordial["x"] = 0`` for some element "x"), then the same numerical solution applies and this attribute quantifies the total abundance by mass in the inflow. .. versionadded:: 1.3.1 In previous versions, the primordial abundance by mass of each element was included in the numerical calculation of the inflow metallicity but was not recorded in the output. That is, an inflow metallicity of zero for helium meant that its abundance in infalling gas was exactly the primordial abundance. With this patch, this book-keeping is adjusted to account for this, and outputs will reflect a non-zero abundance in primordial gas. .. tip:: The easiest way to switch this attribute to a dataframe is by passing an empty python dictionary ``{}``. .. note:: Dictionaries will be automatically converted into a ``dataframe``. .. note:: Saving functional attributes with VICE outputs requires the package dill_, an extension to ``pickle`` in the Python_ standard library. It is recommended that VICE user's install dill_ >= 0.2.0. .. _dill: https://pypi.org/project/dill/ .. _Python: https://docs.python.org/library/ Example Code ------------ >>> import vice >>> sz = vice.singlezone(name = "example") >>> sz.Zin = 0.001 >>> def f(t): return 0.001 * (t / 5) >>> sz.Zin = lambda t: 0.001 * (t / 5) >>> sz.Zin = {} >>> sz.Zin vice.dataframe{ sr -------------> 0.0 fe -------------> 0.0 o --------------> 0.0 } >>> sz.Zin["o"] = 0.001 >>> sz.Zin["fe"] = lambda t: 1.0e-04 * (t / 5) >>> sz.Zin vice.dataframe{ sr -------------> 0.0 fe -------------> (t)> o --------------> 0.001 }