ContactForceT_DashpotSlider class
Contents
Description
This is a sub-class of the ContactForceT class for the implementation of the Dashpot-Slider tangent contact force model.
This model assumes that the tangent contact force has a viscous component
, provided by a linear dashpot, and a friction component
, provided by a slider, which limits the total force according to Coulomb law.



The tangent damping coefficient
and the friction coefficient
must be provided.
Notation:
: Tangent direction between elements
: Time rate of change of tangent overlap
: Normal contact force vector
References:
classdef ContactForceT_DashpotSlider < ContactForceT
Public properties
properties (SetAccess = public, GetAccess = public)
% Contact parameters
damp double = double.empty; % damping coefficient
fric double = double.empty; % friction coefficient
end
Constructor method
methods
function this = ContactForceT_DashpotSlider()
this = this@ContactForceT(ContactForceT.DASHPOT_SLIDER);
this = this.setDefaultProps();
end
end
Public methods: implementation of super-class declarations
methods
%------------------------------------------------------------------
function this = setDefaultProps(this)
end
%------------------------------------------------------------------
function this = setCteParams(this,~)
end
%------------------------------------------------------------------
function this = evalForce(this,int)
% Force modulus (viscous and friction contributions)
fv = this.damp * int.kinemat.vel_t;
if (~isempty(int.cforcen))
ff = this.fric * norm(int.cforcen.total_force);
else
ff = 0;
end
% Limit elastic force by Coulomb law
f = min(abs(fv),abs(ff));
% Total tangential force vector (against deformation and motion)
this.total_force = -f * int.kinemat.dir_t;
end
end
end