ContactForceN (Normal Contact Force) class
Contents
Description
This is a value heterogeneous super-class for the definition of models for the normal contact force between elements.
This super-class defines abstract methods that must be implemented in the derived sub-classes:
classdef ContactForceN < matlab.mixin.Heterogeneous
Constant values
properties (Constant = true, Access = public)
% Types of model
VISCOELASTIC_LINEAR = uint8(1);
VISCOELASTIC_NONLINEAR = uint8(2);
ELASTOPLASTIC_LINEAR = uint8(3);
% Types of linear stiffness formulation
NONE_STIFF = uint8(0);
ENERGY = uint8(1);
OVERLAP = uint8(2);
TIME = uint8(3);
% Types of nonlinear damping formulation
NONE_DAMP = uint8(0);
CRITICAL_RATIO = uint8(1);
TTI = uint8(2);
KK = uint8(3);
LH = uint8(4);
% Types of elastoplastic unloading stiffness formulation
CONSTANT = uint8(1);
VARIABLE = uint8(2);
end
Public properties
properties (SetAccess = public, GetAccess = public)
% Identification
type uint8 = uint8.empty; % flag for type of model
% Contact parameters
restitution double = double.empty; % normal coefficient of restitution
stiff double = double.empty; % stiffness coefficient
damp double = double.empty; % damping coefficient
% Force results
total_force double = double.empty; % resulting force vector
end
Constructor method
methods
function this = ContactForceN(type)
if (nargin > 0)
this.type = type;
end
end
end
Default sub-class definition
methods (Static, Access = protected)
function defaultObject = getDefaultScalarElement
defaultObject = ContactForceN_ViscoElasticLinear;
end
end
Abstract methods: implemented in derived sub-classes
methods (Abstract)
%------------------------------------------------------------------
this = setDefaultProps(this);
%------------------------------------------------------------------
this = setCteParams(this,interact);
%------------------------------------------------------------------
this = evalForce(this,interact);
end
end