LinearCrdTransf2d.h

Go to the documentation of this file.
00001 /* ****************************************************************** **
00002 **    OpenSees - Open System for Earthquake Engineering Simulation    **
00003 **          Pacific Earthquake Engineering Research Center            **
00004 **                                                                    **
00005 **                                                                    **
00006 ** (C) Copyright 1999, The Regents of the University of California    **
00007 ** All Rights Reserved.                                               **
00008 **                                                                    **
00009 ** Commercial use of this program without express permission of the   **
00010 ** University of California, Berkeley, is strictly prohibited.  See   **
00011 ** file 'COPYRIGHT'  in main directory for information on usage and   **
00012 ** redistribution,  and for a DISCLAIMER OF ALL WARRANTIES.           **
00013 **                                                                    **
00014 ** Developed by:                                                      **
00015 **   Frank McKenna (fmckenna@ce.berkeley.edu)                         **
00016 **   Gregory L. Fenves (fenves@ce.berkeley.edu)                       **
00017 **   Filip C. Filippou (filippou@ce.berkeley.edu)                     **
00018 **                                                                    **
00019 ** ****************************************************************** */
00020 
00021 // $Revision: 1.9 $
00022 // $Date: 2006/09/26 18:22:24 $
00023 // $Source: /usr/local/cvs/OpenSees/SRC/coordTransformation/LinearCrdTransf2d.h,v $
00024 
00025 // Written: Remo Magalhaes de Souza (rmsouza@ce.berkeley.edu)
00026 // Created: 04/2000
00027 // Revision: A
00028 //
00029 // Description: This file contains the class definition for
00030 // LinearCrdTransf2d.h. LinearCrdTransf2d provides the
00031 // abstraction of a linear transformation for a spatial frame
00032 // between the global and basic coordinate systems
00033 
00034 // What: "@(#) LinearCrdTransf2d.h, revA"
00035 
00036 #ifndef LinearCrdTransf2d_h
00037 #define LinearCrdTransf2d_h
00038 
00039 #include <CrdTransf2d.h>
00040 #include <Vector.h>
00041 #include <Matrix.h>
00042 
00043 
00044 class LinearCrdTransf2d: public CrdTransf2d
00045 {
00046 public:
00047     LinearCrdTransf2d(int tag);
00048     LinearCrdTransf2d(int tag,
00049         const Vector &rigJntOffsetI,
00050         const Vector &rigJntOffsetJ);
00051     
00052     LinearCrdTransf2d();
00053     ~LinearCrdTransf2d();
00054     
00055     int initialize(Node *node1Pointer, Node *node2Pointer);
00056     int update(void);
00057     double getInitialLength(void);
00058     double getDeformedLength(void);
00059     
00060     int commitState(void);
00061     int revertToLastCommit(void);        
00062     int revertToStart(void);
00063     
00064 // AddingSensitivity:BEGIN //////////////////////////////////
00065     const Vector &getBasicDisplSensitivity (int gradNumber);
00066     const Vector &getGlobalResistingForceShapeSensitivity(const Vector &pb,
00067                                                           const Vector &p0,
00068                                                           int gradNumber = 0);
00069     const Vector &getBasicTrialDispShapeSensitivity(void);
00070     bool isShapeSensitivity(void);
00071     double getdLdh(void);
00072     double getd1overLdh(void);
00073 // AddingSensitivity:END //////////////////////////////////
00074 
00075     const Vector &getBasicTrialDisp(void);
00076     const Vector &getBasicIncrDisp(void);
00077     const Vector &getBasicIncrDeltaDisp(void);
00078     const Vector &getBasicTrialVel(void);
00079     const Vector &getBasicTrialAccel(void);
00080     
00081 
00082 
00083     const Vector &getGlobalResistingForce(const Vector &basicForce, const Vector &p0);
00084     const Matrix &getGlobalStiffMatrix(const Matrix &basicStiff, const Vector &basicForce);
00085     const Matrix &getInitialGlobalStiffMatrix(const Matrix &basicStiff);
00086     
00087     CrdTransf2d *getCopy(void);
00088     
00089     int sendSelf(int cTag, Channel &theChannel);
00090     int recvSelf(int cTag, Channel &theChannel, FEM_ObjectBroker &theBroker);
00091     
00092     void Print(OPS_Stream &s, int flag = 0);
00093     
00094     // functions used in post-processing only    
00095     const Vector &getPointGlobalCoordFromLocal(const Vector &localCoords);
00096     const Vector &getPointGlobalDisplFromBasic(double xi, const Vector &basicDisps);
00097     
00098 private:
00099     int computeElemtLengthAndOrient(void);
00100     
00101     // internal data
00102     Node *nodeIPtr, *nodeJPtr;  // pointers to the element two endnodes
00103     
00104     double *nodeIOffset, *nodeJOffset;  // rigid joint offsets
00105     
00106     double cosTheta, sinTheta;
00107     
00108     double L;   // undeformed element length
00109 
00110     double *nodeIInitialDisp, *nodeJInitialDisp;
00111     bool initialDispChecked;
00112 };
00113 
00114 #endif
00115 

Generated on Mon Oct 23 15:04:59 2006 for OpenSees by doxygen 1.5.0