API  4.4
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::State * getCurrentState () 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
 

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
override

◆ constraintJacobian()

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

◆ 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
override

◆ objectiveFunc()

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

◆ 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: