💥 💥 💞 💞 欢迎来到本博客 ❤️ ❤️ 💥 💥
🏆 博主优势: 🌞 🌞 🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳ 座右铭:行百里者,半于九十。
📋 📋 📋 本文目录如下: 🎁 🎁 🎁
目录
💥1 概述
📚2 运行结果
🎉3 参考文献
🌈4 Matlab代码实现
💥1 概述
膨胀波是流体力学的基本概念之一,指流体中扰动区与未扰动区的分界面,流体通过此界面会压力降低。膨胀波问题中一个典型例子是超音速气流绕凸角的定常流动,这种流动称为普朗特-迈耶尔流动。在这种流动中,气流逐渐从一个方向转到另一个方向,同时不断加速。
📚2 运行结果
部分代码:
%% clear %% inputs freq=10^3;%*(2.^([-20:20]/3)); %frequency %% setup domain and mesh domain.dim=[0.05 0.025]; %dimensions of domain domain.off=[0 0]; %offset of domain domain.fce=[1 2 3 4]; %face ids (for boundary conditions) on [-x +x -y +y] nnd=domain.dim./0.0025+1; %number of nodes in each direction mesh=blockmesh(nnd,domain.dim,domain.off,domain.fce); %% loop for frequency for f=1:length(freq) fprintf(['computing frequency ',num2str(f),' of ',num2str(length(freq)),' ... \n']); %% setup boundary conditions addpath('MESH') bcs=initbcs(mesh.nodes,mesh.elems,mesh.faces,8); bcs=addbcface(bcs,1,1,5); bcs=addbcface(bcs,1,2,6); bcs=addbcface(bcs,1,3,7); bcs=addbcface(bcs,1,4,8); bcs=addbcface(bcs,1,1,9); % bcs=addbcface(bcs,1,2,10); bcs=addbcface(bcs,1,3,11); bcs=addbcface(bcs,1,4,12); bcs.type{1}(:)=2; bcs.coef{1}(bcs.face{1}==1,5)=1; %face 1 bcs.coef{1}(bcs.face{1}==2,1)=1; %face 2 bcs.coef{1}(bcs.face{1}==3,2)=1; %face 3 bcs.coef{1}(bcs.face{1}==4,2)=1; %face 4 bcs.coef{1}(bcs.face{1}==5,6)=1; %face 5 bcs.coef{1}(bcs.face{1}==6,3)=1; %face 6 bcs.coef{1}(bcs.face{1}==7,4)=1; %face 7 bcs.coef{1}(bcs.face{1}==8,4)=1; %face 8 bcs.coef{1}(bcs.face{1}==9,8)=1; bcs.rhds{1}(bcs.face{1}==9)=1; %face 9 % bcs.coef{1}(bcs.face{1}==10,1)=1; %face 10 bcs.coef{1}(bcs.face{1}==11,6)=1; %face 11 bcs.coef{1}(bcs.face{1}==12,6)=1; %face 12 %% setup physics addpath('PLANES') air=air_properties_generic; medium=4003; PEM.name_mat=['Mat_porous_' num2str(medium-1000*floor(medium/1000))]; PEM.typ_mat=floor(medium/1000); eval(['PEM=Mat_porous_' num2str(medium-1000*floor(medium/1000)),'(PEM);']) PEM=properties_JCA(PEM,air,freq(f)); PEM=properties_PEM(PEM,air,freq(f)); physics=PEM; %% assemble [stiff,force,err,tol,condH]=assemble(mesh,bcs,physics,freq(f)); %% solve fprintf('solving ... \n'); operationtime=cputime; fprintf(' solving directly ... '); q=full(stiff\force); fprintf('done\n'); %% postprocess nnds=mesh.nnds; soln.usx(:,f)=q((1:nnds)+nnds*0); soln.usy(:,f)=q((1:nnds)+nnds*1); soln.utx(:,f)=q((1:nnds)+nnds*2); soln.uty(:,f)=q((1:nnds)+nnds*3); soln.sxx(:,f)=q((1:nnds)+nnds*4); soln.sxy(:,f)=q((1:nnds)+nnds*5); soln.syy(:,f)=q((1:nnds)+nnds*6); soln.p(:,f)=q((1:nnds)+nnds*7); % soln.cond(:,f)=condest(stiff); us=mean(reshape(soln.usx(:,f),nnd(1),nnd(2)),2); ut=mean(reshape(soln.utx(:,f),nnd(1),nnd(2)),2); s=mean(reshape(soln.sxx(:,f),nnd(1),nnd(2)),2); p=mean(reshape(soln.p(:,f),nnd(1),nnd(2)),2); Z=p(1)/ut(1); R=(Z-air.rho*air.c)/(Z+air.rho*air.c); alpha(:,f)=1-abs(R)^2;
🎉3 参考文献
部分理论来源于网络,如有侵权请联系删除。
[1]刘占芳,严波,唐录成.饱和多孔弹性材料中加速度波的传播[J].重庆大学学报(自然科学版),1998(02):9-17.