How can I improve accuracy using PDE Toolbox
2 views (last 30 days)
Show older comments
Hello,
I have a cantilever with a constant force. I'm computing the reaction on the clamped edge with the PDE Toolbox.
However the difference between numerical and exact solution is too high.
Is there a way too reduce the difference, other then reducing maximum element size Hmax?
yModulus = 200e3; % young's modulus
ny = 0.2; % Poissons ratio
Hmax = 0.01; % max element size
l = 1; % length of cantilever
b = 0.2; % height of cantilever
q = 10; % constant force
f_press = @(region,state) [q*ones(size(region.y)),zeros(size(region.y))];
structModel = createpde('structural','static-planestress');
gd = [3;4;0;b;b;0;0;0;l;l];
g = decsg(gd,'R',char('R'));
geometryFromEdges(structModel,g);
generateMesh(structModel,'Hmax',Hmax);
structuralProperties(structModel,...
'YoungsModulus',yModulus,...
'PoissonsRatio',ny);
structuralBC(structModel,'Edge',1,'Constraint','fixed');
structuralBoundaryLoad(structModel,'Edge',4,'SurfaceTraction',f_press);
res = solve(structModel);
% Fx should equal 10
reaction = evaluateReaction(res,'Edge',1);
0 Comments
Answers (2)
Alan Weiss
on 9 Jan 2019
If your toolbox version were R2017a or earlier, the default mesh for 2-D geometry has linear elements. You can get improved accuracy by using quadratic elements:
generateMesh(model,'GeometricOrder','quadratic')
However, since your toolbox version is R2017b or later (that's when structural analysis was introduced), then I don't know of a way to get more accuracy other than taking a finer mesh.
Alan Weiss
MATLAB mathematical toolbox documentation
0 Comments
Svetlana Pease
on 9 Jan 2019
For this particular example, using a finer mesh seems to be the only way to get a more accurate result. In general, you can also try different solver options - for example, you can tighten the tolerances:
Svetlana Pease
MathWorks Documentation Group
0 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!