function [E] = Get_E(T , P , Ac , E0 , fy0 )
    
    fy = Get_EC3_value(T, "fy", fy0);
    fp = Get_EC3_value(T, "fp", fy0);
    Ea = Get_EC3_value(T, "Ea", E0);
    ey = 0.02;
    et = 0.15;
    Eu = 0.2;
    ept = fp / Ea;
    c = (fy - fp) ^ 2 / ((ey - ept) * Ea - 2 * (fy - fp));
    b = sqrt(c * (ey - ept) * Ea + c ^ 2);
    A = sqrt((ey - ept) * (ey - ept + c / Ea));
    
    s = P / Ac;
    if (s < fp)  %Elastic range
        e = s / Ea;
        E = Ea;
    elseif (s < fy)  %Tangent range
        e = ey - (A ^ 2 - (A / b) ^ 2 * (P / Ac + c - fp) ^ 2) ^ 0.5;
        E = b / A * (ey - e) / (A ^ 2 - (ey - e) ^ 2) ^ 0.5;
    else %Yielded
        e = Eu;
        E = 0;
    end

end