MATLAB Answers

0

Simple compression of cylinder- results of finite element model don't make sense

Asked by Clay Swackhamer on 8 Apr 2019
Latest activity Answered by Ravi Kumar on 8 Apr 2019
I am trying to simulate the steady state compression of a cylinder using finite element analysis. The model that I have runs, but the results don't make sense to me. It seems that the cylinder flattens almost down to zero height, no matter how weak of the compression force or how stiff the cylinder's material. I am a beginner to solid mechanics so perhaps this has to do with solving at steady state, or alternatively is there an error in my model that I am not able to see?
%% Declare pde
model = createpde('structural','static-solid'); %declare the model and physics
%% Cylindrical geometry
gm = multicylinder(0.025,0.025); %25mm diameter, 25mm height
model.Geometry = gm; %assign the cylinder to the model
generateMesh(model); %mesh the model
%Plot the geometry
figure
pdegplot(model,'FaceLabels','on')
%% Mesh it
fineness = 5e-3; %1mm element size, roughly
generateMesh(model,'Hmax',fineness);
%Plot the mesh
figure
pdeplot3D(model)
title('Mesh with Quadratic Tetrahedral Elements');
%% Define material props
structuralProperties(model,'YoungsModulus',1e12,'PoissonsRatio',0.49);
%% Define boundary conditions
structuralBC(model,'Face',1,'Constraint','fixed'); %bottom of cylinder is fixed
load = 1; % applied pressure in Pascals
structuralBoundaryLoad (model,'Face',2,'SurfaceTraction',[0;0;-load]); %Front face has a distributed load in minus z direction (compression force)
%% Solve
result = solve(model);
%% Plot the deformed object
figure
pdeplot3D(model,'ColorMapData',result.VonMisesStress, 'Deformation',result.Displacement)
axis on
cylinder mesh.png
cylinder deformation and stress.png

  1 Comment

Update: I think that the problem is how I am applying the boundary condition to the bottom of the cylinder. I would like to simulated compression of a soft cylinder against a ridid plate. Can I specify that this boundary should be supported (ie a normal force updards to maintain static equilibrium) without requiring that the edges of the cylinder cannot spread out?

Sign in to comment.

1 Answer

Answer by Ravi Kumar on 8 Apr 2019
 Accepted Answer

Hi Clay,
Your BCs are correct. I think the load you are applying is resulting in very small defomration. This is causing the default scaling factor to be very large and deforming the plot excessively. You can fix by applying the correct magnitude. If that still does not resolve the plot the stress with out 'Deformation' option and then manually find a appropriate sclae factor to observed the deformation by trying out few values as:
pdeplot3D(model,'ColorMapData',result.VonMisesStress, 'Deformation',result.Displacement,'DeformationScaleFactor',1)
Regards,
Ravi

  0 Comments

Sign in to comment.