from dolfin import *

D_a = 0.6E3
D_b = 0.15E3
D_c = 0.15E3
D_d = 0.51E3
D_e = 0.64E3
D_f = 0.64E3


f_glc = 0.048
lac_degr = 0.0969

# new diffusion coeff
def dimensionless_diffusion_coeff():
    D_a_bar = Constant(1.0)
    D_b_bar = Constant(D_b / D_a)
    D_c_bar = Constant(D_c / D_a)
    D_d_bar = Constant(D_d / D_a)
    D_e_bar = Constant(D_e / D_a)
    D_f_bar = Constant(D_f / D_a)

    return(D_a_bar, D_b_bar, D_c_bar, D_d_bar, D_e_bar, D_f_bar)



def dim_param(L, alpha, A_tot, percentage =1.0):
    t_c = L**2 /D_a


    f_bar = f_glc * percentage /alpha * t_c
    lac_bar = lac_degr * t_c


    # Coefficient dimensionless for HXK

    beta_a = t_c * A_tot**2
    beta_b = t_c * alpha * A_tot
    beta_c = t_c * alpha * A_tot
    beta_d = t_c * A_tot**2

    # Coefficient dimensionless for PYRK

    gamma_b = A_tot * alpha * t_c
    gamma_c = A_tot * alpha * t_c
    gamma_d = A_tot **2 * t_c
    gamma_e = A_tot **2 * t_c

    # Coefficient dimensionless for LDH

    mu_e = t_c
    mu_g = t_c

    # Coefficient dimensionless for Mito

    csi_b = t_c * alpha * A_tot**27
    csi_c = t_c * alpha *A_tot**27
    csi_e = t_c * A_tot**28

    # Coefficient dimensionless for act

    tau_b = t_c
    tau_c = t_c

    return(t_c, f_bar, lac_bar, Constant(beta_a), Constant(beta_b), Constant(beta_c), Constant(beta_d), Constant(gamma_b), Constant(gamma_c), Constant(gamma_d), Constant(gamma_e), Constant(mu_e), Constant(mu_g), Constant(csi_b), Constant(csi_c), Constant(csi_e), Constant(tau_b), Constant(tau_c))
