1function CSX = AddProbe(CSX, name, type, varargin) 2% function CSX = AddProbe(CSX, name, type, varargin) 3% 4% Add a probe property to CSX with the given name. 5% Remember to add a geometrical primitive to any property. 6% 7% name: name of the property and probe file 8% 9% type: 0 for voltage probing 10% 1 for current probing 11% 2 for E-field probing 12% 3 for H-field probing 13% 14% 10 for waveguide voltage mode matching 15% 11 for waveguide current mode matching 16% 17% all following parameter are optional key/value parameter: 18% 19% weight: weighting factor (default is 1) 20% frequency: dump in the frequency domain at the given samples (in Hz) 21% ModeFunction: A mode function (used only with type 3/4) 22% NormDir: necessary for current probing box with dimension~=2 23% StartTime/StopTime: Define a start and/or stop time (in seconds) 24% for this probe to be active. 25 26% examples: 27% CSX = AddProbe(CSX,'ut1',0); %voltate probe 28% CSX = AddProbe(CSX,'it1',1); %current probe 29% 30% See also ReadUI in the openEMS matlab interface, AddDump, 31% AddExcitation, AddMaterial, AddExcitation, AddProbe, AddBox 32% 33% CSXCAD matlab interface 34% ----------------------- 35% author: Thorsten Liebig 36 37FD_samples = []; 38ModeFunction = {}; 39 40if ~ischar(name) 41 error('CSXCAD::AddProbe: name must be a string'); 42end 43 44prop_args = {'Type', type}; 45 46for n=1:2:numel(varargin) 47 if (strcmpi(varargin{n},'weight')==1); 48 prop_args{end+1} = 'Weight'; 49 prop_args{end+1} = varargin{n+1}; 50 elseif (strcmpi(varargin{n},'Frequency')==1); 51 FD_samples = varargin{n+1}; 52 elseif (strcmpi(varargin{n},'ModeFunction')==1); 53 ModeFunction = varargin{n+1}; 54 elseif (strcmpi(varargin{n},'NormDir')==1); 55 prop_args{end+1} = 'NormDir'; 56 prop_args{end+1} = varargin{n+1}; 57 elseif (strcmpi(varargin{n},'StartTime')==1); 58 prop_args{end+1} = 'StartTime'; 59 prop_args{end+1} = varargin{n+1}; 60 elseif (strcmpi(varargin{n},'StopTime')==1); 61 prop_args{end+1} = 'StopTime'; 62 prop_args{end+1} = varargin{n+1}; 63 else 64 warning('CSXCAD:AddProbe',['variable argument key: "' varargin{n+1} '" unknown']); 65 end 66end 67 68[CSX pos] = AddProperty(CSX, 'ProbeBox', name, prop_args{:}); 69 70if (numel(FD_samples)>0) 71 CSX.Properties.ProbeBox{pos}.FD_Samples=FD_samples; 72end 73 74if (numel(ModeFunction)>0) 75 CSX.Properties.ProbeBox{pos}.Attributes.ATTRIBUTE.ModeFunctionX = ModeFunction{1}; 76 CSX.Properties.ProbeBox{pos}.Attributes.ATTRIBUTE.ModeFunctionY = ModeFunction{2}; 77 CSX.Properties.ProbeBox{pos}.Attributes.ATTRIBUTE.ModeFunctionZ = ModeFunction{3}; 78end 79 80