Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   Related Pages  

suDecompTaylor Class Reference

A class for computing induced reaction forces using the "perturbed integration" methodology. More...

#include <suDecompTaylor.h>

Inheritance diagram for suDecompTaylor:

suDecomp rdAnalysis List of all members.

Public Member Functions

 suDecompTaylor (rdModel *aModel)
 Construct an object for performing a reaction force decomposition analysis.

virtual ~suDecompTaylor ()
 Destructor.

virtual void compute (double *aXPrev, double *aYPrev, int aStep, double aDT, double aT, double *aX, double *aY)
 Compute the reaction force decomposition using Taylor expansion.

virtual void applyActionForce (int aC, double aT, double *aX, double *aY)
 Apply appropriate action force.

virtual void initializeForceElements ()
 Initialize the force values for the component elements.

virtual void initializeVelocityElements ()
 Initialize the velocities values for the component elements.

virtual void computeFrictionFactors (double aT, double *aX, double *aY)
 Compute the factors for accounting for reductions in the contact force made to enforce frictional constraints.

virtual void computeHigherOrderDerivatives (int c, double t, double *dudt, double *ddudt, double *dddudt)
 Compute higher order derivatives of the accelerations of the generalized coordinates.

virtual void computeContactVelocities (double *rVels)
 Compute the velocities of all contact points expressed in the reference frame of BodyA.

virtual void computeContactForces (double *rFrcs)
 Compute the force applied to BodyB expressed in the frame of BodyA for all contact points.

virtual int begin (int aStep, double aDT, double aT, double *aX, double *aY, void *aClientData=NULL)
 At the beginning of an integration, initialize the decomposition.


Protected Attributes

bool * _contactJustEstablished
 Flag to indicate that contact has just been established.

double * _v
 Induced contact point velocities.

double * _a
 Induced contact point accelerations.

double * _fp
 Component forces due to position changes.

double * _fv
 Component forces due to velocity changes.

double * _at
 Array for holding history of acceleration times.

double * _ah
 Array for holding acceleration histories.

double * _yTmp
 Internal work array for holding the states.

double * _xTmp
 Internal work array for holding the controls.

double * _qPrev
 Internal work array for the generalized coordinates of the previous time step.

double * _uPrev
 Internal work array for the generalized speeds of the previous time step.

double * _q
 Internal work array for the generalized coordinates.

double * _u
 Internal work array for the generalized speeds.

double * _dqdt
 Internal work array for the time derivative of the generalized coordinates.

double * _dudt
 Internal work array for the time derivative of the generalized speeds.

double * _ddudt
 Internal work array for the 2nd time derivative of the generalized speeds.

double * _dddudt
 Internal work array for the 3rd time derivative of the generalized speeds.

double * _du
 Internal work array for the change in generalized speeds.

double * _pa
 Current contact points.

double * _paPrev
 Contact points prior to fricitonal sliding.

double * _svel
 Current contact velocities.

double * _sfrc
 Current contact forces.

double * _pfrc
 Current contact forces due to elastic terms.

double * _dfpFric
 Frictional change in conatct force due to sliding of spring setpoints.

double * _dfvFric
 Frictional change in conatct force against damping forces.

double * _pAlpha
 Array used to adjust for changes in elastic contact forces due to sliding of spring setpoints.

double * _vAlpha
 Array used to adjust for changes in viscous contact forces due to enforcement of friction constraints.

double * _J
 Translational Jacobian.

double * _JPrev
 Previous translational Jacobian.

double * _JDiff
 Difference between previous and curent Jacobians.


Private Member Functions

void setNull ()
 Set member variables to approprate NULL values.

void constructManager ()
void constructContactAnalysis ()
void constructDescription ()
 Construct a description.

void updateStorageDescriptions ()
 Update storage descriptions.

void allocate ()
 Allocate memory.


Detailed Description

A class for computing induced reaction forces using the "perturbed integration" methodology.

Author:
Frank C. Anderson
Version:
1.0


Constructor & Destructor Documentation

suDecompTaylor::suDecompTaylor rdModel aModel  ) 
 

Construct an object for performing a reaction force decomposition analysis.

The decomposition is performed using the perturbed integration method.

It is critical that a twin or copy of the model used to conduct the nominal simulation be used to construct this decomposition analysis. If the nominal simulation model is used, this analysis may change the trajectory of the simulation because model states and contact setpoints are altered during the analysis.

Parameters:
aManager Simulation manager of the nominal simulation.
aContact Contact analysis of the nominal simulation.
aModelTwin Twin of the model used to conduct the nominal simulation.
aDT Perturbed integration time window in real time.
aDF Force perturbation.
See also:
setIntegrationWindow()

setPerturbation()


Member Function Documentation

void suDecompTaylor::computeContactForces double *  rFrcs  )  [virtual]
 

Compute the force applied to BodyB expressed in the frame of BodyA for all contact points.

Prior to calling this method, the model states must be set and rdModel::computeContact() should be called.

Parameters:
rForces Forces of contact points arranged as follows: rForces[point index][3], so the dimension of rForces should be np*3.

void suDecompTaylor::computeContactVelocities double *  rVels  )  [virtual]
 

Compute the velocities of all contact points expressed in the reference frame of BodyA.

Prior to calling this method, the model states must be set and rdModel::computeContact() should be called.

Parameters:
rVels Velocities of contact points arranged as follows: rVels[point index][3], so the dimension of rVels should be np*3.

void suDecompTaylor::computeFrictionFactors double  aT,
double *  aX,
double *  aY
[virtual]
 

Compute the factors for accounting for reductions in the contact force made to enforce frictional constraints.

Parameters:
aT Time.
aX Controls.
aY States.
Todo:
Account for changes in the contact point on BodyB.


The documentation for this class was generated from the following files:
Generated on Wed Aug 20 02:17:14 2003 for Simulation Software by doxygen1.3