Geometry function - domain sketch

Hi, I am trying to sketch the domain for PDE solver. It is similar to the example function CIRCLEFUNCTION.m.
My domain has four edges. Left and right edges are parallel to the y-axis. Top and bottom edges are curves:
I have following so far:
________________________
function [x,y]= dom(bs,s)
if nargin = = 0
x=4;
end
if nargin = = 1
A=[ 0, 1, 1, 0 ;
1, 1, 0 , 0 ;
1, 1, 1, 1 ;
0, 0, 0, 0]
I don't know where to go from there. I read examples online, but they are complicated.
You could choose curves connecting top vertices and bottom vertices to be simple quadratic curves, vertices are (0,0), (1,0), (1,1), (0,1).
Thank you!
Sandy

 采纳的回答

Try pdepoly
x = 0:0.1:1;
y = x.^2-x+1;
x = [0 x 1];
y = [0 y 0];
pdepoly(x,y)

9 个评论

Thank you! It solves the problem of drawing, but since i change the method I am not sure how to add the mesh to it. Could you help with it if possible?
Thank you so much!
~Sandy
Can you attach your project/code?
This code is from Matlab page, how would I be able to add the geometry using pdepoly instead of "torus.stl"
importGeometry(model,'Torus.stl');
applyBoundaryCondition(model,'dirichlet','face',1,'u',0);
specifyCoefficients(model,'m',0,...
'd',0,...
'c',1,...
'a',0,...
'f',1);
Thank you!
~Sandy
darova
darova 2020-3-21
编辑:darova 2020-3-21
Sorry, i don't understand where is the problem. Can't you just import your geometry and run this script?
I know that the label for pdepoly is P1 by default, but I can not add mesh or include it to importGeometry(?,?). My code is iterative, so one time plot isn’t going to save me. The only issue for now is how to refer to pdepoly in creating the mesh and use it to solve some pde. If I could see it in an example that would definitely help.
Sorry for bothering! Thank you! ~Sandy
Can you make a simple drawing? How should the result look like?
Thanks a lot for your suggestions. It works well.
~Sandy
What about this?
x= 0:0.1:1;
y= x.^2-x+1;
x=[0 x 1];
y=[0 y 0];
pdepoly(x,y);
pdetool('initmesh')
% pdetool('refine')
Maybe it would be helpful
x= 0:0.1:1;
y= x.^2-x+1;
x=[0 x 1];
y=[0 y 0];
gd = [2;length(x);x(:);y(:)]; % geometry description matrix
dl = decsg(gd); % decompose matrix
[p,e,t] = initmesh(dl); % create mesh
subplot(121)
pdemesh(p,e,t)
axis equal
subplot(122)
[p1,e1,t1] = refinemesh(dl,p,e,t);
pdemesh(p1,e1,t1)
axis equal

请先登录,再进行评论。

更多回答(0 个)

标签

Community Treasure Hunt

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

Start Hunting!

Translated by