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.1.1.1 $ 00022 // $Date: 2000/09/15 08:23:17 $ 00023 // $Source: /usr/local/cvs/OpenSees/SRC/coordTransformation/CrdTransf.h,v $ 00024 00025 00026 // File: ~/crdTransf/CrdTransf.h 00027 // 00028 // Written: Remo Magalhaes de Souza (rmsouza@ce.berkeley.edu) 00029 // Created: 04/2000 00030 // Revision: A 00031 // 00032 // Description: This file contains the class definition for 00033 // CrdTransf.h. CrdTransf provides the abstraction of a frame 00034 // coordinate transformation. It is an abstract base class and 00035 // thus no objects of it's type can be instatiated. It has pure 00036 // virtual functions which must be implemented in it's derived classes. 00037 // 00038 // What: "@(#) CrdTransf.h, revA" 00039 00040 #ifndef CrdTransf_h 00041 #define CrdTransf_h 00042 00043 #include <MovableObject.h> 00044 #include <TaggedObject.h> 00045 00046 #include <Vector.h> 00047 #include <Matrix.h> 00048 #include <Node.h> 00049 00050 00052 class CrdTransf: public TaggedObject, public MovableObject 00053 { 00054 public: 00056 CrdTransf(int tag, int classTag); 00058 CrdTransf(); 00060 virtual ~CrdTransf(); 00061 00063 virtual int initialize(Node *node1Pointer, Node *node2Pointer) = 0; 00065 virtual int update(void) = 0; 00067 virtual double getInitialLength(void) = 0; 00069 virtual double getDeformedLength(void) = 0; 00070 00072 virtual int commitState(void) = 0; 00074 virtual int revertToLastCommit(void) = 0; 00076 virtual int revertToStart(void) = 0; 00077 00079 virtual const Vector &getBasicTrialDisp (void) = 0; 00081 virtual const Vector &getBasicIncrDisp (void) = 0; 00083 virtual const Vector &getBasicIncrDeltaDisp (void) = 0; 00084 00086 virtual const Vector &getGlobalResistingForce (const Vector &basicForce, const Vector &uniformLoad) = 0; 00088 virtual const Matrix &getGlobalStiffMatrix (const Matrix &basicStiff, const Vector &basicForce) = 0; 00089 00091 virtual const Vector &getPointGlobalCoordFromLocal (const Vector &localCoords) = 0; 00093 virtual const Vector &getPointGlobalDisplFromBasic (double xi, const Vector &basicDisps) = 0; 00094 00095 protected: 00096 00097 private: 00098 }; 00099 00100 #endif 00101 ÿ