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

2 Kommentare

darova
darova am 21 Mär. 2020
Can you make a simple drawing of the geometry?
Sarinthree Udchachone
Sarinthree Udchachone am 21 Mär. 2020

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

darova
darova am 21 Mär. 2020

0 Stimmen

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

9 Kommentare

Sarinthree Udchachone
Sarinthree Udchachone am 21 Mär. 2020
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
darova
darova am 21 Mär. 2020
Can you attach your project/code?
Sarinthree Udchachone
Sarinthree Udchachone am 21 Mär. 2020
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 am 21 Mär. 2020
Bearbeitet: darova am 21 Mär. 2020
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
darova
darova am 22 Mär. 2020
Can you make a simple drawing? How should the result look like?
Sarinthree Udchachone
Sarinthree Udchachone am 22 Mär. 2020
Thanks a lot for your suggestions. It works well.
~Sandy
darova
darova am 22 Mär. 2020
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')
darova
darova am 22 Mär. 2020
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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by