20#ifndef _GENERALIZED_FORCE_LAW_H_
21#define _GENERALIZED_FORCE_LAW_H_
23#include "mbsim/functions/function.h"
27 class GeneralizedImpactLaw;
55 virtual bool isClosed(
double g,
double gTol) {
return true; }
65 virtual double project(
double la,
double gdn,
double r,
double laMin=0) { throwError(
"(GeneralizedForceLaw::project): Not implemented."); }
66 virtual fmatvec::Vec diff(
double la,
double gdn,
double r,
double laMin=0) { throwError(
"(GeneralizedForceLaw::diff): Not implemented."); }
67 virtual double solve(
double G,
double gdn) { throwError(
"(GeneralizedForceLaw::solve): Not implemented."); }
68 virtual double operator()(
double g,
double gd) { throwError(
"(GeneralizedForceLaw::operator()): Not implemented."); }
77 virtual bool isFulfilled(
double la,
double gdn,
double tolla,
double tolgd,
double laMin=0) {
return true; }
basic class of MBSim mainly for plotting
Definition: element.h:56
PlotFeatureMap plotFeature
plot feature
Definition: element.h:309
basic force law on acceleration level for constraint description
Definition: generalized_force_law.h:34
virtual bool isFulfilled(double la, double gdn, double tolla, double tolgd, double laMin=0)
Definition: generalized_force_law.h:77
GeneralizedForceLaw()
constructor
Definition: generalized_force_law.h:39
virtual double project(double la, double gdn, double r, double laMin=0)
prox function evaluation
Definition: generalized_force_law.h:65
virtual bool isClosed(double g, double gTol)
decides, if force law is active
Definition: generalized_force_law.h:55
~GeneralizedForceLaw() override=default
destructor
virtual bool isSetValued() const =0
basic force law on velocity level for constraint description
Definition: generalized_impact_law.h:32
namespace MBSim
Definition: bilateral_constraint.cc:30