function varargout = MainFrame(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
    'gui_Singleton',  gui_Singleton, ...
    'gui_OpeningFcn', @MainFrame_OpeningFcn, ...
    'gui_OutputFcn',  @MainFrame_OutputFcn, ...
    'gui_LayoutFcn',  [] , ...
    'gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end

function MainFrame_OpeningFcn(hObject, eventdata, handles, varargin)
global h;
movegui(hObject,'center');
v = ver;
has_wavelettool = any(strcmp(cellstr(char(v.Name)), 'Wavelet Toolbox'));
if has_wavelettool==0
    reply=questdlg({'Wavelet Toolbox is not installed on your system!','This will cause incorrect work of some benchmark functions.','Do you want to proceed anyway?'},'Error #001','Yes','No','Yes');
    if strcmpi(reply, 'No')
        close(gcf);
    end
else
    handles.output = hObject;
    guidata(hObject, handles);
end
warning('off','all');
load '..\pict\wavstructdamash';
axes(handles.axes5);
h=imagesc(wavstructdamash); axis off; axis image;
handles.h = h; 
guidata(hObject,handles);
set(h, 'ButtonDownFcn', @load_stuff)

function load_stuff(hObject, eventdata)
global h;
if hObject == h
    url='http://ipkm.polsl.pl/wavstructdamas/';
web(url,'-browser');
end

function varargout = MainFrame_OutputFcn(hObject, eventdata, handles)

function pushbutton1_Callback(hObject, eventdata, handles)
axes(handles.axes1);
cla;

popup_sel_index = get(handles.popupmenu1, 'Value');
switch popup_sel_index
    case 1
        plot(rand(5));
    case 2
        plot(sin(1:0.01:25.99));
    case 3
        bar(1:.5:10);
    case 4
        plot(membrane);
    case 5
        surf(peaks);
end


function FileMenu_Callback(hObject, eventdata, handles)

function CloseMenuItem_Callback(hObject, eventdata, handles)
selection = questdlg(['Close ' get(handles.figure1,'Name') '?'],...
    ['Close ' get(handles.figure1,'Name') '...'],...
    'Yes','No','Yes');
if strcmp(selection,'No')
    return;
end

delete(handles.figure1)

function popupmenu1_Callback(hObject, eventdata, handles)

function popupmenu1_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end
set(hObject, 'String', {'plot(rand(5))', 'plot(sin(1:0.01:25))', 'bar(1:.5:10)', 'plot(membrane)', 'surf(peaks)'});

function popupmenu2_Callback(hObject, eventdata, handles)
contents = get(handles.popupmenu2,'String');
if iscell(contents)
    pop2val = contents{get(handles.popupmenu2,'Value')};
    [wnames,maxlev]=wavlevselect(pop2val);
    set(handles.popupmenu3,'String',wnames);
    set(handles.popupmenu3,'Value',1);
    set(handles.popupmenu4,'String',maxlev);
    set(handles.popupmenu4,'Value',1);
    wtchk(handles,pop2val);
end

function popupmenu2_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end

function edit1_Callback(hObject, eventdata, handles)

function edit1_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end

function edit3_Callback(hObject, eventdata, handles)

function edit3_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end

function edit4_Callback(hObject, eventdata, handles)

function edit4_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end

function popupmenu3_Callback(hObject, eventdata, handles)
cont1 = get(handles.popupmenu2,'String');
cont2 = get(handles.popupmenu3,'String');
if (iscell(cont1) && iscell(cont2))
    WTval = cont1{get(handles.popupmenu2,'Value')};
    Wnameval = cont2{get(handles.popupmenu3,'Value')};
    wavechk(handles,WTval,Wnameval);
end

function popupmenu3_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end

function edit5_Callback(hObject, eventdata, handles)

function edit5_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end

function popupmenu4_Callback(hObject, eventdata, handles)

function popupmenu4_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end

function checkbox1_Callback(hObject, eventdata, handles)

function checkbox2_Callback(hObject, eventdata, handles)

function checkbox3_Callback(hObject, eventdata, handles)

function checkbox4_Callback(hObject, eventdata, handles)

function checkbox5_Callback(hObject, eventdata, handles)

function checkbox6_Callback(hObject, eventdata, handles)

function checkbox7_Callback(hObject, eventdata, handles)

function checkbox8_Callback(hObject, eventdata, handles)

function checkbox9_Callback(hObject, eventdata, handles)

function checkbox10_Callback(hObject, eventdata, handles)

function checkbox11_Callback(hObject, eventdata, handles)

function checkbox12_Callback(hObject, eventdata, handles)

function checkbox13_Callback(hObject, eventdata, handles)

function checkbox14_Callback(hObject, eventdata, handles)

function popupmenu5_Callback(hObject, eventdata, handles)

function popupmenu5_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end

function popupmenu6_Callback(hObject, eventdata, handles)

function popupmenu6_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end

function pushbutton4_Callback(hObject, eventdata, handles)

function pushbutton5_Callback(hObject, eventdata, handles)
global coeffs clabelsmatrix isocoeffs indiso;
ResultSel=get(handles.popupmenu6,'String');
CurrentResult=ResultSel{get(handles.popupmenu6,'Value')};
WTval = get(handles.popupmenu2,'String');
WT2val = WTval{get(handles.popupmenu2,'Value')};
[datadim,datasizes]=dimsizetype(coeffs{1});
coeffvis(handles,CurrentResult,WT2val,datadim,coeffs,clabelsmatrix,isocoeffs,indiso);

function pushbutton6_Callback(hObject, eventdata, handles)
global modes coeffs clabelsmatrix;
WTval = get(handles.popupmenu2,'String');
if strcmp(WTval,'Select...')
    msgbox('No data available for the analysis!','Error #002');
else
    Wnameval = get(handles.popupmenu3,'String');
    visstat1=get(handles.edit5,'Visible');
    visstat2=get(handles.popupmenu11,'Visible');
    if (strcmp(visstat1,'on') && strcmp(visstat2,'off'))
        Order = get(handles.edit5, 'String');
    elseif (strcmp(visstat1,'off') && strcmp(visstat2,'on'))
        Orchk=get(handles.popupmenu11,'String');
        Order=Orchk{get(handles.popupmenu11,'Value')};
    else
        Order = get(handles.edit5, 'String');
    end
    WT2val=WTval{get(handles.popupmenu2,'Value')};
    if strcmp(WT2val,'Select...')
        msgbox('The transform was not selected!','Error #003');
    else
        if (strcmp(WT2val,'1D Discrete Fractional Wavelet Transform (causal)') || strcmp(WT2val,'2D Discrete Fractional Wavelet Transform (causal)'))
            Shift = num2str((str2num(Order)+1)/2);
        else
            Shift = get(handles.edit17,'String');
        end
        Levels = get(handles.popupmenu4,'String');
        DecLevel = Levels{get(handles.popupmenu4,'Value')};
        finflag=chkwtsett(handles,WTval,Wnameval,Order,Shift);
        if finflag==1
            consmodes=modecons(handles);
            coeffs=wtransform(handles,modes,consmodes,WTval,Wnameval,Order,Shift,DecLevel);
            [datadim,datasizes]=dimsizetype(modes{1});
            if datadim==3
                initsett3dres(handles);
            else
                initsettrectres(handles);
            end
            circchk=get(handles.edit4,'String');
            if circchk(1:8)=='Circular'
                clabelsmatrix=plotsettcircres(handles,datadim,datasizes,WTval,DecLevel,consmodes,coeffs);
            else
                clabelsmatrix=plotsettrectres(handles,datadim,datasizes,WTval,DecLevel,consmodes,coeffs);
            end
            isotropiccase(handles,datadim,Wnameval);
            handles=guidata(handles.output);
            guidata(handles.output,handles);
        end
    end
end

function edit6_Callback(hObject, eventdata, handles)

function edit6_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end

function pushbutton7_Callback(hObject, eventdata, handles)
global coeffs clabelsmatrix;
finflag=chkbesett(handles,coeffs);
if finflag==1
    coeffs=beremove(handles,coeffs);
    ResultSel=get(handles.popupmenu6,'String');
    CurrentResult=ResultSel{get(handles.popupmenu6,'Value')};
    WTval = get(handles.popupmenu2,'String');
    WT2val = WTval{get(handles.popupmenu2,'Value')};
    [datadim,datasizes]=dimsizetype(coeffs{1});
    coeffvis(handles,CurrentResult,WT2val,datadim,coeffs,clabelsmatrix);
end

function popupmenu7_Callback(hObject, eventdata, handles)

function popupmenu7_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end

function pushbutton8_Callback(hObject, eventdata, handles)
global coeffs;
contents = get(handles.popupmenu6,'String');
popupmenu6value = contents{get(handles.popupmenu6,'Value')};
if ~strcmp(contents,'Select...')
    if isvector(coeffs{1})
        colorbar('off');
        set(handles.mainframe2,'Position',[53 78 450 450]);
        h = handles.mainframe2;
        f1=figure;
        s=copyobj(h,f1);
        set(f1, 'Position', [200 200 550 550]);
        figure(f1);
    else
        axes(handles.mainframe2);
        c=colorbar('location','southoutside');
        cpos = get(c,'Position');
        cpos=[0.546376811594203 0.083762149799886 0.435748792270531 0.5*cpos(4)];
        set(c,'Position',cpos);
        set(handles.mainframe2,'Position',[53 78 450 450]);
        h = handles.mainframe2;
        f1=figure;
        s=copyobj(h,f1);
        set(f1, 'Position', [200 200 550 550]);
        figure(f1);
    end
    set(handles.mainframe2,'Position',[564 90 450 450]);
else
    msgbox({'No data available!' 'Please perform the analysis first.'},'Error #004');
end

function popupmenu8_Callback(hObject, eventdata, handles)

function popupmenu8_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end

function pushbutton10_Callback(~, ~, handles)
axes(handles.mainframe1);
set(handles.radiobutton14,'Value',1);
global modes;
[datadim,~]=dimsizetype(modes{1});
if datadim ~= 3
    contents = get(handles.popupmenu8,'String');
    if ~strcmp(contents,'Select...')
        popupmenu8value = contents{get(handles.popupmenu8,'Value')};
        global modes;
        probltype = get(handles.edit4,'String');
        [~, remain] = strtok(popupmenu8value);
        if isvector(modes{1})
            cla;
            plot(modes{str2num(remain)});
            xlimits=get(handles.mainframe1,'XLim');
            set(handles.edit10,'String',num2str(xlimits(1)));
            set(handles.edit11,'String',num2str(xlimits(2)));
            ylimits=get(handles.mainframe1,'YLim');
            set(handles.edit12,'String',num2str(ylimits(1)));
            set(handles.edit13,'String',num2str(ylimits(2)));
            set(handles.edit14,'String','NA');
            set(handles.edit15,'String','NA');
        else
            if strcmp(probltype,'Circular plate: stiff inclusion (exp)')
                R=0.5;
                r=R/64:R/64:R;
                phi=0:2*pi/63:2*pi;
                [th,rq] = meshgrid(phi,r);
                [X_1,Y_1,Z_1] = pol2cart(th,rq,modes{str2num(remain)}');
                h = polar([0 2*pi], [0 R]);
                delete(h)
                hold on;
                C=surf(X_1,Y_1,Z_1);
                hold off;
                shading interp;
                set(findall(gca,'Type','patch'),'FaceColor','none');
            elseif (strcmp(probltype,'Circular plate: surface damage 1 (num)') || strcmp(probltype,'Circular plate: surface damage 2 (num)') || strcmp(probltype,'Circular plate: delamination (num)') || strcmp(probltype,'Circular plate: internal void (num)'))
                R=0.25;
                r=R/100:R/100:R;
                phi=0:2*pi/50:2*pi;
                [th,rq] = meshgrid(phi,r);
                [X_1,Y_1,Z_1] = pol2cart(th,rq,modes{str2num(remain)}');
                h = polar([0 2*pi], [0 R]);
                delete(h)
                hold on;
                C=surf(X_1,Y_1,Z_1);
                hold off;
                shading interp;
                set(findall(gca,'Type','patch'),'FaceColor','none');
            else
                cla;
                imagesc(modes{str2num(remain)});
            end
            axis xy;
            xlimits=get(handles.mainframe1,'XLim');
            set(handles.edit10,'String',num2str(xlimits(1)));
            set(handles.edit11,'String',num2str(xlimits(2)));
            ylimits=get(handles.mainframe1,'YLim');
            set(handles.edit12,'String',num2str(ylimits(1)));
            set(handles.edit13,'String',num2str(ylimits(2)));
            zlimits=get(handles.mainframe1,'ZLim');
            set(handles.edit14,'String',num2str(zlimits(1)));
            set(handles.edit15,'String',num2str(zlimits(2)));
            nbcol=256; bright=0;
            colormap(jet(nbcol));
            set(handles.slider1,'Value',nbcol); set(handles.slider2,'Value',bright);
            set(handles.edit8,'String',num2str(nbcol)); set(handles.edit9,'String',num2str(bright));
            c=colorbar('location','southoutside');
            cpos = get(c,'Position');
            cpos=[0.052657004830918 0.083762149799886 0.435748792270531 0.5*cpos(4)];
            set(c,'Position',cpos);
            set(handles.mainframe1,'Position',[53 90 450 450]);
        end
    else
        h = msgbox({'No data available!' 'Please upload data or select an example problem.'},'Error #005');
    end
else
    cla;
    CuttingPlane=get(handles.edit18,'String');
    if (~all(ismember(CuttingPlane,'1234567890')) || isempty(CuttingPlane))
        msgbox('Input of cutting plane is incorrect!','Error #039');
    else
        MaxZ=get(handles.edit15,'String');
        if str2num(CuttingPlane)>str2num(MaxZ)
            msgbox('Input of cutting plane is too big!','Error #040');
        else
            Cut=modes{1}(:,:,1:round(str2num(CuttingPlane)));
            vol3d('CData',Cut,'texture','3D');
            view(3);
            axis tight;
            set(handles.edit15,'String',CuttingPlane);
        end
    end
end

function pushbutton11_Callback(hObject, eventdata, handles)
global modes;
[datadim,~]=dimsizetype(modes{1});
if datadim ~= 3
    contents = get(handles.popupmenu8,'String');
    popupmenu8value = contents{get(handles.popupmenu8,'Value')};
    if ~strcmp(contents,'Select...')
        colorbar('off');
        h = handles.mainframe1;
        f1=figure;
        s=copyobj(h,f1);
        set(f1, 'Position', [200 200 550 550]);
        if ~isvector(modes{1})
            axes(handles.mainframe1);
            c=colorbar('location','southoutside');
            cpos = get(c,'Position');
            cpos=[0.052657004830918 0.083762149799886 0.435748792270531 0.5*cpos(4)];
            set(c,'Position',cpos);
            figure(f1);
        end
    else
        msgbox({'No data available!' 'Please upload data or select an example problem.'},'Error #006');
    end
else
    colorbar('off');
    h = handles.mainframe1;
    f1=figure;
    s=copyobj(h,f1);
    set(f1, 'Position', [200 200 550 550]);
    if ~isvector(modes{1})
        axes(handles.mainframe1);
        c=colorbar('location','southoutside');
        cpos = get(c,'Position');
        cpos=[0.546376811594203 0.083762149799886 0.435748792270531 0.5*cpos(4)];
        set(c,'Position',cpos);
        figure(f1);
    end
end

function ExampleMenuItem_Callback(hObject, eventdata, handles)

function OneDMenuItem_Callback(hObject, eventdata, handles)

function TwoDMenuItem_Callback(hObject, eventdata, handles)

function ThreeDMenuItem_Callback(hObject, eventdata, handles)

function LamPlateDamagCT_Callback(hObject, eventdata, handles)
cleaning(handles);
global modes;
h = waitbar(0,'Data loading, please wait...');
steps=1;
for step = 1:steps
    load '..\testdata\ct_exp\CF.mat';
    modes={CF};
    waitbar(step/steps);
end
close(h);
set(handles.edit4,'String','CF-epoxy plate with hole (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsett3d(handles,datasizes)
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function TextilPlateDamagCT_Callback(hObject, eventdata, handles)
cleaning(handles);
global modes;
h = waitbar(0,'Data loading, please wait...');
steps=1;
for step = 1:steps
    load '..\testdata\ct_exp\MLG.mat';
    modes={MLG};
    waitbar(step/steps);
end
close(h);
set(handles.edit4,'String','MLG-epoxy plate with hole (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsett3d(handles,datasizes)
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateSurfNum_Callback(hObject, eventdata, handles)

function LamPlateSurfExp_Callback(hObject, eventdata, handles)

function LamPlateImpact_Callback(hObject, eventdata, handles)

function LamPlateStoneImpact_Callback(hObject, eventdata, handles)

function SandPlateDamag_Callback(hObject, eventdata, handles)

function CrackRotor_Callback(hObject, eventdata, handles)

function CircPlateDelam_Callback(hObject, eventdata, handles)

function CircPlateIncl_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='stiffinc_exp';
probname='c';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Circular plate: stiff inclusion (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettcirc(handles,datasizes);
chkdef(handles,modes);
plotsettcirc2(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamBeamNum_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='lambeam_num';
probname='beamnum';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminated beam single crack (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamBeamSingleExp_Callback(hObject, eventdata, handles)

function pushbutton12_Callback(hObject, eventdata, handles)
global problname;
problname=get(handles.edit4,'String');
if isempty(problname)
    h=msgbox('The problem was not selected!','Error #007');
elseif strcmp(problname,'Own problem')
    h=msgbox('This function is not available for your own problem!','Error #008');
else
    PDescription
end

function pushbutton13_Callback(hObject, eventdata, handles)
global modes;
for i=1:length(modes)
    v=genvarname(['checkbox' num2str(i)]);
    vv=['handles.' v];
    eval(['set(' vv ',''Enable'',''on'')']);
    eval(['set(' vv ',''Value'',1)']);
end

function pushbutton14_Callback(hObject, eventdata, handles)
global modes;
for i=1:length(modes)
    v=genvarname(['checkbox' num2str(i)]);
    vv=['handles.' v];
    eval(['set(' vv ',''Enable'',''on'')']);
    eval(['set(' vv ',''Value'',0)']);
end

function pushbutton15_Callback(hObject, eventdata, handles)
global modes;
for i=1:14
    v=genvarname(['checkbox' num2str(i)]);
    vv=['handles.' v];
    eval(['status=get(' vv ',''Value'');']);
    if status==1
        assignin('base',['mode' num2str(i)],eval(['modes{' num2str(i) '}']));
    end
end

function popupmenu9_Callback(hObject, eventdata, handles)

function popupmenu9_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end

function slider1_Callback(hObject, eventdata, handles)
set(handles.slider1,'SliderStep',[1/254,10/254]);
sliderValue=num2str(get(handles.slider1,'Value'));
set(handles.edit8,'String',sliderValue);

function slider1_CreateFcn(hObject, eventdata, handles)
if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor',[.9 .9 .9]);
end

function slider2_Callback(hObject, eventdata, handles)
set(handles.slider2,'SliderStep',[0.01,0.1]);
sliderValue=num2str(get(handles.slider2,'Value'));
set(handles.edit9,'String',sliderValue);

function slider2_CreateFcn(hObject, eventdata, handles)
if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor',[.9 .9 .9]);
end

function edit8_Callback(hObject, eventdata, handles)
nbcol = str2num(get(handles.edit8,'String'));
set(handles.slider1,'Value',nbcol);

function edit8_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end

function edit9_Callback(hObject, eventdata, handles)
bright = str2num(get(handles.edit9,'String'));
set(handles.slider2,'Value',bright);

function edit9_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end

function radiobutton1_Callback(hObject, eventdata, handles)

function radiobutton2_Callback(hObject, eventdata, handles)

function radiobutton3_Callback(hObject, eventdata, handles)

function radiobutton4_Callback(hObject, eventdata, handles)

function uipanel13_SelectionChangeFcn(hObject, eventdata, handles)
switch get(eventdata.NewValue,'Tag')
    case 'radiobutton14'
        global modes;
        if ~isempty(modes)
            if isvector(modes{1})
                xlimits=get(handles.mainframe1,'XLim');
                set(handles.edit10,'String',num2str(xlimits(1)));
                set(handles.edit11,'String',num2str(xlimits(2)));
                ylimits=get(handles.mainframe1,'YLim');
                set(handles.edit12,'String',num2str(ylimits(1)));
                set(handles.edit13,'String',num2str(ylimits(2)));
                set(handles.edit14,'String','NA');
                set(handles.edit15,'String','NA');
            else
                xlimits=get(handles.mainframe1,'XLim');
                set(handles.edit10,'String',num2str(xlimits(1)));
                set(handles.edit11,'String',num2str(xlimits(2)));
                ylimits=get(handles.mainframe1,'YLim');
                set(handles.edit12,'String',num2str(ylimits(1)));
                set(handles.edit13,'String',num2str(ylimits(2)));
                zlimits=get(handles.mainframe1,'ZLim');
                set(handles.edit14,'String',num2str(zlimits(1)));
                set(handles.edit15,'String',num2str(zlimits(2)));
            end
        end
    case 'radiobutton15'
        global coeffs;
        if ~isempty(coeffs)
            if isvector(coeffs{1})
                xlimits=get(handles.mainframe2,'XLim');
                set(handles.edit10,'String',num2str(xlimits(1)));
                set(handles.edit11,'String',num2str(xlimits(2)));
                ylimits=get(handles.mainframe2,'YLim');
                set(handles.edit12,'String',num2str(ylimits(1)));
                set(handles.edit13,'String',num2str(ylimits(2)));
                set(handles.edit14,'String','NA');
                set(handles.edit15,'String','NA');
            else
                xlimits=get(handles.mainframe2,'XLim');
                set(handles.edit10,'String',num2str(xlimits(1)));
                set(handles.edit11,'String',num2str(xlimits(2)));
                ylimits=get(handles.mainframe2,'YLim');
                set(handles.edit12,'String',num2str(ylimits(1)));
                set(handles.edit13,'String',num2str(ylimits(2)));
                zlimits=get(handles.mainframe2,'ZLim');
                set(handles.edit14,'String',num2str(zlimits(1)));
                set(handles.edit15,'String',num2str(zlimits(2)));
            end
        end
end

function radiobutton14_Callback(hObject, eventdata, handles)

function radiobutton15_Callback(hObject, eventdata, handles)

function pushbutton16_Callback(hObject, eventdata, handles)
global coeffs clabelsmatrix isocoeffs indiso;
if ~isempty(coeffs)
    coefflist=get(handles.popupmenu6,'String');
    [isocoeffs1,isocoeffs2,isocoeffs3]=isoanalysis(handles,coefflist,coeffs,clabelsmatrix);
    if (isempty(isocoeffs1) && isempty(isocoeffs2) && isempty(isocoeffs3))
        isocoeffs={};
        indiso=[0 0 0];
    elseif (isempty(isocoeffs1) && isempty(isocoeffs2) && ~isempty(isocoeffs3))
        isocoeffs={isocoeffs3};
        indiso=[0 0 1];
    elseif (isempty(isocoeffs1) && ~isempty(isocoeffs2) && isempty(isocoeffs3))
        isocoeffs={isocoeffs2};
        indiso=[0 1 0];
    elseif (isempty(isocoeffs1) && ~isempty(isocoeffs2) && ~isempty(isocoeffs3))
        isocoeffs={isocoeffs2,isocoeffs3};
        indiso=[0 1 1];
    elseif (~isempty(isocoeffs1) && isempty(isocoeffs2) && isempty(isocoeffs3))
        isocoeffs={isocoeffs1};
        indiso=[1 0 0];
    elseif (~isempty(isocoeffs1) && isempty(isocoeffs2) && ~isempty(isocoeffs3))
        isocoeffs={isocoeffs1,isocoeffs3};
        indiso=[1 0 1];
    elseif (~isempty(isocoeffs1) && ~isempty(isocoeffs2) && isempty(isocoeffs3))
        isocoeffs={isocoeffs1,isocoeffs2};
        indiso=[1 1 0];
    elseif (~isempty(isocoeffs1) && ~isempty(isocoeffs2) && ~isempty(isocoeffs3))
        isocoeffs={isocoeffs1,isocoeffs2,isocoeffs3};
        indiso=[1 1 1];
    end
    isocoeffvis(handles,coeffs,isocoeffs);
else
    msgbox('The wavelet transform should be performed first!','Error #009');
end

function pushbutton17_Callback(hObject, eventdata, handles)

function pushbutton19_Callback(hObject, eventdata, handles)

function popupmenu10_Callback(hObject, eventdata, handles)

function popupmenu10_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end

function checkbox17_Callback(hObject, eventdata, handles)

function checkbox18_Callback(hObject, eventdata, handles)

function checkbox19_Callback(hObject, eventdata, handles)

function checkbox20_Callback(hObject, eventdata, handles)

function edit10_Callback(hObject, eventdata, handles)

function edit10_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end

function edit11_Callback(hObject, eventdata, handles)

function edit11_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end

function edit12_Callback(hObject, eventdata, handles)

function edit12_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end

function edit13_Callback(hObject, eventdata, handles)

function edit13_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end

function edit14_Callback(hObject, eventdata, handles)

function edit14_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end

function edit15_Callback(hObject, eventdata, handles)

function edit15_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end

function pushbutton20_Callback(hObject, eventdata, handles)

function togglebutton2_Callback(hObject, eventdata, handles)

function pushbutton22_Callback(hObject, eventdata, handles)
global modes coeffs clabelsmatrix;
cond1chk=get(handles.mainframe1,'Visible');
cond2chk=get(handles.edit4,'String');
if (strcmp(cond1chk,'on') || ~isempty(cond2chk))
    if isempty(modes)
        chkload1=0;
    else
        chkload1=1;
    end
    chkload2=get(handles.mainframe2,'Visible');
    radio1=get(handles.radiobutton14,'Value');
    radio2=get(handles.radiobutton15,'Value');
    if (strcmp(cond1chk,'off') && isempty(cond2chk) && radio2==1)
        msgbox('Neither data nor results are available!','Error #010');
    elseif (strcmp(chkload2,'off') && isempty(cond2chk) && radio2==1)
        msgbox({'No results available!' 'Please perform the analysis first.'},'Error #011');
    else
    [datadim,~]=dimsizetype(modes{1});
    [genchk,cmap,plottype,nbcol,bright,xlimmin,xlimmax,ylimmin,ylimmax,zlimmin,zlimmax,gridx,gridy,gridz,boxplot]=chkvis(handles,chkload1,chkload2,radio1,radio2,cond2chk);
    applyvis(handles,datadim,genchk,radio1,radio2,cmap,plottype,nbcol,bright,xlimmin,xlimmax,ylimmin,ylimmax,zlimmin,zlimmax,gridx,gridy,gridz,boxplot);
    end
else
    msgbox({'No data available!' 'Please upload data or select an example problem.'},'Error #012');
end

function pushbutton24_Callback(hObject, eventdata, handles)

function LamPlateSurfNum_crack_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='surfdamage_num';
probname='crack';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Through-the-width crack (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateSurfNum_sqwindow_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='surfdamage_num';
probname='sqwindow';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Spatial damage (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateSurfNum_damag3_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='surfdamage_num';
probname='damag3';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Multiple damages (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateSurfExp_crack_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='surfdamage_exp';
probname='ecrack';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Through-the-width crack (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateSurfExp_sqwindow_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='surfdamage_exp';
probname='esqwindow';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Spatial damage (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateSurfExp_damag3_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='surfdamage_exp';
probname='edamag3';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Multiple damages (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateStoneImpactK05_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='stoneimpact_exp';
probname='K05';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate impact damage: K 5J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateStoneImpactK10_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='stoneimpact_exp';
probname='K10';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate impact damage: K 10J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateStoneImpactK15_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='stoneimpact_exp';
probname='K15';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate impact damage: K 15J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateStoneImpactK20_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='stoneimpact_exp';
probname='K20';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate impact damage: K 20J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateStoneImpactK25_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='stoneimpact_exp';
probname='K25';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate impact damage: K 25J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateStoneImpactK30_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='stoneimpact_exp';
probname='K30';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate impact damage: K 30J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes)
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateStoneImpactK35_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='stoneimpact_exp';
probname='K35';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate impact damage: K 35J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateStoneImpactK40_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='stoneimpact_exp';
probname='K40';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate impact damage: K 40J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateStoneImpactL25_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='stoneimpact_exp';
probname='L25';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate impact damage: L 25J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateStoneImpactL30_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='stoneimpact_exp';
probname='L30';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate impact damage: L 30J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateStoneImpactL35_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='stoneimpact_exp';
probname='L35';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate impact damage: L 35J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateStoneImpactL40_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='stoneimpact_exp';
probname='L40';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate impact damage: L 40J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateStoneImpactM05_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='stoneimpact_exp';
probname='M05';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate impact damage: M 5J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateStoneImpactM10_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='stoneimpact_exp';
probname='M10';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate impact damage: M 10J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateStoneImpactM15_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='stoneimpact_exp';
probname='M15';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate impact damage: M 15J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateStoneImpactM20_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='stoneimpact_exp';
probname='M20';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate impact damage: M 20J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateStoneImpactM25_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='stoneimpact_exp';
probname='M25';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate impact damage: M 25J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateStoneImpactM30_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='stoneimpact_exp';
probname='M30';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate impact damage: M 30J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateStoneImpactM35_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='stoneimpact_exp';
probname='M35';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate impact damage: M 35J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateStoneImpactM40_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='stoneimpact_exp';
probname='M40';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate impact damage: M 40J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function SandPlateDamagSand1_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='sandwich_exp';
probname='Sand1';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Partial local lack of core (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function SandPlateDamagSand2_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='sandwich_exp';
probname='Sand2';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Local lack of core 1 (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function SandPlateDamagSand2_2_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='sandwich_exp';
probname='Sand22';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Local lack of core 2 (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function SandPlateDamagSand3_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='sandwich_exp';
probname='Sand3';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Crack of core 1 (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function SandPlateDamagSand4_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='sandwich_exp';
probname='Sand4';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Crack of core 2 (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes)
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function SandPlateDamagSand5_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='sandwich_exp';
probname='Sand5';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Through-the-width crack of core (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function SandPlateDamagSand6_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='sandwich_exp';
probname='Sand6';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Debonding core-face sheet (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function SandPlateDamagSandA10_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='sandwich_exp';
probname='SandA10';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Sandwich impact damage: A 10J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function SandPlateDamagSandA15_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='sandwich_exp';
probname='SandA15';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Sandwich impact damage: A 15J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function SandPlateDamagSandA20_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='sandwich_exp';
probname='SandA20';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Sandwich impact damage: A 20J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function SandPlateDamagSandA25_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='sandwich_exp';
probname='SandA25';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Sandwich impact damage: A 25J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function SandPlateDamagSandB5_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='sandwich_exp';
probname='SandB5';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Sandwich impact damage: B 5J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function SandPlateDamagSandB75_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='sandwich_exp';
probname='SandB75';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Sandwich impact damage: B 7.5J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function SandPlateDamagSandB10_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='sandwich_exp';
probname='SandB10';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Sandwich impact damage: B 10J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function SandPlateDamagSandB15_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='sandwich_exp';
probname='SandB15';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Sandwich impact damage: B 15J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function SandPlateDamagSandC75_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='sandwich_exp';
probname='SandC75';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Sandwich impact damage: C 7.5J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function SandPlateDamagSandC10_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='sandwich_exp';
probname='SandC10';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Sandwich impact damage: C 10J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function SandPlateDamagSandD5_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='sandwich_exp';
probname='SandD5';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Sandwich impact damage: D 5J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function SandPlateDamagSandD75_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='sandwich_exp';
probname='SandD75';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Sandwich impact damage: D 7.5J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function SandPlateDamagSandD10_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='sandwich_exp';
probname='SandD10';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Sandwich impact damage: D 10J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function SandPlateDamagSandE5_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='sandwich_exp';
probname='SandE5';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Sandwich impact damage: E 5J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function SandPlateDamagSandE75_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='sandwich_exp';
probname='SandE75';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Sandwich impact damage: E 7.5J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function SandPlateDamagSandE10_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='sandwich_exp';
probname='SandE10';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Sandwich impact damage: E 10J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function pushbutton25_Callback(hObject, eventdata, handles)
global problname;
problname=get(handles.edit4,'String');
if isempty(problname)
    h=msgbox('The problem was not selected!','Error #013');
elseif strcmp(problname,'Own problem')
    h=msgbox('This function is not available for your own problem!','Error #014');
else
    FRF
end

function CircSurfDamag1_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='circdamag_num';
probname='polarcrack1';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Circular plate: surface damage 1 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettcirc(handles,datasizes);
chkdef(handles,modes);
plotsettcirc(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function CircSurfDamag2_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='circdamag_num';
probname='polarcrack2';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Circular plate: surface damage 2 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettcirc(handles,datasizes);
chkdef(handles,modes);
plotsettcirc(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function CircDelam_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='circdamag_num';
probname='polardelam';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Circular plate: delamination (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettcirc(handles,datasizes);
chkdef(handles,modes);
plotsettcirc(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function CircVoid_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='circdamag_num';
probname='polarvoid';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Circular plate: internal void (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettcirc(handles,datasizes);
chkdef(handles,modes);
plotsettcirc(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function CrackRotorLong_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='rotorblade_num';
probname='crack_h';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Rotor blade: longitudinal crack (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function CrackRotorTrans_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='rotorblade_num';
probname='crack_v';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Rotor blade: transversal crack (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes)
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateImpactA20_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='impact_exp';
probname='A20';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate impact damage: A 20J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateImpactA30_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='impact_exp';
probname='A30';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate impact damage: A 30J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateImpactA40_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='impact_exp';
probname='A40';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate impact damage: A 40J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateImpactB20_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='impact_exp';
probname='B20';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate impact damage: B 20J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes)
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateImpactB30_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='impact_exp';
probname='B30';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate impact damage: B 30J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateImpactB40_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='impact_exp';
probname='B40';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate impact damage: B 40J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateImpactC20_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='impact_exp';
probname='C20';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate impact damage: C 20J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateImpactC30_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='impact_exp';
probname='C30';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate impact damage: C 30J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateImpactC40_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='impact_exp';
probname='C40';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate impact damage: C 40J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateImpactD20_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='impact_exp';
probname='D20';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate impact damage: D 20J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateImpactD30_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='impact_exp';
probname='D30';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate impact damage: D 30J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateImpactD40_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='impact_exp';
probname='D40';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate impact damage: D 40J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateImpactE10_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='impact_exp';
probname='E10';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate impact damage: E 10J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateImpactE20_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='impact_exp';
probname='E20';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate impact damage: E 20J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateImpactE30_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='impact_exp';
probname='E30';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate impact damage: E 30J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateImpactE40_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='impact_exp';
probname='E40';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate impact damage: E 40J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes)
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateImpactH10_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='impact_exp';
probname='H10';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate impact damage: H 10J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateImpactH20_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='impact_exp';
probname='H20';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate impact damage: H 20J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateImpactH30_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='impact_exp';
probname='H30';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate impact damage: H 30J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateImpactH40_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='impact_exp';
probname='H40';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate impact damage: H 40J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateImpactI10_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='impact_exp';
probname='I10';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate impact damage: I 10J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateImpactI20_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='impact_exp';
probname='I20';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate impact damage: I 20J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateImpactI30_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='impact_exp';
probname='I30';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate impact damage: I 30J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateImpactI40_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='impact_exp';
probname='I40';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate impact damage: I 40J (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateVoid_Callback(hObject, eventdata, handles)

function LamPlateVoid1_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='lamvoid_num';
probname='v11';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate internal void 1 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateVoid2_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='lamvoid_num';
probname='v12';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate internal void 2 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateVoid3_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='lamvoid_num';
probname='v13';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate internal void 3 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateVoid4_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='lamvoid_num';
probname='v14';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate internal void 4 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateVoid5_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='lamvoid_num';
probname='v21';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate internal void 5 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes)
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateVoid6_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='lamvoid_num';
probname='v22';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate internal void 6 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function Aircraft_Callback(hObject, eventdata, handles)

function AircraftMetal_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='airimpact_exp';
probname='mi';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Al-GFRP-Al struct. impacts (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function AircraftLaminate_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='airimpact_exp';
probname='li';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','GFRP struct. impacts (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function edit17_Callback(hObject, eventdata, handles)

function edit17_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end

function LamBeamLargeDelam_Callback(hObject, eventdata, handles)

function LargeDelam1_2_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='delambeam_num';
probname='delam_l01';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Beam large delam. 1-2 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LargeDelam2_3_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='delambeam_num';
probname='delam_l02';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Beam large delam. 2-3 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LargeDelam3_4_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='delambeam_num';
probname='delam_l03';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Beam large delam. 3-4 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LargeDelam4_5_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='delambeam_num';
probname='delam_l04';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Beam large delam. 4-5 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LargeDelam5_6_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='delambeam_num';
probname='delam_l05';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Beam large delam. 5-6 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LargeDelam6_7_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='delambeam_num';
probname='delam_l06';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Beam large delam. 6-7 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LargeDelam7_8_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='delambeam_num';
probname='delam_l07';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Beam large delam. 7-8 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LargeDelam8_9_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='delambeam_num';
probname='delam_l08';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Beam large delam. 8-9 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LargeDelam9_10_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='delambeam_num';
probname='delam_l09';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Beam large delam. 9-10 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LargeDelam10_11_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='delambeam_num';
probname='delam_l10';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Beam large delam. 10-11 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LargeDelam11_12_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='delambeam_num';
probname='delam_l11';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Beam large delam. 11-12 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamBeamLargeLimDelam_Callback(hObject, eventdata, handles)

function LamBeamSmallDelam_Callback(hObject, eventdata, handles)

function LamBeamSmallLimDelam_Callback(hObject, eventdata, handles)

function SmallLimDelam1_2_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='delambeam_num';
probname='delam_isl01';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Beam small lim. delam. 1-2 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function SmallLimDelam2_3_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='delambeam_num';
probname='delam_isl02';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Beam small lim. delam. 2-3 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function SmallLimDelam3_4_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='delambeam_num';
probname='delam_isl03';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Beam small lim. delam. 3-4 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function SmallLimDelam4_5_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='delambeam_num';
probname='delam_isl04';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Beam small lim. delam. 4-5 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function SmallLimDelam5_6_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='delambeam_num';
probname='delam_isl05';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Beam small lim. delam. 5-6 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function SmallLimDelam6_7_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='delambeam_num';
probname='delam_isl06';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Beam small lim. delam. 6-7 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function SmallLimDelam7_8_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='delambeam_num';
probname='delam_isl07';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Beam small lim. delam. 7-8 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function SmallLimDelam8_9_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='delambeam_num';
probname='delam_isl08';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Beam small lim. delam. 8-9 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function SmallLimDelam9_10_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='delambeam_num';
probname='delam_isl09';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Beam small lim. delam. 9-10 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function SmallLimDelam10_11_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='delambeam_num';
probname='delam_isl10';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Beam small lim. delam. 10-11 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function SmallLimDelam11_12_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='delambeam_num';
probname='delam_isl11';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Beam small lim. delam. 11-12 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function SmallDelam1_2_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='delambeam_num';
probname='delam_sl01';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Beam small delam. 1-2 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function SmallDelam2_3_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='delambeam_num';
probname='delam_sl02';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Beam small delam. 2-3 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function SmallDelam3_4_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='delambeam_num';
probname='delam_sl03';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Beam small delam. 3-4 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function SmallDelam4_5_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='delambeam_num';
probname='delam_sl04';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Beam small delam. 4-5 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function SmallDelam5_6_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='delambeam_num';
probname='delam_sl05';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Beam small delam. 5-6 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function SmallDelam6_7_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='delambeam_num';
probname='delam_sl06';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Beam small delam. 6-7 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function SmallDelam7_8_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='delambeam_num';
probname='delam_sl07';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Beam small delam. 7-8 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function SmallDelam8_9_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='delambeam_num';
probname='delam_sl08';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Beam small delam. 8-9 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function SmallDelam9_10_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='delambeam_num';
probname='delam_sl09';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Beam small delam. 9-10 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function SmallDelam10_11_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='delambeam_num';
probname='delam_sl10';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Beam small delam. 10-11 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function SmallDelam11_12_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='delambeam_num';
probname='delam_sl11';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Beam small delam. 11-12 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LargeLimDelam1_2_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='delambeam_num';
probname='delam_il01';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Beam large lim. delam. 1-2 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LargeLimDelam2_3_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='delambeam_num';
probname='delam_il02';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Beam large lim. delam. 2-3 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LargeLimDelam3_4_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='delambeam_num';
probname='delam_il03';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Beam large lim. delam. 3-4 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LargeLimDelam4_5_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='delambeam_num';
probname='delam_il04';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Beam large lim. delam. 4-5 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LargeLimDelam5_6_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='delambeam_num';
probname='delam_il05';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Beam large lim. delam. 5-6 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LargeLimDelam6_7_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='delambeam_num';
probname='delam_il06';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Beam large lim. delam. 6-7 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LargeLimDelam7_8_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='delambeam_num';
probname='delam_il07';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Beam large lim. delam. 7-8 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LargeLimDelam8_9_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='delambeam_num';
probname='delam_il08';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Beam large lim. delam. 8-9 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LargeLimDelam9_10_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='delambeam_num';
probname='delam_il09';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Beam large lim. delam. 9-10 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LargeLimDelam10_11_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='delambeam_num';
probname='delam_il10';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Beam large lim. delam. 10-11 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LargeLimDelam11_12_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='delambeam_num';
probname='delam_il11';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Beam large lim. delam. 11-12 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function pushbutton27_Callback(hObject, eventdata, handles)
global coeffs clabelsmatrix;
coeffs_out={clabelsmatrix coeffs};
assignin('base','res_coeffs',eval('coeffs_out'));

function LamBeamMultiExp_Callback(hObject, eventdata, handles)

function LamBeamMultiExp1_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='beammulti_exp';
probname='belka1';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminated beam multiple cracks 1 (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamBeamMultiExp2_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='beammulti_exp';
probname='belka2';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminated beam multiple cracks 2 (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamBeamMultiExp3_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='beammulti_exp';
probname='belka3';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminated beam multiple cracks 3 (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamBeamSingleExp1_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='lambeam_exp';
probname='Res01';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminated beam undamaged (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamBeamSingleExp2_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='lambeam_exp';
probname='Res04';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminated beam single crack 1 (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamBeamSingleExp3_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='lambeam_exp';
probname='Res05';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminated beam single crack 2 (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function popupmenu11_Callback(hObject, eventdata, handles)

function popupmenu11_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end

function slider3_Callback(hObject, eventdata, handles)
CuttingPlane=get(handles.edit15,'String');
set(handles.slider3,'SliderStep',[1/str2num(CuttingPlane),10/str2num(CuttingPlane)]);
sliderValue=num2str(get(handles.slider3,'Value'));
set(handles.edit18,'String',sliderValue);

function slider3_CreateFcn(hObject, eventdata, handles)
if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor',[.9 .9 .9]);
end

function edit18_Callback(hObject, eventdata, handles)
CuttingPlane = str2num(get(handles.edit18,'String'));
set(handles.slider3,'Value',CuttingPlane);

function edit18_CreateFcn(hObject, eventdata, handles)

function edit19_Callback(hObject, eventdata, handles)

function edit19_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end

function pushbutton28_Callback(hObject, eventdata, handles)
global coeffs;
cla;
colorbar('off');
coeffsno=sel3dcoeff(handles,coeffs);
CuttingPlane=get(handles.edit19,'String');
if (~all(ismember(CuttingPlane,'1234567890')) || isempty(CuttingPlane))
    msgbox('Input of cutting plane is incorrect!','Error #041');
else
    MaxZ=get(handles.edit15,'String');
    if str2num(CuttingPlane)>str2num(MaxZ)
        msgbox('Input of cutting plane is too big!','Error #042');
    else
        Cut=coeffs{coeffsno}(:,:,1:round(str2num(CuttingPlane)));
        set(handles.mainframe2,'Visible','on');
        vol3d('CData',Cut,'texture','3D');
        c=colorbar('location','southoutside');
        cpos = get(c,'Position');
        cpos=[0.546376811594203 0.083762149799886 0.435748792270531 0.5*cpos(4)];
        set(c,'Position',cpos);
        view(3);
        axis tight;
    end
end

function popupmenu12_Callback(hObject, eventdata, handles)

function popupmenu12_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end

function Help_Callback(hObject, eventdata, handles)

function BenchmarkHelp_Callback(hObject, eventdata, handles)
winopen('..\manual\WavStructDamAs.pdf');

function AboutBenchmark_Callback(hObject, eventdata, handles)
About

function popupmenu13_Callback(hObject, eventdata, handles)

function popupmenu13_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end

function checkbox21_Callback(hObject, eventdata, handles)

function checkbox22_Callback(hObject, eventdata, handles)

function checkbox23_Callback(hObject, eventdata, handles)

function pushbutton29_Callback(hObject, eventdata, handles)
global isocoeffs;
assignin('base','iso_coeffs',eval('isocoeffs'));

function AircraftPlane_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='airimpact_exp';
probname='pp';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','CFRP stabilizer delaminations (exp)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function LamPlateVoid7_Callback(hObject, eventdata, handles)
cleaning(handles);
probloc='lamvoid_num';
probname='v23';
global modes;
modes=loadexprob(handles,probloc,probname);
set(handles.edit4,'String','Laminate internal void 7 (num)')
[datadim,datasizes]=dimsizetype(modes{1});
initsettrect(handles,datasizes);
chkdef(handles,modes);
plotsettrect(handles,datadim,datasizes,modes);
handles=guidata(handles.output);
guidata(handles.output,handles);

function axes4_CreateFcn(hObject, eventdata, handles)

function OpenMenuItem_Callback(hObject, eventdata, handles)
cleaning(handles);
global modes status;
f=OwnProblem;
waitfor(f);
if status==1
    set(handles.edit4,'String','Own problem');
    for i=1:length(modes)
        modelabels{i}=['Mode ' num2str(i)];
    end
    set(handles.popupmenu8,'String',modelabels);
    [datadim,datasizes]=dimsizetype(modes{1});
    initsettrect(handles,datasizes);
    chkdef(handles,modes);
    plotsettrect(handles,datadim,datasizes,modes);
    handles=guidata(handles.output);
    guidata(handles.output,handles);
end
