API  4.0
For C++ developers
OpenSim::StaticOptimizationTarget Class Reference

This class provides an interface specification for static optimization Objective Function. More...

+ Inheritance diagram for OpenSim::StaticOptimizationTarget:

Public Member Functions

 StaticOptimizationTarget (const SimTK::State &s, Model *aModel, int aNX, int aNC, const bool useMusclePhysiology=true)
 
void setModel (Model &aModel)
 
void setStatesStore (const Storage *aStatesStore)
 
void setStatesSplineSet (GCVSplineSet aStatesSplineSet)
 
void setNumParams (const int aNP)
 
void setNumConstraints (const int aNC)
 
void setDX (double aVal)
 
void setDX (int aIndex, double aVal)
 
double getDX (int aIndex)
 
double * getDXArray ()
 
void getActuation (SimTK::State &s, const SimTK::Vector &parameters, SimTK::Vector &forces)
 
void setActivationExponent (double aActivationExponent)
 
double getActivationExponent () const
 
void setCurrentState (const SimTK::State *state)
 
const SimTK::StategetCurrentState () const
 
void validatePerturbationSize (double &aSize)
 
virtual void printPerformance (const SimTK::State &s, double *x)
 
void computeActuatorAreas (const SimTK::State &s)
 
bool prepareToOptimize (SimTK::State &s, double *x)
 
int objectiveFunc (const SimTK::Vector &x, bool new_coefficients, SimTK::Real &rP) const override
 
int gradientFunc (const SimTK::Vector &x, bool new_coefficients, SimTK::Vector &gradient) const override
 
int constraintFunc (const SimTK::Vector &x, bool new_coefficients, SimTK::Vector &constraints) const override
 
int constraintJacobian (const SimTK::Vector &x, bool new_coefficients, SimTK::Matrix &jac) const override
 
- Public Member Functions inherited from SimTK::OptimizerSystem
 OptimizerSystem ()
 
 OptimizerSystem (int nParameters)
 
virtual ~OptimizerSystem ()
 
virtual int hessian (const Vector &parameters, bool new_parameters, Vector &gradient) const
 
void setNumParameters (const int nParameters)
 
void setNumEqualityConstraints (const int n)
 
void setNumInequalityConstraints (const int n)
 
void setNumLinearEqualityConstraints (const int n)
 
void setNumLinearInequalityConstraints (const int n)
 
void setParameterLimits (const Vector &lower, const Vector &upper)
 
int getNumParameters () const
 
int getNumConstraints () const
 
int getNumEqualityConstraints () const
 
int getNumInequalityConstraints () const
 
int getNumLinearEqualityConstraints () const
 
int getNumNonlinearEqualityConstraints () const
 
int getNumLinearInequalityConstraints () const
 
int getNumNonlinearInequalityConstraints () const
 
bool getHasLimits () const
 
void getParameterLimits (Real **lower, Real **upper) const
 

Static Public Member Functions

static int CentralDifferencesConstraint (const StaticOptimizationTarget *aTarget, double *dx, const SimTK::Vector &x, SimTK::Matrix &jacobian)
 
static int CentralDifferences (const StaticOptimizationTarget *aTarget, double *dx, const SimTK::Vector &x, SimTK::Vector &dpdx)
 

Static Public Attributes

static const double SMALLDX
 Smallest allowable perturbation size for computing derivatives. More...
 

Protected Attributes

double _activationExponent
 
bool _useMusclePhysiology
 
Array< double > _dx
 Perturbation size for computing numerical derivatives. More...
 
Array< int > _accelerationIndices
 

Detailed Description

This class provides an interface specification for static optimization Objective Function.

Author
Jeff Reinbolt

Constructor & Destructor Documentation

◆ StaticOptimizationTarget()

OpenSim::StaticOptimizationTarget::StaticOptimizationTarget ( const SimTK::State s,
Model aModel,
int  aNX,
int  aNC,
const bool  useMusclePhysiology = true 
)

Member Function Documentation

◆ CentralDifferences()

static int OpenSim::StaticOptimizationTarget::CentralDifferences ( const StaticOptimizationTarget aTarget,
double *  dx,
const SimTK::Vector x,
SimTK::Vector dpdx 
)
static

◆ CentralDifferencesConstraint()

