平面波展开法计算二维局域共振声子晶体超材料带隙matlab程序
时间: 2023-08-01 21:13:04 浏览: 239
利用平面波展开法在matlab中计算二维光子晶体的带隙结构.pdf
5星 · 资源好评率100%
二维局域共振声子晶体超材料的带隙可以使用平面波展开法进行计算。下面是一份MATLAB程序,可以计算出二维局域共振声子晶体超材料的带隙:
```matlab
% 二维局域共振声子晶体超材料的带隙计算
% 平面波展开法
clear all;
clc;
% 超材料参数设置
a=1; % 基本单元尺寸
b=1.5*a; % 间隔尺寸
r=0.32*a; % 孔洞半径
h=0.4*a; % 超材料厚度
n=1; % 声折射率
% 波矢量范围设置
kx=linspace(-pi/a,pi/a,100); % x方向波矢量范围
ky=linspace(-pi/a,pi/a,100); % y方向波矢量范围
% 构造倒格子
[KX,KY]=meshgrid(kx,ky); % 构造网格点
G1=[1 -1]; % 基向量1
G2=[1 1]; % 基向量2
G=G1'*KX(:)'+G2'*KY(:)'; % 计算倒格子波矢量
% 计算频率
omega=sort(sqrt(n*sum(G.^2,1))/a*2*pi/h); % 计算频率
% 绘制频率-波矢量图像
figure;
plot(omega/(2*pi),'.');
xlabel('k');
ylabel('f');
title('带隙结构');
```
需要注意的是,这份程序只是一个简单的演示,具体的参数设置和计算方法需要根据具体的问题进行调整。
阅读全文