Source code for message_ix_models.model.material.demand.math_util

import numpy as np
import pandas as pd

GIGA = 10**9
MEGA = 10**6


[docs] def steel_function(x: tuple[pd.Series, pd.Series], a: float, b: float, m: float): r""":math:`cons_pcap = ae^{\frac{b}{gdp_pcap}}(1 - m) ^ {del_t}`""" gdp_pcap, del_t = x return a * np.exp(b / gdp_pcap) * (1 - m) ** del_t
[docs] def cement_function(x: tuple[pd.Series, pd.Series], a: float, b: float): r""":math:`cons_pcap = ae^{\frac{b}{gdp_pcap}}`""" gdp_pcap = x[0] return a * np.exp(b / gdp_pcap)
[docs] def gompertz(phi: float, mu: float, y: pd.Series | float, baseyear: int = 2020): r""":math:`1 - e^{-\phi e^{-\mu (y - baseyear)}}`""" return 1 - np.exp(-phi * np.exp(-mu * (y - baseyear)))