Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F91014392
onbody.h
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Wed, Nov 6, 22:51
Size
3 KB
Mime Type
text/x-c++
Expires
Fri, Nov 8, 22:51 (2 d)
Engine
blob
Format
Raw Data
Handle
22179762
Attached To
rLAMMPS lammps
onbody.h
View Options
/*
*_________________________________________________________________________*
* POEMS: PARALLELIZABLE OPEN SOURCE EFFICIENT MULTIBODY SOFTWARE *
* DESCRIPTION: SEE READ-ME *
* FILE NAME: onbody.h *
* AUTHORS: See Author List *
* GRANTS: See Grants List *
* COPYRIGHT: (C) 2005 by Authors as listed in Author's List *
* LICENSE: Please see License Agreement *
* DOWNLOAD: Free at www.rpi.edu/~anderk5 *
* ADMINISTRATOR: Prof. Kurt Anderson *
* Computational Dynamics Lab *
* Rensselaer Polytechnic Institute *
* 110 8th St. Troy NY 12180 *
* CONTACT: anderk5@rpi.edu *
*_________________________________________________________________________*/
#ifndef ONBODY_H
#define ONBODY_H
#include "poemslist.h"
#include "matrix.h"
#include "vect6.h"
#include "mat6x6.h"
// emumerated type
enum Direction {
BACKWARD = 0,
FORWARD= 1
};
class Body;
class InertialFrame;
class Joint;
class OnSolver;
class OnBody {
Body* system_body;
Joint* system_joint;
OnBody* parent;
List<OnBody> children;
Direction joint_dir;
void (Joint::*kinfun)(); // kinematics function
void (Joint::*updatesP)(Matrix&); // sP update function
Vect3* gamma; // pointer to gamma vector
Mat3x3* pk_C_k; // pointer to transformation
Mat6x6 sI; // spatial inertias
Mat6x6 sIhat; // recursive spatial inertias
Mat6x6 sSC; // spatial shift
Mat6x6 sT; // spatial triangularization
Vect6 sF; // spatial forces
Vect6 sFhat; // recursive spatial forces
Vect6 sAhat; // recursive spatial acceleration
Matrix sP; // spatial partial velocities
Matrix sM; // triangularized mass matrix diagonal elements
Matrix sMinv; // inverse of sM
Matrix sPsMinv;
Matrix sIhatsP;
// states and state derivatives
ColMatrix* q;
ColMatrix* u;
ColMatrix* qdot;
ColMatrix* udot;
ColMatrix* qdotdot;
ColMatrix* r;
ColMatrix* acc;
ColMatrix* ang;
// friend classes
friend class OnSolver;
public:
OnBody();
~OnBody();
int RecursiveSetup(InertialFrame* basebody);
int RecursiveSetup(int ID, OnBody* parentbody, Joint* sys_joint);
void RecursiveKinematics();
void RecursiveTriangularization();
void RecursiveForwardSubstitution();
Mat3x3 GetN_C_K();
Vect3 LocalCart();
int GetBodyID();
void CalculateAcceleration();
void Setup();
void SetupInertialFrame();
void LocalKinematics();
void LocalTriangularization(Vect3& Torque, Vect3& Force);
void LocalForwardSubstitution();
};
#endif
Event Timeline
Log In to Comment