20#ifndef STATE_DEPENDENT_FUNCTION_H_
21#define STATE_DEPENDENT_FUNCTION_H_
23#include "mbsim/functions/function.h"
29 using B = fmatvec::Function<Ret(fmatvec::VecV,
double)>;
39 int getArg1Size()
const override {
return f->getArgSize();}
40 int getArg2Size()
const override {
return 0; }
41 std::pair<int, int> getRetSize()
const override {
return f->getRetSize(); }
42 Ret operator()(
const fmatvec::VecV &arg1,
const double &arg2)
override {
return (*f)(arg1); }
43 typename B::DRetDArg1 parDer1(
const fmatvec::VecV &arg1,
const double &arg2)
override {
return f->parDer(arg1); }
44 typename B::DRetDArg2 parDer2(
const fmatvec::VecV &arg1,
const double &arg2)
override {
return typename B::DRetDArg2(n); }
45 typename B::DRetDArg2 parDer2DirDer1(
const fmatvec::VecV &arg1Dir,
const fmatvec::VecV &arg1,
const double &arg2)
override {
return typename B::DRetDArg2(n); }
46 typename B::DRetDArg2 parDer2DirDer2(
const double &arg2Dir,
const fmatvec::VecV &arg1,
const double &arg2)
override {
return typename B::DRetDArg2(n); }
47 typename B::DRetDArg1 parDer1DirDer1(
const fmatvec::VecV &arg1Dir,
const fmatvec::VecV &arg1,
const double &arg2)
override {
return f->parDerDirDer(arg1Dir,arg1); }
48 typename B::DRetDArg1 parDer1DirDer2(
const double &arg2Dir,
const fmatvec::VecV &arg1,
const double &arg2)
override {
return typename B::DRetDArg1(n,getArg1Size()); }
49 bool constParDer1()
const override {
return f->constParDer(); }
50 bool constParDer2()
const override {
return true; }
51 Function<Ret(fmatvec::VecV)>* getFunction()
const {
return f; }
54 f->
init(stage, config);
56 n = f->getRetSize().first;
solver interface for modelling and simulation of dynamic systems
Definition: dynamic_system_solver.h:61
virtual void init(InitStage stage, const InitConfigSet &config=InitConfigSet())
plots time series header
Definition: element.cc:85
virtual void setDynamicSystemSolver(DynamicSystemSolver *sys)
sets the used dynamics system solver to the element
Definition: element.h:91
InitStage
The stages of the initialization.
Definition: element.h:62
@ preInit
Definition: element.h:64
Definition: function.h:53
Definition: state_dependent_function.h:28
void setDynamicSystemSolver(DynamicSystemSolver *sys) override
sets the used dynamics system solver to the element
Definition: state_dependent_function.h:58
void init(Element::InitStage stage, const InitConfigSet &config) override
plots time series header
Definition: state_dependent_function.h:52
namespace MBSim
Definition: bilateral_constraint.cc:30