散射问题
解决一个简单的散射问题,计算被入射波照亮的物体反射的波。这个例子展示了如何使用电磁工作流解决散射问题。有关一般的PDE工作流,请参见方孔圆盘上的亥姆霍兹方程.
对于这个问题,假设畴域是一个无限的水平膜受到小的垂直位移。膜固定在物体边界处。介质是均匀的,波的相速度(传播速度), ,是恒定的。对于这个问题,假设 = 1。在这种情况下,频率波数等于频率, .
为了解决散射问题,首先建立了谐波分析的电磁模型。
emagmodel = createpde (“电磁”,“谐”);
将频率指定为 .
ω= 4 *π;
用菱形孔表示正方形表面。在正方形中定义一个菱形,将它们放在一个矩阵中,并创建一个从正方形中减去菱形的集合公式。
平方= [3;4;5;5;5;5;5;5;5;5); diamond = [2; 4; 2.1; 2.4; 2.7; 2.4; 1.5; 1.8; 1.5; 1.2]; gd = [square,diamond]; ns = char(“广场”,“钻石”)”;科幻小说=“广场——钻石”;
创建几何。
g = decsg (gd、科幻、ns);geometryFromEdges (emagmodel g);
将几何图形包含在模型中,并使用边缘标签绘制它。
图;pdegplot (emagmodel“EdgeLabels”,“上”);xlim ([6 6]) ylim ([6 6])
指定真空介电常数和磁导率值为1。
emagmodel。VacuumPermittivity = 1;emagmodel。VacuumPermeability = 1;
指定材料的相对介电常数、相对渗透率和导电性。
electromagneticProperties (emagmodel“RelativePermittivity”, 1...“RelativePermeability”, 1...“导”, 0);
在正方形的边缘上应用吸收边界条件。参数指定吸收区域的厚度和衰减速率厚度
,指数
,扩展
参数。
electromagneticBC (emagmodel“边缘”,[1 2 7 8],...“FarField”,“吸收”,...“厚度”2,...“指数”4...“缩放”1);
对菱形边缘应用边界条件。
innerBCFunc = @(location,~) [-exp(-1i*omega*location.x);...0(1)长度(location.x)));克里丝= electromagneticBC (emagmodel,“边缘”,[3 4 5 6],...“电场”, innerBCFunc);
生成一个网格。
generateMesh (emagmodel“Hmax”, 0.1);
求解频率的谐波分析模型 .
结果=解决(emagmodel,“频率”ω);
画出实部x
产生的电场的-分量。
u = result.ElectricField;图pdeplot (emagmodel,“XYData”,真正的(u.Ex),“网”,“关闭”);colormap(飞机)
将得到的电场插值到覆盖几何图形部分的网格中x而且y从-1到4。
v = linspace (4101);(X, Y) = meshgrid (v);Eintrp = interpolateHarmonicField(因此,X, Y);
重塑Eintrp。前女友
和情节x产生的电场的-分量。
EintrpX =重塑(Eintrp.ElectricField.Ex、大小(X));图冲浪(X, Y,真实(EintrpX),“线型”,“没有”);视图(0 90)colormap(飞机)
使用频率矢量的解,创建一个动画,显示与时间相关的波动方程的相应解。
结果=解决(emagmodel,“频率”ω/ 10:ω);数字为m = 1:长度(ω /10: ω) u = result.电场;pdeplot (emagmodel“XYData”,真正的(u.Ex (:, m)),“网”,“关闭”);colormap(jet) M(M) = getframe;结束
要播放动画,请使用电影
函数。例如,要以每秒3帧的速度循环播放动画5次,请使用电影(M、5、3)
命令。