function [granite] = initializeGranite(args) arguments args.type char {mustBeMember(args.type,{'rigid', 'flexible', 'none'})} = 'flexible' args.density (1,1) double {mustBeNumeric, mustBeNonnegative} = 2800 % Density [kg/m3] args.K (6,1) double {mustBeNumeric, mustBeNonnegative} = [5e9; 5e9; 5e9; 2.5e7; 2.5e7; 1e7] % [N/m] args.C (6,1) double {mustBeNumeric, mustBeNonnegative} = [4.0e5; 1.1e5; 9.0e5; 2e4; 2e4; 1e4] % [N/(m/s)] args.x0 (1,1) double {mustBeNumeric} = 0 % Rest position of the Joint in the X direction [m] args.y0 (1,1) double {mustBeNumeric} = 0 % Rest position of the Joint in the Y direction [m] args.z0 (1,1) double {mustBeNumeric} = 0 % Rest position of the Joint in the Z direction [m] args.sample_pos (1,1) double {mustBeNumeric} = 0.775 % Height of the measurment point [m] end granite = struct(); switch args.type case 'none' granite.type = 0; case 'rigid' granite.type = 1; case 'flexible' granite.type = 2; end granite.density = args.density; % [kg/m3] granite.STEP = 'granite.STEP'; % Z-offset for the initial position of the sample with respect to the granite top surface. granite.sample_pos = args.sample_pos; % [m] granite.K = args.K; % [N/m] granite.C = args.C; % [N/(m/s)] if exist('./mat', 'dir') if exist('./mat/nass_model_stages.mat', 'file') save('mat/nass_model_stages.mat', 'granite', '-append'); else save('mat/nass_model_stages.mat', 'granite'); end elseif exist('./matlab', 'dir') if exist('./matlab/mat/nass_model_stages.mat', 'file') save('matlab/mat/nass_model_stages.mat', 'granite', '-append'); else save('matlab/mat/nass_model_stages.mat', 'granite'); end end end