static int OpenSim::StaticOptimizationTarget::CentralDifferencesConstraint ( const StaticOptimizationTarget aTarget,
double *  dx,
const SimTK::Vector x,
SimTK::Matrix jacobian 
)
static

◆ computeActuatorAreas()

void OpenSim::StaticOptimizationTarget::computeActuatorAreas ( const SimTK::State s)

◆ constraintFunc()

int OpenSim::StaticOptimizationTarget::constraintFunc ( const SimTK::Vector x,
bool  new_coefficients,
SimTK::Vector constraints 
) const
overridevirtual

Reimplemented from SimTK::OptimizerSystem.

◆ constraintJacobian()

int OpenSim::StaticOptimizationTarget::constraintJacobian ( const SimTK::Vector x,
bool  new_coefficients,
SimTK::Matrix jac 
) const
overridevirtual

Reimplemented from SimTK::OptimizerSystem.

◆ getActivationExponent()

double OpenSim::StaticOptimizationTarget::getActivationExponent ( ) const
inline

◆ getActuation()

void OpenSim::StaticOptimizationTarget::getActuation ( SimTK::State s,
const SimTK::Vector parameters,
SimTK::Vector forces 
)

◆ getCurrentState()

const SimTK::State* OpenSim::StaticOptimizationTarget::getCurrentState ( ) const
inline

◆ getDX()

double OpenSim::StaticOptimizationTarget::getDX ( int  aIndex)

◆ getDXArray()

double* OpenSim::StaticOptimizationTarget::getDXArray ( )

◆ gradientFunc()

int OpenSim::StaticOptimizationTarget::gradientFunc ( const SimTK::Vector x,
bool  new_coefficients,
SimTK::Vector gradient 
) const
overridevirtual

Reimplemented from SimTK::OptimizerSystem.

◆ objectiveFunc()

int OpenSim::StaticOptimizationTarget::objectiveFunc ( const SimTK::Vector x,
bool  new_coefficients,
SimTK::Real rP 
) const
overridevirtual

Reimplemented from SimTK::OptimizerSystem.

◆ prepareToOptimize()

bool OpenSim::StaticOptimizationTarget::prepareToOptimize ( SimTK::State s,
double *  x 
)

◆ printPerformance()

virtual void OpenSim::StaticOptimizationTarget::printPerformance ( const SimTK::State s,
double *  x 
)
virtual

◆ setActivationExponent()

void OpenSim::StaticOptimizationTarget::setActivationExponent ( double  aActivationExponent)
inline

◆ setCurrentState()

void OpenSim::StaticOptimizationTarget::setCurrentState ( const SimTK::State state)
inline

◆ setDX() [1/2]

void OpenSim::StaticOptimizationTarget::setDX ( double  aVal)

◆ setDX() [2/2]

void OpenSim::StaticOptimizationTarget::setDX ( int  aIndex,
double  aVal 
)

◆ setModel()

void OpenSim::StaticOptimizationTarget::setModel ( Model aModel)

◆ setNumConstraints()

void OpenSim::StaticOptimizationTarget::setNumConstraints ( const int  aNC)

◆ setNumParams()

void OpenSim::StaticOptimizationTarget::setNumParams ( const int  aNP)

◆ setStatesSplineSet()

void OpenSim::StaticOptimizationTarget::setStatesSplineSet ( GCVSplineSet  aStatesSplineSet)

◆ setStatesStore()

void OpenSim::StaticOptimizationTarget::setStatesStore ( const Storage aStatesStore)

◆ validatePerturbationSize()

void OpenSim::StaticOptimizationTarget::validatePerturbationSize ( double &  aSize)

Member Data Documentation

◆ _accelerationIndices

Array<int> OpenSim::StaticOptimizationTarget::_accelerationIndices
protected

◆ _activationExponent

double OpenSim::StaticOptimizationTarget::_activationExponent
protected

◆ _dx

Array<double> OpenSim::StaticOptimizationTarget::_dx
protected

Perturbation size for computing numerical derivatives.

◆ _useMusclePhysiology

bool OpenSim::StaticOptimizationTarget::_useMusclePhysiology
protected

◆ SMALLDX

const double OpenSim::StaticOptimizationTarget::SMALLDX
static

Smallest allowable perturbation size for computing derivatives.


The documentation for this class was generated from the following file: