def conc_to_enh(C_t, t10, k, c_to_r_model, signal_model):
    """Forward model to convert concentration to enhancement.

    Assumptions:
        -Fast-water-exchange limit.
        -Assumes R20=0 for convenience, which may not be valid for all
        sequences
        -R2* calculation not presently implemented. Assumes R2=R2*

    Parameters
    ----------
    C_t : ndarray
        1D float array containing tissue concentration time series (mM),
        specifically the mMol of tracer per unit tissue volume.
    k : float
        B1 correction factor (actual/nominal flip angle)
    t10 : float
        Pre-contrast R1 relaxation rate (s^-1)
    c_to_r_model : CRModel
        Model describing the concentration-relaxation relationship.
    signal_model : SignalModel
        Model descriibing the relaxation-signal relationship.

    Returns
    -------
    enh : ndarray
        1D float array containing enhancement time series (%)
    """
    R10 = 1 / t10
    R1 = c_to_r_model.R1(R10, C_t)
    R2 = c_to_r_model.R2(0, C_t)  # can assume R20=0 for existing signal models
    s_pre = signal_model.R_to_s(s0=1., R1=R10, R2=0, R2s=0, k_fa=k)
    s_post = signal_model.R_to_s(s0=1., R1=R1, R2=R2, R2s=R2, k_fa=k)
    enh = 100. * ((s_post - s_pre) / s_pre)
    return enh