You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: postprocess_part1.m
    path of file: ./repos/Isogeometric-Analysis/projects/phase_field/1d_brittle_fracture_full
    
    the code of the file until where you have to start completion: %--------------------------------------------------------------------------
%  Author: Isaac J. Lee (ijlee2@ices.utexas.edu)
%  
%  
%  Summary:
%  
%  This routine plots the displacement and phase fields at each Newton's
%  iteration for the problem of 1D cracked bar in tension.
%  
%  
%  Instructions:
%  
%  Use the terminal to run the driver file with this command:
%  
%      ./matbg.sh driver_postprocess_part1.m output
%  
%  Note that,
%  
%      path_to_assembly_directory is the path to the assem
    
function postprocess_part1(path_to_assembly_directory, path_to_results_directory, path_to_outputs_directory)
    % Load the global assembly file
    load(sprintf('%sfile_assembly_global', path_to_assembly_directory), ...
         'material_L'    , ...
         'material_A'    , ...
         'material_G_c'  , ...
         'material_ell_0', ...
         ...
         'maxNewtonsMethod');
    
    % Load the patch assembly file
    load(sprintf('%sfile_assembly_patch%d', path_to_assembly_directory, 1), ...
         'material_E'        , ...
         'p1'                , ...
         'nodes'             , ...
         'bezierExtractions1', ...
         'numElements1'      , ...
         'elementSizes1'     , ...
         'IEN_array'         , ...
         'numQuadraturePoints');
    
    % Load the BCs
    load(sprintf('%sfile_bc', path_to_assembly_directory), 'LM_array1', 'LM_array2', 'u_L');
    
    
    %----------------------------------------------------------------------
    %  Set quadrature rule
    %----------------------------------------------------------------------
    % Some useful constants
    constant_p1p1 = p1 + 1;
    
    
    % Number of points that we consider on each element
    numPointsPerElement = 5;
    
    % Points on the Bernstein domain
    t = linspace(0, 1, numPointsPerElement)';
    
    % Evaluate the Bernstein polynomials
    Bernstein1_der0 = zeros(constant_p1p1, numPointsPerElement);

    for q_e = 1 : numPointsPerElement
        Bernstein1_der0(:, q_e) = eval_1d_bernstein(t(q_e), p1);
    end