20#ifndef _FRICTION_FORCE_LAW_H_
21#define _FRICTION_FORCE_LAW_H_
23#include "mbsim/functions/function.h"
27 class FrictionImpactLaw;
49 virtual fmatvec::Vec project(
const fmatvec::Vec& la,
const fmatvec::Vec& gdn,
double laN,
double r) { throwError(
"(FrictionForceLaw::project): Not implemented."); }
50 virtual fmatvec::Mat diff(
const fmatvec::Vec& la,
const fmatvec::Vec& gdn,
double laN,
double r) { throwError(
"(FrictionForceLaw::diff): Not implemented."); }
51 virtual fmatvec::Vec solve(
const fmatvec::SqrMat& G,
const fmatvec::Vec& gdn,
double laN) { throwError(
"(FrictionForceLaw::solve): Not implemented."); }
52 virtual bool isFulfilled(
const fmatvec::Vec& la,
const fmatvec::Vec& gdn,
double laN,
double tolla,
double tolgd) {
return true; }
53 virtual fmatvec::Vec operator()(
const fmatvec::Vec &gd,
double laN) { throwError(
"(FrictionForceLaw::operator()): Not implemented."); }
54 virtual fmatvec::Vec dlaTdlaN(
const fmatvec::Vec& gd) { throwError(
"(FrictionForceLaw::dlaTdlaN): Not implemented."); }
55 virtual int getFrictionDirections() = 0;
56 virtual bool isSticking(
const fmatvec::Vec& s,
double sTol) = 0;
57 virtual bool isSetValued()
const = 0;
58 virtual FrictionImpactLaw* createFrictionImpactLaw()
const {
return nullptr; }
basic class of MBSim mainly for plotting
Definition: element.h:56
PlotFeatureMap plotFeature
plot feature
Definition: element.h:309
basic friction force law on acceleration level for constraint description
Definition: friction_force_law.h:34
FrictionForceLaw()
constructor
Definition: friction_force_law.h:39
~FrictionForceLaw() override=default
destructor
namespace MBSim
Definition: bilateral_constraint.cc:30