⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 timeupdt.m

📁 非连续波导时间域有限差分法仿真(TD-FDM)
💻 M
字号:
% time update
% scheme selection by user.
% explicit scheme!!!

Hz = zeros(node,2);            % pre-define the first two time steps

switch scheme
    case 1
        TERM1 = inv(dt*S+2*T);
        TERM2 = -2*(dt*dt)*P + 4*T;
        TERM3 = dt*S - 2*T;
    case 0
        TERM1 = inv(dt^2*P + 2*dt*S + 2*T);
        TERM2 = 4*T + 2*dt*S - dt^2*P;
        TERM3 = -2*T;
    otherwise
        error('You choose the wrong scheme...');
end

t0 = clock;

rms = 1;
step = 1;
t(step) = dt; g(step) = 0;
step = step + 1;
t(step) = step*dt; g(step)=gauss(step,dt,fc);

while( step<MAX_STEP || g(step)>1e-10 )
    % each iteration, 50 time steps!
    for k=1:50
        step = step+1;
        t(step) = step*dt;
        g(step) = gauss(step,dt,fc);
        tmp = gauss(step+1,dt,fc);
        diff_g(step) = (1/2/dt)*(tmp-g(step-1));  %C.D.
        Hz(:,step) = TERM1 * (2*(dt^2)*diff_g(step)*f(:) + TERM2*Hz(:,step-1) + TERM3*Hz(:,step-2));  % explicit scheme!!!
    end
end

tt = etime(clock,t0);





    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -