function [Qsr, ks] = sectionStateDetermin_uniaxialFiber(materialInput, coordinates_fibers_columns, area_fibers_columns, ds_iSec)
    % Number of fibers in the section
    numFiber = length(area_fibers_columns);

    % Initialize section state variables
    Qsr = zeros(2, 1);
    ks = zeros(2, 2);

    % Loop over each fiber in the section
    for i = 1:numFiber
        % Fiber properties
        x = coordinates_fibers_columns(i,1);  
        y = coordinates_fibers_columns(i,2);  
        A = area_fibers_columns(i);             

        % Section geometrical vector
        lkfiber = [1 y];

        % Strain calculation
        strain = lkfiber * ds_iSec;

        % Material state determination (assuming bilinMonotonic is defined)
        [stress, tangentModulus] = bilinMonotonic(materialInput(1), materialInput(2), materialInput(3), strain);

        % Integrate all fibers
        Qsr = Qsr + lkfiber' * A * stress;
        ks = ks + (lkfiber' * lkfiber) * A * tangentModulus;
    end
end