Make a grid for a non-rectangular geometry

I have a code that makes a grid for a rectangular geometry. Then it solves equations at each grid point. I want to make the geometry a little more complex (like in the diagram attached--a tank with an outlet attached to it), but don't know how. There is probably information out there about this, but I am not experienced in using Matlab and probably am not using the right search terms. If someone could help, I would be very grateful.
Here is the code I have:
Nx = 20; Ny = Nx; % Number of nodes in x and y direction.
% Lx and Ly are the lengths of each side of the rectangle.
% Grid
x = linspace(0,Lx,Nx); y = linspace(0,Ly,Ny);
delta_x = Lx/(Nx-1); delta_y = Ly/(Ny-1); % Spacing between nodes
% Initial condition
psi = zeros(Nx,Ny); var_store = zeros(Nx,Ny); omega = zeros(Nx,Ny);
How can I modify this to make it appropriate for the shape I want?

1 commentaire

Hi dear, I have a question exactly like you. do you find any answer? thank you.

Connectez-vous pour commenter.

Réponses (2)

KSSV
KSSV le 8 Nov 2018
L = 10; % length
H1 = 5 ;
H2 = 7 ;
%
% Full rectangle
M = 500 ;
x1 = linspace(0,L,M)' ;
y1 = linspace(0,H1,M)' ;
[X1,Y1] = meshgrid(x1,y1) ;
%
N = nnz(x1>=4 & x1<=7);
% Create top notch rectangle from x = 4 t0 7
x2 = linspace(4,7,N)' ;
y2 = linspace(H1,H2,N)' ;
[X2,Y2] = meshgrid(x2,y2) ;
% Merge the double nodes present
idx = knnsearch([X1(end,:)' Y1(end,:)'],[X2(1,:)' Y2(1,:)']) ;
X2(1,:) = X1(end,idx) ;
Y2(1,:) = Y1(end,idx) ;
figure
hold on
plot(X1,Y1,'.r')
plot(X2,Y2,'.b')
Peter
Peter le 22 Fév 2022

0 votes

Another answer for this is to leave the nominal XY grid defining the mesh, but use NaN outside of the prefered geometry.

1 commentaire

Jeremy Ahner
Jeremy Ahner le 15 Juil 2022
How would you go about assigning NaN values outside of the geometry?

Connectez-vous pour commenter.

Catégories

En savoir plus sur Computational Geometry dans Centre d'aide et File Exchange

Produits

Question posée :

le 25 Avr 2015

Commenté :

le 15 Juil 2022

Community Treasure Hunt

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

Start Hunting!

Translated by