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

suDecompHardUTWalk.h

00001 // suDecompHardUTWalk.h
00002 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00003 // AUTHOR: Frank C. Anderson
00004 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00005 #ifndef __suDecompHardUTWalk_h__
00006 #define __suDecompHardUTWalk_h__
00007 
00008 
00009 //=============================================================================
00010 // INCLUDES
00011 //=============================================================================
00012 #include <rdTools.h>
00013 #include <rdUTWalking8.h>
00014 #include <rdBodyConstraint.h>
00015 #include "suAnalyses.h"
00016 #include "suDecomp.h"
00017 
00018 
00019 //=============================================================================
00020 //=============================================================================
00025 class SUANALYSES_API suDecompHardUTWalk : public suDecomp
00026 {
00027 //=============================================================================
00028 // DATA
00029 //=============================================================================
00030 public:
00031 
00032 protected:
00034    int _c;
00036    int _nxs;
00038    int *_xsSprMap;
00041    int *_xsXYZMap;
00043    rdBodyConstraint _bc[4];
00045    double _wXS;
00047    double _wAcc;
00048 private:
00051    double _point[3];
00053    double *_yCopy;
00055    double *_yTmp;
00057    double *_x;
00058 
00059 //=============================================================================
00060 // METHODS
00061 //=============================================================================
00062 public:
00063    suDecompHardUTWalk(rdUTWalking8 *aModel);
00064    virtual ~suDecompHardUTWalk();
00065 private:
00066    void setNull();
00067 
00068    //--------------------------------------------------------------------------
00069    // GET AND SET
00070    //--------------------------------------------------------------------------
00071    double* getContactPoint(int aIndex);
00072 
00073    //--------------------------------------------------------------------------
00074    // DECOMPOSITION
00075    //--------------------------------------------------------------------------
00076 public:
00077    virtual void
00078       compute(double *aXPrev,double *aYPrev,int aStep,
00079       double aDT,double aT,double *aX,double *aY);
00080    int suComputePerformance(double *x,double *p);
00081    int suComputePerformanceGradient(double *x,double *dpdx);
00082    int suComputeConstraint(double *x,int ic,double *c);
00083    int suComputeContactPointAccelerations(double *x,int c,double cpa[][3]);
00084 protected:
00085    int getNumberConstraints();
00086    void clearBodyConstraints();
00087    void clearBodyConstraintValues();
00088    void setBodyConstraintValues(int aN,int aID[],double aAcc[][3]);
00089    void decompose(int step,double dt,double t,double *xt,double *y,void *cd);
00090    void determineControls(double sfrc[][3]);
00091    void determineConstraints();
00092    void setSpringForces(double *aXS,double aFS[][3]);
00093    void applyComponentForce(int aC);
00094 
00095 //=============================================================================
00096 }; // END of class suDecompHardUTWalk
00097 //=============================================================================
00098 //=============================================================================
00099 
00100 
00101 #endif // #ifndef __suDecompHardUTWalk_h__

Generated on Wed Aug 20 02:17:07 2003 for Simulation Software by doxygen1.3