MP_Joint2D.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.4 $
00022 // $Date: 2004/09/01 04:01:27 $
00023 // $Source: /usr/local/cvs/OpenSees/SRC/element/joint/MP_Joint2D.h,v $
00024                                                                         
00025 #ifndef MP_Joint2D_h
00026 #define MP_Joint2D_h
00027 
00028 // Written: Arash Altoontash, Gregory Deierlein
00029 // Created: 08/01
00030 // Revision: Arash
00031 
00032 // Purpose: This file contains the class definition for MP_Joint2D.
00033 // It is a sub class for MP_Constraint specialized to be used for simple joint 
00034 // connection element. MP_Joint2D defines a nonlinear, time dependent multi 
00035 // point constraint.
00036 //
00037 
00038 #include <DomainComponent.h>
00039 #include <bool.h>
00040 #include <MP_Constraint.h>
00041 #include <Node.h>
00042 #include <Domain.h>
00043 
00044 class Matrix;
00045 class ID;
00046 
00047 
00048 class MP_Joint2D : public MP_Constraint
00049 {
00050   public:
00051     // constructors        
00052     MP_Joint2D();
00053 
00054     MP_Joint2D( Domain *theDomain, int tag, int nodeRetain, int nodeConstr,
00055                 int Maindof, int fixedend , int LrgDsp = 0 );   //LrgDsp=0 means large displacement is not enabled
00056 
00057     // destructor    
00058     ~MP_Joint2D();
00059 
00060     // method to get information about the constraint
00061         int getNodeRetained(void) const;
00062     int getNodeConstrained(void) const;    
00063     const ID &getConstrainedDOFs(void) const;        
00064     const ID &getRetainedDOFs(void) const;            
00065     int applyConstraint(double pseudoTime);
00066     bool isTimeVarying(void) const;
00067     const Matrix &getConstraint(void);    
00068         void setDomain(Domain *theDomain);
00069 
00070     // methods for output
00071     int sendSelf(int commitTag, Channel &theChannel);
00072     int recvSelf(int commitTag, Channel &theChannel, 
00073                          FEM_ObjectBroker &theBroker);
00074     
00075         void Print(OPS_Stream &s, int flag =0);
00076 
00077 
00078   protected:
00079     
00080   private:
00081     int nodeRetained;                   // to identify the retained node
00082     int nodeConstrained;                // to identify  the constrained node
00083         int MainDOF;                            // main degree of freedom for rotation
00084         int AuxDOF;                                     // Auxilary degree of freedom for shear
00085         int FixedEnd;                           // fixed rotational degree of freedom at the end 
00086                                 // released = 0 , fixed = 1
00087     
00088     ID *constrDOF;                              // ID of constrained DOF at constrained node
00089     ID *retainDOF;                              // ID of related DOF at retained node
00090     Node *RetainedNode;                 // to identify the retained node
00091     Node *ConstrainedNode;              // to identify  the constrained node
00092 
00093     int dbTag1, dbTag2, dbTag3;                 // need a dbTag for the two ID's
00094         int LargeDisplacement;          // flag for large displacements enabled
00095         double Length0;
00096         Matrix *constraint;                     // pointer to the constraint matrix
00097         Domain *thisDomain;                     // pointer to domain the MP is defined on
00098 };
00099 
00100 #endif
00101 

Generated on Mon Oct 23 15:05:08 2006 for OpenSees by doxygen 1.5.0