daspect([m n p])

设置坐标轴比例
本文介绍如何使用daspect函数设置三维坐标轴的比例,实现x、y、z轴单位长度的等比显示。

daspect([m n p]):将坐标轴的长宽高(x,y,z轴)单位长度之比设为:m:n:p。

daspect([1 1 1]) = axis equal

 

转载于:https://www.cnblogs.com/sddne/p/4700415.html

%% 电偶极辐射仿真(有限差分法) clear; clc; close all; %% 参数设置 lambda = 0.5; % 波长(m) c = 3e8; % 光速(m/s) f = c / lambda; % 频率(Hz) omega = 2*pi*f; % 角频率 p0 = 1e-9; % 电偶极矩振幅(C·m) sigma = 0.1; % 脉冲宽度(s) t0 = 0.5/sigma; % 脉冲中心时间(s) dx = lambda/50; % 空间步长(m) dy = dx; % 二维仿真时dy=dx dz = dx; % 三维仿真时dz=dx dt = dx/c/1.5; % 时间步长(s)(满足CFL条件) x_range = [-1 1]; % 计算区域x范围(m) y_range = [-1 1]; % 计算区域y范围(m) z_range = ; % 二维仿真时z=0 epsilon0 = 8.854187817e-12; % 真空介电常数(F/m) mu0 = 4*pi*1e-7; % 真空磁导率(H/m) %% 初始化网格 [x,y,z] = meshgrid(... x_range(1):dx:x_range(2), ... y_range(1):dy:y_range(2), ... z_range(1):dz:z_range(2)); N_x = size(x,1); % 网格点数x方向 N_y = size(y,2); % 网格点数y方向 N_z = size(z,3); % 网格点数z方向 %% 初始化场量 Ex = zeros(N_x,N_y,N_z); % x方向电场 Ey = zeros(N_x,N_y,N_z); % y方向电场 Hz = zeros(N_x,N_y,N_z); % z方向磁场 %% 边界条件设置(PML吸收边界) pml_order = 4; % PML阶数 pml厚 = 10; % PML厚度(网格单元数) % 计算PML参数(这里仅简化实现) sigma_x = zeros(N_x,N_y,N_z); sigma_y = zeros(N_x,N_y,N_z); for i = 1:pml厚 sigma_x(i,:,:) = i/pml厚 * 1e-3; sigma_x(N_x-i+1,:,:) = i/pml厚 * 1e-3; end %% 时间迭代参数 t_max = 2*t0; % 总仿真时间(s) n_t = round(t_max/dt); % 总时间步数 E记录 = cell(n_t,1); % 存储电场数据 %% 仿真主循环 for n = 1:n_t t = n*dt; % 当前时间 % 电偶极激励(高斯脉冲) p = p0 * exp(-(t - t0)^2/(2*sigma^2)); % 电场更新(FDTD公式) Hz(2:end-1,2:end-1,2:end-1) = ... Hz(2:end-1,2:end-1,2:end-1) ... + (dt/(mu0*dy)) * (Ey(2:end-1,3:end,2:end-1) - Ey(2:end-1,2:end-1,2:end-1)) ... - (dt/(mu0*dx)) * (Ex(3:end,2:end-1,2:end-1) - Ex(2:end-1,2:end-1,2:end-1)); % 电场更新(考虑电偶极源) Ex(floor(N_x/2),floor(N_y/2),floor(N_z/2)) = ... Ex(floor(N_x/2),floor(N_y/2),floor(N_z/2)) ... + p/(epsilon0*dx*dy*dz) * dt; % 边界处理(PML) Hz = Hz .* exp(-sigma_x*dt/(2*mu0)); % 记录电场数据 E记录{n} = abs(Ex(:,:,1)); % 记录二维电场 % 可视化更新 if mod(n,50) == 0 figure(1); surf(x(:,:,1), y(:,:,1), E记录{n}, 'EdgeColor','none'); shading interp; title(['t = ',num2str(t,'%.2f'),' s']); axis([-1 1 -1 1 0 max(E记录{n}(:))] ); drawnow; end end %% 三维场分布可视化 figure(2); p = isosurface(x,y,z,abs(Ex),max(abs(Ex(:)))*0.5); isonormals(x,y,z,abs(Ex),p); patch(p,'FaceColor','interpolated','EdgeColor','none'); isonormals(x,y,z,abs(Ex),p); % 优化表面法线 daspect(); view(45,30); % 设置视角 camlight('headlight'); % 添加光源 lighting phong; xlabel('x (m)'); ylabel('y (m)'); zlabel('z (m)'); title('三维电场分布'); colormap jet; %% 近场特性分析 figure(3); near_field = Ex(floor(N_x/2)-10:floor(N_x/2)+10, ... floor(N_y/2)-10:floor(N_y/2)+10, ... floor(N_z/2)); surf(abs(near_field)); title('近场分布'); xlabel('x方向'); ylabel('y方向'); zlabel('电场强度');中显示E记录有误,没有正确使用,请告诉我应用什么代替。显示pml厚也显示错误,用什么代替
03-11
%% 电偶极辐射仿真(有限差分法) clear; clc; close all; %% 参数设置 lambda = 0.5; % 波长(m) c = 3e8; % 光速(m/s) f = c / lambda; % 频率(Hz) omega = 2*pi*f; % 角频率 p0 = 1e-9; % 电偶极矩振幅(C·m) sigma = 0.1; % 脉冲宽度(s) t0 = 0.5/sigma; % 脉冲中心时间(s) dx = lambda/50; % 空间步长(m) dy = dx; % 二维仿真时dy=dx dz = dx; % 三维仿真时dz=dx dt = dx/c/1.5; % 时间步长(s)(满足CFL条件) x_range = [-1 1]; % 计算区域x范围(m) y_range = [-1 1]; % 计算区域y范围(m) z_range =[0 0] ; % 二维仿真时z=0 epsilon0 = 8.854187817e-12; % 真空介电常数(F/m) mu0 = 4*pi*1e-7; % 真空磁导率(H/m) %% 初始化网格 [x,y,z] = meshgrid(... x_range(1):dx:x_range(2), ... y_range(1):dy:y_range(2), ... z_range(1):dz:z_range(2)); N_x = size(x,1); % 网格点数x方向 N_y = size(y,2); % 网格点数y方向 N_z = size(z,3); % 网格点数z方向 %% 初始化场量 Ex = zeros(N_x,N_y,N_z); % x方向电场 Ey = zeros(N_x,N_y,N_z); % y方向电场 Hz = zeros(N_x,N_y,N_z); % z方向磁场 %% 边界条件设置(PML吸收边界) pml_order = 4; % PML阶数 pml_thickness = 10; % PML厚度(网格单元数) % 计算PML参数(这里仅简化实现) sigma_x = zeros(N_x,N_y,N_z); sigma_y = zeros(N_x,N_y,N_z); for i = 1:pml sigma_x(i,:,:) = i/pml * 1e-3; sigma_x(N_x-i+1,:,:) = i/pml* 1e-3; end %% 时间迭代参数 t_max = 2*t0; % 总仿真时间(s) n_t = round(t_max/dt); % 总时间步数 E_record= cell(n_t,1); % 存储电场数据 %% 仿真主循环 for n = 1:n_t t = n*dt; % 当前时间 % 电偶极激励(高斯脉冲) p = p0 * exp(-(t - t0)^2/(2*sigma^2)); % 电场更新(FDTD公式) Hz(2:end-1,2:end-1,2:end-1) = ... Hz(2:end-1,2:end-1,2:end-1) ... + (dt/(mu0*dy)) * (Ey(2:end-1,3:end,2:end-1) - Ey(2:end-1,2:end-1,2:end-1)) ... - (dt/(mu0*dx)) * (Ex(3:end,2:end-1,2:end-1) - Ex(2:end-1,2:end-1,2:end-1)); % 电场更新(考虑电偶极源) Ex(floor(N_x/2),floor(N_y/2),floor(N_z/2)) = ... Ex(floor(N_x/2),floor(N_y/2),floor(N_z/2)) ... + p/(epsilon0*dx*dy*dz) * dt; % 边界处理(PML) Hz = Hz .* exp(-sigma_x*dt/(2*mu0)); % 记录电场数据 E_record{n} = abs(Ex(:,:,1)); % 记录 % 可视化更新 if mod(n,50) == 0 figure(1); surf(x(:,:,1), y(:,:,1), E_record{n}, 'EdgeColor','none'); shading interp; title(['t = ',num2str(t,'%.2f'),' s']); axis([-1 1 -1 1 0 max(E_record{n}(:))]); drawnow; end end %% 三维场分布可视化 figure(2); p = isosurface(x,y,z,abs(Ex),max(abs(Ex(:)))*0.5); isonormals(x,y,z,abs(Ex),p); patch(p,'FaceColor','interpolated','EdgeColor','none'); isonormals(x,y,z,abs(Ex),p); % 优化表面法线 daspect([1 1 1 ]); view(45,30); % 设置视角 camlight('headlight'); % 添加光源 lighting phong; xlabel('x (m)'); ylabel('y (m)'); zlabel('z (m)'); title('三维电场分布'); colormap jet; %% 近场特性分析 figure(3); near_field = Ex(floor(N_x/2)-10:floor(N_x/2)+10, ... floor(N_y/2)-10:floor(N_y/2)+10, ... floor(N_z/2)); surf(abs(near_field)); title('近场分布'); xlabel('x方向'); ylabel('y方向'); zlabel('电场强度');中的for i = 1:pml显示未定义函数或变量 'pml',请告诉我怎么样修改
03-11
clear all; figure; %************************************************************************** % 3D Interpolation (takes some time) %************************************************************************** %Matlab [x,y,z,v] = flow(10); [xi,yi,zi] = meshgrid(.1:.25:10, -3:.25:3, -3:.25:3); vi = interp3(x,y,z,v,xi,yi,zi); subplot(2,2,1); slice(xi,yi,zi,vi,[6 9.5],2,[-2 .2]), shading flat; ; title('Interpolation using Matlab function interp3'); subplot(2,2,2); slice(x,y,z,v,[6 9.5],2,[-2 .2]), shading flat; title('data used for interpolation'); %RBF op=rbfcreate([x(:)'; y(:)'; z(:)'], v(:)','RBFFunction', 'multiquadric', 'Stats', 'on'); rbfcheck(op); rbfvi = rbfinterp([xi(:)'; yi(:)'; zi(:)'], op); rbfvi = reshape(rbfvi, size(xi)); subplot(2,2,3); slice(xi,yi,zi,rbfvi,[6 9.5],2,[-2 .2]), shading flat; ; title('RBF Interpolation'); [xr,yr,zr,vr] = flow(100); subplot(2,2,4); slice(xr,yr,zr,vr,[6 9.5],2,[-2 .2]), shading flat; title('Original 3D data'); clear all; figure; %************************************************************************** % 3D Interpolation using isosurface vizualization %************************************************************************** %Matlab [x,y,z,v] = flow(10); [xi,yi,zi] = meshgrid(.1:.55:10, -3:.55:3, -3:.55:3); vi = interp3(x,y,z,v,xi,yi,zi); subplot(2,2,1); p = patch(isosurface(xi,yi,zi,vi,-3)); title('Interpolation using Matlab function interp3'); isonormals(xi,yi,zi,vi,p) set(p,'FaceColor','red','EdgeColor','none'); daspect([1 1 1]) view(3); axis tight camlight lighting gouraud % show data used for interpolation subplot(2,2,2); p = patch(isosurface(x,y,z,v,-3)); title('data used for interpolation'); isonormals(x,y,z,v,p) set(p,'FaceColor','red','EdgeColor','none'); daspect([1 1 1]) view(3); axis tight camlight lighting gouraud %RBF op=rbfcreate([x(:)'; y(:)'; z(:)'], v(:)','RBFFunction', 'multiquadric', 'Stats', 'on'); rbfcheck(op); rbfvi = rbfinterp([xi(:)'; yi(:)'; zi(:)'], op); rbfvi = reshape(rbfvi, size(xi)); subplot(2,2,3); p = patch(isosurface(xi,yi,zi,rbfvi,-3)); title('RBF Interpolation'); isonormals(xi,yi,zi,rbfvi,p) set(p,'FaceColor','red','EdgeColor','none'); daspect([1 1 1]) view(3); axis tight camlight lighting gouraud [x,y,z,v] = flow(100); subplot(2,2,4); p = patch(isosurface(x,y,z,v,-3)); title('Original 3D data'); isonormals(x,y,z,v,p) set(p,'FaceColor','red','EdgeColor','none'); daspect([1 1 1]) view(3); axis tight camlight lighting gouraud
05-17
% 三维热传导模拟 - 含高斯热源与边界条件 clear; clc; close all; %% ====================== 参数设置 ====================== params = struct(... 'Lx', 0.2, ... % X方向长度 (m) 'Ly', 0.1, ... % Y方向长度 (m) 'Lz', 0.05, ... % Z方向长度 (m) 'Nx', 50, ... % X方向网格数 'Ny', 30, ... % Y方向网格数 'Nz', 20, ... % Z方向网格数 'alpha', 1e-5, ... % 热扩散系数 (m²/s) 'k', 50, ... % 热导率 (W/m·K) 'T0', 20, ... % 初始温度 (°C) 'T_amb', 20, ... % 环境温度 (°C) 'totalTime', 100, ... % 总模拟时间 (s) 'dt', 0.5, ... % 时间步长 (s) 'Q0', 1e6, ... % 热源峰值强度 (W/m³) 'sourcePos', [0.1, 0.05, 0.025], ... % 热源中心位置 'sigma', 0.01, ... % 高斯热源标准差 (m) 'h_conv', 50, ... % 对流换热系数 (W/m²·K) 'outputInterval', 10 ...% 输出间隔 (时间步) ); %% ====================== 网格生成 ====================== % 空间网格 x = linspace(0, params.Lx, params.Nx); y = linspace(0, params.Ly, params.Ny); z = linspace(0, params.Lz, params.Nz); dx = x(2) - x(1); dy = y(2) - y(1); dz = z(2) - z(1); % 时间网格 time = 0:params.dt:params.totalTime; numSteps = numel(time); % 创建三维网格坐标 [X, Y, Z] = meshgrid(x, y, z); %% ====================== 初始化温度场 ====================== T = params.T0 * ones(size(X)); % 初始温度场 % 高斯热源函数 heat_source = @(x,y,z) params.Q0 * exp(-((x-params.sourcePos(1)).^2 + ... (y-params.sourcePos(2)).^2 + ... (z-params.sourcePos(3)).^2) / ... (2*params.sigma^2)); %% ====================== 边界条件设置 ====================== % 边界类型标识 (1: Dirichlet, 2: Neumann, 3: Convection) boundary = struct(... 'xmin', 1, ... % x=0: 固定温度 'xmax', 3, ... % x=Lx: 对流换热 'ymin', 2, ... % y=0: 绝热 'ymax', 2, ... % y=Ly: 绝热 'zmin', 2, ... % z=0: 绝热 'zmax', 3 ... % z=Lz: 对流换热 ); % 边界值 boundaryValue = struct(... 'xmin', params.T0, ... 'xmax', params.T_amb, ... 'ymin', 0, ... 'ymax', 0, ... 'zmin', 0, ... 'zmax', params.T_amb ... ); %% ====================== 可视化设置 ====================== fig = figure('Color', 'w', 'Position', [100, 100, 1200, 800]); % 温度场切片可视化 subplot(2,3,[1,2,4,5]); sliceHandle = slice(X, Y, Z, T, params.Lx/2, params.Ly/2, params.Lz/2); set(sliceHandle, 'EdgeColor', 'none'); shading interp; colormap jet; colorbar; caxis([params.T0, params.T0 + 300]); % 固定颜色范围 xlabel('X (m)'); ylabel('Y (m)'); zlabel('Z (m)'); title(sprintf('温度分布 (t = %.1f s)', 0)); axis tight equal; view(45,30); rotate3d on; % 热源位置标记 hold on; sourcePlot = scatter3(params.sourcePos(1), params.sourcePos(2), params.sourcePos(3), ... 150, 'ro', 'filled'); % 温度监测点 monitorPos = [0.05, 0.03, 0.01; % 近热源点 0.15, 0.05, 0.025; % 远端点 0.1, 0.05, 0.04]; % 上表面点 monitorLabels = {'A', 'B', 'C'}; monitorPlot = scatter3(monitorPos(:,1), monitorPos(:,2), monitorPos(:,3), ... 100, 'kh', 'filled'); text(monitorPos(1,1)+0.005, monitorPos(1,2), monitorPos(1,3), 'A', 'FontSize', 12); text(monitorPos(2,1)+0.005, monitorPos(2,2), monitorPos(2,3), 'B', 'FontSize', 12); text(monitorPos(3,1)+0.005, monitorPos(3,2), monitorPos(3,3), 'C', 'FontSize', 12); % 温度曲线 subplot(2,3,3); tempPlot = plot(0, [params.T0, params.T0, params.T0], 'LineWidth', 2); legend('A', 'B', 'C', 'Location', 'northwest'); xlabel('时间 (s)'); ylabel('温度 (°C)'); title('监测点温度变化'); grid on; % 热通量分布 subplot(2,3,6); [~, midZ] = min(abs(z - params.Lz/2)); % 中间Z平面 heatFluxPlot = imagesc(x, y, zeros(size(X(:,:,midZ)))); axis equal tight; xlabel('X (m)'); ylabel('Y (m)'); title('热通量分布 (|q|)'); colorbar; set(gca, 'YDir', 'normal'); % 视频记录 videoFile = VideoWriter('3d_heat_conduction.mp4', 'MPEG-4'); videoFile.FrameRate = 10; open(videoFile); %% ====================== 主计算循环 ====================== % 存储监测点温度 monitorTemps = zeros(numSteps, size(monitorPos,1)); monitorTemps(1,:) = params.T0; % 计算稳定性条件 dt_max = 1/(2*params.alpha*(1/dx^2 + 1/dy^2 + 1/dz^2)); if params.dt > 0.9*dt_max warning('时间步长可能不稳定,建议小于 %.4f s', dt_max); params.dt = 0.8*dt_max; end for n = 2:numSteps currentTime = time(n); % 创建新温度场副本 T_new = T; % 应用热源 Q = heat_source(X, Y, Z); T_new = T_new + Q * params.dt / (params.k * params.alpha); % 三维热传导计算 (有限差分法) for i = 2:params.Ny-1 for j = 2:params.Nx-1 for k = 2:params.Nz-1 % 拉普拉斯项 (二阶中心差分) d2Tdx2 = (T(i, j+1, k) - 2*T(i, j, k) + T(i, j-1, k)) / dx^2; d2Tdy2 = (T(i+1, j, k) - 2*T(i, j, k) + T(i-1, j, k)) / dy^2; d2Tdz2 = (T(i, j, k+1) - 2*T(i, j, k) + T(i, j, k-1)) / dz^2; % 时间积分 (显式欧拉法) T_new(i, j, k) = T(i, j, k) + params.alpha * params.dt * ... (d2Tdx2 + d2Tdy2 + d2Tdz2); end end end % 应用边界条件 T_new = applyBoundaryConditions(T_new, boundary, boundaryValue, dx, dy, dz, params); % 更新温度场 T = T_new; % 记录监测点温度 for m = 1:size(monitorPos,1) [~, idxX] = min(abs(x - monitorPos(m,1))); [~, idxY] = min(abs(y - monitorPos(m,2))); [~, idxZ] = min(abs(z - monitorPos(m,3))); monitorTemps(n, m) = T(idxY, idxX, idxZ); end % 更新可视化 if mod(n, params.outputInterval) == 0 % 更新切片图 set(sliceHandle, 'CData', T); title(subplot(2,3,[1,2,4,5]), sprintf('温度分布 (t = %.1f s)', currentTime)); % 更新温度曲线 set(tempPlot(1), 'XData', time(1:n), 'YData', monitorTemps(1:n,1)); set(tempPlot(2), 'XData', time(1:n), 'YData', monitorTemps(1:n,2)); set(tempPlot(3), 'XData', time(1:n), 'YData', monitorTemps(1:n,3)); % 更新热通量图 [qx, qy, qz] = gradient(T, dy, dx, dz); qx = -params.k * qx; qy = -params.k * qy; qz = -params.k * qz; q_mag = sqrt(qx.^2 + qy.^2 + qz.^2); set(heatFluxPlot, 'CData', q_mag(:,:,midZ)); drawnow; % 记录视频帧 writeVideo(videoFile, getframe(fig)); end end % 关闭视频文件 close(videoFile); disp('模拟完成,视频已保存为 3d_heat_conduction.mp4'); %% ====================== 后处理分析 ====================== % 最终温度分布分析 figure('Color', 'w', 'Position', [100, 100, 1000, 800]); % 三维等温面 subplot(2,2,1); isovalue = params.T0 + 0.7*(max(T(:)) - params.T0); p = patch(isosurface(X, Y, Z, T, isovalue)); isonormals(X, Y, Z, T, p); set(p, 'FaceColor', 'red', 'EdgeColor', 'none'); daspect([1 1 1]); view(3); axis tight; camlight; lighting gouraud; title(sprintf('等温面 T = %.1f °C', isovalue)); xlabel('X'); ylabel('Y'); zlabel('Z'); colorbar; % 温度曲线对比 subplot(2,2,2); plot(time, monitorTemps, 'LineWidth', 2); xlabel('时间 (s)'); ylabel('温度 (°C)'); title('监测点温度变化曲线'); legend(monitorLabels, 'Location', 'northwest'); grid on; % 沿X轴温度分布 subplot(2,2,3); [~, midY] = min(abs(y - params.Ly/2)); [~, midZ] = min(abs(z - params.Lz/2)); plot(x, squeeze(T(midY, :, midZ)), 'LineWidth', 2); xlabel('X (m)'); ylabel('温度 (°C)'); title(sprintf('Y=%.3f, Z=%.3f 处温度分布', y(midY), z(midZ))); grid on; % 热通量分布 subplot(2,2,4); [qx, qy, qz] = gradient(T, dy, dx, dz); qx = -params.k * qx; qy = -params.k * qy; qz = -params.k * qz; q_mag = sqrt(qx.^2 + qy.^2 + qz.^2); imagesc(x, y, q_mag(:,:,midZ)); axis equal tight; xlabel('X (m)'); ylabel('Y (m)'); title('最终热通量分布 (|q|)'); colorbar; set(gca, 'YDir', 'normal'); %% ====================== 边界条件应用函数 ====================== function T = applyBoundaryConditions(T, boundary, boundaryValue, dx, dy, dz, params) [Ny, Nx, Nz] = size(T); % X方向边界 (j=1和j=Nx) for i = 1:Ny for k = 1:Nz % xmin边界 (j=1) if boundary.xmin == 1 % Dirichlet T(i, 1, k) = boundaryValue.xmin; elseif boundary.xmin == 2 % Neumann (绝热) T(i, 1, k) = T(i, 2, k); elseif boundary.xmin == 3 % Convection h = params.h_conv; k_mat = params.k; T_inf = boundaryValue.xmin; T(i, 1, k) = (k_mat*T(i, 2, k) + h*dx*T_inf) / (k_mat + h*dx); end % xmax边界 (j=Nx) if boundary.xmax == 1 % Dirichlet T(i, Nx, k) = boundaryValue.xmax; elseif boundary.xmax == 2 % Neumann (绝热) T(i, Nx, k) = T(i, Nx-1, k); elseif boundary.xmax == 3 % Convection h = params.h_conv; k_mat = params.k; T_inf = boundaryValue.xmax; T(i, Nx, k) = (k_mat*T(i, Nx-1, k) + h*dx*T_inf) / (k_mat + h*dx); end end end % Y方向边界 (i=1和i=Ny) for j = 1:Nx for k = 1:Nz % ymin边界 (i=1) if boundary.ymin == 1 % Dirichlet T(1, j, k) = boundaryValue.ymin; elseif boundary.ymin == 2 % Neumann (绝热) T(1, j, k) = T(2, j, k); elseif boundary.ymin == 3 % Convection h = params.h_conv; k_mat = params.k; T_inf = boundaryValue.ymin; T(1, j, k) = (k_mat*T(2, j, k) + h*dy*T_inf) / (k_mat + h*dy); end % ymax边界 (i=Ny) if boundary.ymax == 1 % Dirichlet T(Ny, j, k) = boundaryValue.ymax; elseif boundary.ymax == 2 % Neumann (绝热) T(Ny, j, k) = T(Ny-1, j, k); elseif boundary.ymax == 3 % Convection h = params.h_conv; k_mat = params.k; T_inf = boundaryValue.ymax; T(Ny, j, k) = (k_mat*T(Ny-1, j, k) + h*dy*T_inf) / (k_mat + h*dy); end end end % Z方向边界 (k=1和k=Nz) for i = 1:Ny for j = 1:Nx % zmin边界 (k=1) if boundary.zmin == 1 % Dirichlet T(i, j, 1) = boundaryValue.zmin; elseif boundary.zmin == 2 % Neumann (绝热) T(i, j, 1) = T(i, j, 2); elseif boundary.zmin == 3 % Convection h = params.h_conv; k_mat = params.k; T_inf = boundaryValue.zmin; T(i, j, 1) = (k_mat*T(i, j, 2) + h*dz*T_inf) / (k_mat + h*dz); end % zmax边界 (k=Nz) if boundary.zmax == 1 % Dirichlet T(i, j, Nz) = boundaryValue.zmax; elseif boundary.zmax == 2 % Neumann (绝热) T(i, j, Nz) = T(i, j, Nz-1); elseif boundary.zmax == 3 % Convection h = params.h_conv; k_mat = params.k; T_inf = boundaryValue.zmax; T(i, j, Nz) = (k_mat*T(i, j, Nz-1) + h*dz*T_inf) / (k_mat + h*dz); end end end end
最新发布
05-30
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值