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

📄 capture_sampled_electric_fields_2d.m

📁 The Finite Difference Time Domain Method for Electromagnetics With MATLAB Simulations Atef Elshe
💻 M
字号:
% Capturing electric fields

for ind=1:number_of_sampled_electric_fields
    is = sampled_electric_fields(ind).is;
    js = sampled_electric_fields(ind).js;

    switch (sampled_electric_fields(ind).component)
        case 'x'
            sampled_value = 0.5 * sum(Ex(is-1:is,js)); 
        case 'y'
            sampled_value = 0.5 * sum(Ey(is,js-1:js)); 
        case 'z'
            sampled_value = 1.0 * Ez(is,js); 
        case 'm'
            svx = 0.5 * sum(Ex(is-1:is,js)); 
            svy = 0.5 * sum(Ey(is,js-1:js)); 
            svz = 1.0 * Ez(is,js); 
            sampled_value = sqrt(svx^2 + svy^2 + svz^2);
    end
    sampled_electric_fields(ind).sampled_value(time_step) = sampled_value;
end

% capture sampled time harmonic electric fields on a plane
for ind=1:number_of_sampled_frequency_E_planes  
    w = 2 * pi * sampled_frequency_E_planes(ind).frequency;
    Es = zeros(nxp1, nyp1);    
    component = sampled_frequency_E_planes(ind).component;
    switch (component)
        case 'x'
            Es(2:nx,:) = 0.5 * (Ex(1:nx-1,:) + Ex(2:nx,:)); 
        case 'y'
            Es(:,2:ny) = 0.5 * (Ey(:,1:ny-1) + Ey(:,2:ny)); 
        case 'z'
            Es = Ez;
        case 'm'
            Exs(2:nx,:) = 0.5 * (Ex(1:nx-1,:) + Ex(2:nx,:)); 
            Eys(:,2:ny) = 0.5 * (Ey(:,1:ny-1) + Ey(:,2:ny)); 
            Ezs = Ez;
            Es = sqrt(Exs.^2 + Eys.^2 + Ezs.^2);
    end
    sampled_frequency_E_planes(ind).sampled_field = ...
        sampled_frequency_E_planes(ind).sampled_field ...
        + dt * Es * exp(-j*w*dt*time_step);
end

⌨️ 快捷键说明

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