Modelling shell behavior with femodel

7 views (last 30 days)
Daniel Benaim
Daniel Benaim on 13 Jun 2024
Answered: Karan Singh on 18 Jun 2024
I apologize if this question is banal but is there a way to model bending plates with femodel?
Playing around with the object definition I managed to make a 2D rectangular model with uniform surface pressure and fixed edges, I assigned material properties, generated a mesh and solved the model. When I inspect the results, there are only null fields that correspond to membrane behavior and no bending.

Answers (1)

Karan Singh
Karan Singh on 18 Jun 2024
Hi Daniel,
As I don’t have access to your code, I can’t pinpoint the exact problem you're facing, but we can proceed with an example.
  • You create a rectangular geometry with length \(L = 1\) meter and width \(W = 0.5\) meter.
L = 1; % Length of the rectangle
W = 0.5; % Width of the rectangle
gdm = [3, 4, 0, L, L, 0, 0, 0, W, W]';
g = decsg(gdm, 'R1', ('R1')');
  • You create a structural model for static plane stress analysis.
model = createpde('structural', 'static-planestress');
  • The geometry is included in the structural model.
geometryFromEdges(model, g);
  • This step visualizes the geometry with edge labels for reference.
figure;
pdegplot(model, 'EdgeLabels', 'on');
title('Geometry with Edge Labels');
axis equal;
  • You specify the material properties (Young's modulus and Poisson's ratio) for the rectangular plate.
E = 210e9; % Young's modulus in Pascals
nu = 0.3; % Poisson's ratio
structuralProperties(model, 'YoungsModulus', E, 'PoissonsRatio', nu);
  • The edges are fixed to prevent rigid body motion and to ensure the model is properly constrained.
Edge 1 (Bottom Edge): Fully fixed (both x and y displacements are zero).
Edge 4 (Left Edge): Fixed in the x direction to prevent horizontal movement.
% Fix the bottom edge completely
structuralBC(model, 'Edge', 1, 'Constraint', 'fixed');
% Fix the left edge in the x direction to prevent horizontal movement
structuralBC(model, 'Edge', 4, 'XDisplacement', 0);
  • You apply a uniform pressure load to the top and right edges.
pressure = 1e5; % Uniform pressure in Pascals
structuralBoundaryLoad(model, 'Edge', [2, 3], 'SurfaceTraction', [0; -pressure]);
  • A mesh with a specified maximum element size is generated.
generateMesh(model, 'Hmax', 0.05);
  • This step visualizes the generated mesh.
figure;
pdeplot(model);
title('Mesh');
axis equal;
  • The structural model is solved.
result = solve(model);
  • The displacement magnitude and Von Mises stress are plotted to visualize the results, including deformation.
figure;
pdeplot(model, 'XYData', result.Displacement.Magnitude, 'Deformation', result.Displacement, 'DeformationScaleFactor', 1);
title('Displacement Magnitude with Deformation');
colorbar;
figure;
pdeplot(model, 'XYData', result.VonMisesStress, 'Deformation', result.Displacement, 'DeformationScaleFactor', 1);
title('Von Mises Stress with Deformation');
colorbar;
I hope this helps you get a clearer picture!
Thanks,
Karan

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!