classdef farFieldBC
% farFieldBC - Creates a farFieldBC object to be used with electricHarmonic
% or magneticHarmonic analysis types. 
% 
% Thickness - Width of the absorbing region. Specify as a positive number. 
% Exponent and Scaling - Control the rate of attenuation in the absorbing
%     region. The default value for Exponent is 4. The default value for 
%     Scaling is 5. The rate of attenuation in the aborbing region is of 
%     the form Scaling*(x - offset)^Exponent.

%  Copyright 2022 The MathWorks, Inc.
    properties
        Thickness (1,1) double {mustBePositive,mustBeFinite,mustBeNonsparse} = 1
        Exponent  (1,1) double {mustBePositive,mustBeFinite,mustBeNonsparse} = 4
        Scaling   (1,1) double {mustBePositive,mustBeFinite,mustBeNonsparse} = 5
    end

    methods
        function obj = farFieldBC(opts)
            arguments
                opts.?farFieldBC
            end
            for k=fields(opts)'
                obj.(k{:}) = opts.(k{:});
            end
        end
    end

end