Different materials using PDE tool

6 vues (au cours des 30 derniers jours)
Vinh Dang
Vinh Dang le 12 Fév 2016
Commenté : Alan Weiss le 16 Fév 2016
I am using 3D-PDE tool to solve problems for the elastic deformation of a thick plate. How can I set different materials for multiple layers on this plate? This is my code (for 1 material)
E = 2.07e11; % elastic modulus of steel in Pascals
nu = 0.3; % Poisson's ratio
c = elasticityC3D(E,nu);
a = 0;
f = [0;0;0]; % Assume all body forces are zero
u = assempde(model,c,a,f); % calculate solution
Thanks

Réponse acceptée

Alan Weiss
Alan Weiss le 12 Fév 2016
Unfortunately, I don't think that you can do exactly what you want at this point in time. Ideally, you would have different layers specified in your geometry, and could set different coefficients for each layer. But the current toolbox cannot accept different layers to mesh.
Instead, you can fake a solution, but it will not be totally accurate. Set different material properties by setting c to be a nonconstant coefficient. Make sure that your mesh is fine enough to distinguish between your layers. The problem, of course, is that your mesh will not align with your geometry, so the material properties will be set in a fashion that is not 100% aligned with your desired geometry.
Good luck,
Alan Weiss
MATLAB mathematical toolbox documentation
  4 commentaires
Vinh Dang
Vinh Dang le 15 Fév 2016
Modifié(e) : Vinh Dang le 15 Fév 2016
Thank you very much for your code. It works very well. By the way, I would like to ask you the problem in applyBoundaryCondition section. Suppose I have 2 layers, as attached figure. Now I want to apply static load on face F66 and set the displacement in (x,y,z) direction of face F68 equal to those of face F61. Could you please suggest me the code for this issue. Here is my code for applied static load. I do not know it is right or not.
distributedLoad = 3.5; % Applied load in N/mm^2
applyBoundaryCondition(model,'Face',66,'g',[0,0,distributedLoad]); % Generalized Neumann condition
applyBoundaryCondition(model,'Face',51,'u',[0,0,0]); % Dirichlet conditions
myufun = @(region,state)[region.x;region.y;region.z];
applyBoundaryCondition(model,'Face',68,'u',myufun,'Vectorized','on');
myufun = @(region,state)[region.x;region.y;region.z-10]; % distance between F61 and F68 is 10.
applyBoundaryCondition(model,'Face',61,'u',myufun,'Vectorized','on');
Thanks in advance!
Alan Weiss
Alan Weiss le 16 Fév 2016
Sorry, I really cannot help with this question. Though it seems that you have a typo: face 51 instead of 61.
By the way, you might have better luck getting your question answered if you start a new thread; people might see that this thread has an accepted answer, and would never see the new question.
Good luck,
Alan Weiss
MATLAB mathematical toolbox documentation

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by