FEATool Multiphysics
v1.16.6
Finite Element Analysis Toolbox

In this section a three dimensional model of a bracket with a hole will be described. The vertical side of the bracket is fixed to a wall (thus zero displacement boundary conditions are suitable here), while the outer end of the bracket is loaded with a negative force of 10000 N in the zdirection. The resulting displacements will be studied together with creating a displacement plot visualizing the deformation.
This model is available as an automated tutorial by selecting Model Examples and Tutorials... > Structural Mechanics > Deflection of a Bracket from the File menu. Or alternatively, follow the stepbystep instructions below.
Select the Linear Elasticity physics mode from the Select Physics dropdown menu.
The geometry of the bracket can be made by combining two blocks and subtracting a cylinder for the hole.
0
into the x_{min} edit field.0.02
into the x_{max} edit field.0
into the y_{min} edit field.0.2
into the y_{max} edit field.0
into the z_{min} edit field.Enter 0.2
into the z_{max} edit field.
0
into the x_{min} edit field.0.22
into the x_{max} edit field.0
into the y_{min} edit field.0.2
into the y_{max} edit field.0.09
into the z_{min} edit field.Enter 0.11
into the z_{max} edit field.
0.12 0.1 0.08
into the center edit field.0.08
into the radius edit field.0.04
into the length edit field.Enter 3
into the axis edit field.
Press OK to finish and close the dialog box.
Enter B1 + B2  C1
into the Geometry Formula edit field.
Press OK to finish and close the dialog box.
Enter 0.01
into the Subdomain Grid Size edit field.
Press OK to finish and close the dialog box.
0.3
and the modulus of elasticity, E to 200e9
in the corresponding edit fields. The other coefficients can be left to their default values.For more accurate solutions to expressions involving derivatives such as stresses choose a higher order finite element approximation, such as P2 second order FEM basis functions. Select (P2/Q2) second order conforming from the FEM Discretization dropdown menu, and press OK to finish and close the dialog box.
0
. Press Apply to store and save these changes.Then select the left vertical boundary (number 10) and select Fixed displacement for all directions.
Select the Fixed displacement, u radio button.
Lastly select the far right boundary (here boundary number 6) and select set an Edge load in the zdirection with the value 1e4
. Press OK to finish prescribing boundary conditions.
After the problem has been solved FEATool will automatically switch to postprocessing mode and here display the computed von Mieses stress. To change the plot, open the postprocessing settings dialog box by clicking on the Plot Options Toolbar button and select zdisplacement from the predefined Surface Plot expressions. The deformation plot can also be used to see how the model will deform under load.
Enter 0.3
into the Deformation scale factor edit field.
Press OK to plot and visualize the selected postprocessing options.
One can see that the maximum displacement occurs at the outer edge and has a magnitude of about 1.2·10^{5} m in the negative zdirection as is to be expected.
The deflection of a bracket structural mechanics model has now been completed and can be saved as a binary (.fea) model file, or exported as a programmable MATLAB mscript text file, or GUI script (.fes) file.
Parametric studies can be very useful tools to clearly see how a model will behave under varying conditions. The following section presents a parametric study of the bracket model varying both the geometry, in this case plate thickness, and also the applied load force.
thickness = [ 0.02 0.015 0.01 0.008 ]; loads = [ 1e4 2e4 1e5 1e6 ];
for i=1:length(thickness) % Geometry operations. fea.geom = struct; gobj = gobj_block( 0, 0.02, 0, 0.2, 0, 0.2, 'B1' ); fea = geom_add_gobj( fea, gobj ); gobj = gobj_block( 0, 0.2, 0, 0.2, ... 0.1thickness(i)/2, 0.1+thickness(i)/2, 'B1' ); fea = geom_add_gobj( fea, gobj ); gobj = gobj_cylinder( [ 0.1, 0.1, 0.08 ], 0.08, 0.04,3,'C1'); fea = geom_add_gobj( fea, gobj ); fea = geom_apply_formula( fea, 'B1+B2C1' ); % Grid generation. fea.grid = gridgen( fea, 'hmax', thickness(i)/2 );
As second loop can now be introduced where the varying load is extracted and prescribed by using a constant variable. The equation settings can be kept from the saved model.
for j=1:length(loads) % Constants and expressions. fea.expr = { 'load', loads(j) }; % Equation settings. fea.phys.el.dvar = { 'u', 'v', 'w' }; fea.phys.el.sfun = { 'sflag1', 'sflag1', 'sflag1' }; fea.phys.el.eqn.coef = { 'nu_el', ', '', { '0.3' }; ...
Two loops have now been set up around the model, the first creating a geometry with varying thickness, and the second will prescribe the varying load. Note that setting up the loops in this way allows reusing the grid in the inner loop and saving computational time.
% Boundary conditions. n_bdr = max(fea.grid.b(3,:)); ind_fixed = findbdr( fea, 'x<0.005' ); ind_load = findbdr( fea, 'x>0.19' ); fea.phys.el.bdr.sel = ones(1,n_bdr); % Define Homogeneous Neumann BC type. n_bdr = max(fea.grid.b(3,:)); bctype = num2cell( zeros(3,n_bdr) ); % Set Dirichlet BCs for the fixed boundary. [bctype{:,ind_fixed}] = deal( 1 ); fea.phys.el.bdr.coef{1,end2} = bctype; % Define all zero BC coefficients. bccoef = num2cell( zeros(3,n_bdr) ); % Apply negative zload to outer edge. [bccoef{3,ind_load}] = deal( 'load' ); % Store BC coefficient array. fea.phys.el.bdr.coef{1,end} = bccoef;
% Solver call. fea = parsephys( fea ); fea = parseprob( fea ); fea.sol.u = solvestat( fea ); % Postprocessing. s_vm = fea.phys.el.eqn.vars{1,2}; vm_stress = evalexpr( s_vm, fea.grid.p, fea ); max_vm_stress(i,j) = max(vm_stress); end,end
Finally visualize the all computed maximum stresses at once as
% Visualization. [t,l] = meshgrid(thickness,loads); surf( t, l, max_vm_stress, log(max_vm_stress) ) xlabel( 'Thickness' ) ylabel( 'Load' ) zlabel( 'Maximum stress' ) view( 45, 30 )
The complete parameter study model can be found as the ex_linearelasticity3 script file in the examples subdirectory of the FEATool installation folder.