Function: Varargout Barra (Varargin)
Function: Varargout Barra (Varargin)
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Outputs from this function are returned to the command line.
function varargout = barra_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
E1 = get(handles.edit9,'string');
E1 = str2num(E1);
E2 = get(handles.edit10,'string');
E2 = str2num(E2);
A = get(handles.edit2,'string');
A = str2num(A);
A1 = get(handles.edit7,'string');
A1 = str2num(A1);
A2 = get(handles.edit8,'string');
A2 = str2num(A2);
F = get(handles.edit3,'string');
F = str2num(F);
L = get(handles.edit4,'string');
L = str2num(L);
L1 = get(handles.edit5,'string');
L1 = str2num(L1);
L2 = get(handles.edit6,'string');
L2 = str2num(L2);
Lt=L+L1+L2;
% generation of coordinates and connectivities
% numberElements: number of elements
numberElements=3;
% generation equal spaced coordinates
nodeCoordinates=linspace(0,Lt,numberElements+1);
xx=nodeCoordinates;
% numberNodes: number of nodes
numberNodes=size(nodeCoordinates,2);
% elementNodes: connections at elements
ii=1:numberElements;
elementNodes(:,1)=ii;
elementNodes(:,2)=ii+1;
% for structure:
% displacements: displacement vector
% force : force vector
% stiffness: stiffness matrix
displacements=zeros(numberNodes,1);
force=zeros(numberNodes,1);
stiffness=zeros(numberNodes,numberNodes);
% applied load at node 2
force(2)=F;
% computation of the system stiffness matrix
for e=1:numberElements;
% elementDof: element degrees of freedom (Dof)
elementDof=elementNodes(e,:) ;
nn=length(elementDof);
length_element=nodeCoordinates(elementDof(2))...
-nodeCoordinates(elementDof(1));
detJacobian=length_element/2;invJacobian=1/detJacobian;
% central Gauss point (xi=0, weight W=2)
[shape,naturalDerivatives]=shapeFunctionL2(0.0);
Xderivatives=naturalDerivatives*invJacobian;
% B matrix
B=zeros(1,nn); B(1:nn) = Xderivatives(:);
stiffness(elementDof,elementDof)=...
stiffness(elementDof,elementDof)+B'*B*2*detJacobian*EAS(e);
end
% boundary conditions and solution
% prescribed dofs
fixedDof=find(xx==min(nodeCoordinates(:)) ...
| xx==max(nodeCoordinates(:)))';
prescribedDof=[fixedDof];
% free Dof : activeDof
activeDof=setdiff([1:numberNodes]',[prescribedDof]);
% solution
GDof=numberNodes;
displacements=solution(GDof,prescribedDof,stiffness,force);
% output displacements/reactions
disp('Displacements');
%displacements=displacements1;
jj=1:GDof; format
% reactions
F=stiffness*displacements;
reactions=F(prescribedDof);
disp('reactions');
set(handles.text7,'String',num2str([jj' displacements]));
set(handles.text8,'String',num2str([prescribedDof reactions]));
set(handles.text7,'string','');
set(handles.text8,'string','')