Different materials using PDE tool

6 ビュー (過去 30 日間)
Vinh Dang
Vinh Dang 2016 年 2 月 12 日
コメント済み: Alan Weiss 2016 年 2 月 16 日
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

採用された回答

Alan Weiss
Alan Weiss 2016 年 2 月 12 日
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 件のコメント
Vinh Dang
Vinh Dang 2016 年 2 月 15 日
編集済み: Vinh Dang 2016 年 2 月 15 日
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 2016 年 2 月 16 日
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

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeBoundary Conditions についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by