MP_Joint3D.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.2 $
00022 // $Date: 2004/09/01 04:01:27 $
00023 // $Source: /usr/local/cvs/OpenSees/SRC/element/joint/MP_Joint3D.h,v $
00024                                                                         
00025 #ifndef MP_Joint3D_h
00026 #define MP_Joint3D_h
00027 
00028 // Written: Arash Altoontash, Gregory Deierlein
00029 // Created: 04/03
00030 // Revision: Arash
00031 
00032 // Purpose: This file contains the class definition for MP_Joint3D.
00033 // It is a sub class for MP_Constraint specialized to be used for simple joint 
00034 // connection element. MP_Joint3D 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_Joint3D : public MP_Constraint
00049 {
00050   public:
00051     // constructors        
00052     MP_Joint3D();
00053 
00054     MP_Joint3D( Domain *theDomain, int tag, int nodeRetain, int nodeConstr,
00055                 int nodeRot, int Rotdof, int nodeDisp, int Dispdof, int LrgDsp = 0 );
00056 
00057     // destructor    
00058     ~MP_Joint3D();
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;
00082     int nodeConstrained;
00083     int nodeRotation;          // tag for the node to define the rotation vector
00084     // for shear rotation
00085     int RotDOF;                // tag for the shear mode that results in rotation
00086     int nodeDisplacement;      // tag for the node to define the rotation vector
00087     // for shear displacement
00088     int DispDOF;               // tag for the shear mode that results in displacement
00089     int LargeDisplacement;     // flag for large displacements
00090     // 0 for constant constraint matrix(small deformations)
00091     // 1 for time varying constraint matrix(large deformations)
00092     // 2 for large deformations with length correction
00093     ID *constrDOF;             // ID of constrained DOF at constrained node
00094     ID *retainDOF;             // ID of related DOF at retained node
00095     Node *RetainedNode;        // to identify the retained node
00096     Node *ConstrainedNode;     // to identify  the constrained node
00097     Node *RotationNode;
00098     Node *DisplacementNode;
00099     
00100     Vector RotNormVect;
00101     Vector DspNormVect;
00102     
00103     int dbTag1, dbTag2, dbTag3; // need a dbTag for the two ID's
00104     
00105     double Length0;
00106     Matrix *constraint;         // pointer to the constraint matrix
00107     Domain *thisDomain;         // pointer to domain the MP is defined on
00108 };
00109 
00110 #endif
00111 

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