2010-03-23 06:15:04 +08:00
|
|
|
function FDTD = SetBoundaryCond(FDTD,BC)
|
2010-04-01 15:39:12 +08:00
|
|
|
% FDTD = SetBoundaryCond(FDTD,BC)
|
|
|
|
%
|
|
|
|
% BC = [xmin xmax ymin ymax zmin zmax];
|
2010-07-16 23:25:32 +08:00
|
|
|
% ?min/?max: 0=PEC 1=PMC 2=MUR-ABC 3=PML-ABC
|
2010-04-24 22:43:22 +08:00
|
|
|
%
|
|
|
|
% openEMS matlab interface
|
|
|
|
% -----------------------
|
|
|
|
% author: Thorsten Liebig
|
2010-03-23 06:15:04 +08:00
|
|
|
|
2010-07-30 23:03:34 +08:00
|
|
|
if (numel(BC)~=6)
|
|
|
|
error('openEMS:SetBoundaryCond','wrong number of boundary conditions');
|
|
|
|
end
|
|
|
|
|
|
|
|
if isnumeric(BC)
|
|
|
|
FDTD.BoundaryCond.ATTRIBUTE.xmin=BC(1);
|
|
|
|
FDTD.BoundaryCond.ATTRIBUTE.xmax=BC(2);
|
|
|
|
FDTD.BoundaryCond.ATTRIBUTE.ymin=BC(3);
|
|
|
|
FDTD.BoundaryCond.ATTRIBUTE.ymax=BC(4);
|
|
|
|
FDTD.BoundaryCond.ATTRIBUTE.zmin=BC(5);
|
|
|
|
FDTD.BoundaryCond.ATTRIBUTE.zmax=BC(6);
|
|
|
|
elseif iscell(BC)
|
|
|
|
FDTD.BoundaryCond.ATTRIBUTE.xmin=BC{1};
|
|
|
|
FDTD.BoundaryCond.ATTRIBUTE.xmax=BC{2};
|
|
|
|
FDTD.BoundaryCond.ATTRIBUTE.ymin=BC{3};
|
|
|
|
FDTD.BoundaryCond.ATTRIBUTE.ymax=BC{4};
|
|
|
|
FDTD.BoundaryCond.ATTRIBUTE.zmin=BC{5};
|
|
|
|
FDTD.BoundaryCond.ATTRIBUTE.zmax=BC{6};
|
|
|
|
else
|
|
|
|
error('openEMS:SetBoundaryCond','unknown boundary condition type');
|
|
|
|
end
|
|
|
|
|
|
|
|
|