首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向封闭半圆中添加网格MATLAB

向封闭半圆中添加网格MATLAB
EN

Stack Overflow用户
提问于 2021-08-04 10:45:35
回答 1查看 57关注 0票数 1

我目前正在尝试对一个具有半圆形形状的合金进行2D热传递分析(然后在这个形状上引入一个热源)。我发现自己无法生成特定形状的网格,下面的代码显示了我到目前为止所做的事情,如果有人能给我指出正确的方向,我将不胜感激!

最初,我将网格参数设置如下:

代码语言:javascript
复制
%-------------------GRID SETTINGS----------------------%
Sx = 10;                    %physical width
Sy = 10;                    %physical height
Nx = 100;                   %number of points x-axis
Ny = round(Nx*Sy/Sx);       %number of points y-axis

Nt = 500; 

%-------------------GRID RESOLUTION---------------------%
dx = Sx/(Nx);
dy = Sy/(Ny);

并创建了一个封闭的半圆形的形状,如下所示:

代码语言:javascript
复制
%---------------------SHAPE CREATION--------------------%      
r1 = 0.07;                          %radius 1, m
r2 = 5;                             %radius 2, m
phi = 0:0.01:pi;
x = r2*cos(phi); x = [x,x(1)];      %x coordinates 
y = r1*sin(phi); y = [y,y(1)];      %y coordinates

[X, Y] = meshgrid(x,y);
EN

回答 1

Stack Overflow用户

发布于 2021-08-04 16:19:43

我会为你的网格使用极坐标,然后在笛卡尔坐标中可视化结果。看看下面的例子,希望这能给你一个起点(不太确定为什么你应用了两个不同的半径(r1r2)到你的xy坐标-所以我假设你有一个最小和最大半径)。

代码语言:javascript
复制
Nx = 100; 
r1 = 1;                          %radius 1, m
r2 = 5;                          %radius 2, m
phi = 0:0.01:pi;

% generate mesh grid in polar coordinates
radius = linspace(r1, r2, Nx/2);
[Radius, Phi] = meshgrid(radius, phi);

heat = Radius.^2; % some "fake" heat data

% plot results (in cartesian coordinates)
mesh(Radius.*cos(Phi), Radius.*sin(Phi), heat)

axis equal
% top view
view([-0.2 90.0])

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68649859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档