Elastic2DGNL.hGo 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 ** See file 'COPYRIGHT' in main directory for information on usage ** 00010 ** and redistribution of OpenSees, and for a DISCLAIMER OF ALL ** 00011 ** WARRANTIES. ** 00012 ** ** 00013 ** Elastic2dGNL.h: interface for the Elastic2dGNL class ** 00014 ** Developed by: ** 00015 ** Rohit Kaul (rkaul@stanford.edu) ** 00016 ** Greg Deierlein (ggd@stanford.edu) ** 00017 ** ** 00018 ** John A. Blume Earthquake Engineering Center ** 00019 ** Stanford University ** 00020 ** ****************************************************************** **/ 00021 00022 // Written: rkaul 00023 // Created: 7/30 00024 // 00025 // Description: This file contains the class definition for Elastic2dGNL. 00026 00027 // Elastic2dGNL is a subclass of UpdatedLagrangianBeam2D, that can be 00028 // used to model 2d beam column elements with large deformation effects. 00029 // Most of the virtual Element methods have been implemented by the parent 00030 // class (see UpdatedLagrangianBeam2D.h for details, 00031 // including the recorder arguments) 00032 00033 #ifndef Elastic2dGNL_H 00034 #define Elastic2dGNL_H 00035 00036 // List of included files 00037 // UpdatedLagrangianBeam2D - parent class of this class 00038 #include "UpdatedLagrangianBeam2D.h" 00039 00040 class Elastic2dGNL : public UpdatedLagrangianBeam2D 00041 { 00042 public: 00043 // Arguments passed to the constructor include - tag, a unique id in 00044 // the domain, A - cross section area of the beam, E - modulus of 00045 // Elasticity, I - Izz, Nd1 and Nd2 are the nodal numbers of connected 00046 // nodes. Last two parameters are optional, by default geometric 00047 // nonlinearity is turned on and rho, mass density is set to zero. 00048 // This element assumes lumped mass for mass matrix. 00049 Elastic2dGNL(int tag, double A, double E, double I, int Nd1, int Nd2, 00050 bool islinear = false, double rho = 0.0); 00051 virtual ~Elastic2dGNL(); 00052 00053 // Prints the element info to OPS_Stream 00054 void Print(OPS_Stream &s, int flag =0); 00055 00056 // Methods for sending and receiving the object over a channel 00057 int sendSelf(int commitTag, Channel &theChannel); 00058 int recvSelf(int commitTag, Channel &theChannel, FEM_ObjectBroker &theBroker); 00059 00060 00061 protected: 00062 // Implementation of pure virtual subclass methods 00063 00064 // Get the elastic stiffness in local coordinates, 00065 // stored into K 00066 void getLocalStiff(Matrix &K); 00067 // Get the mass matrix in local coordinate system, 00068 // stored in M 00069 void getLocalMass(Matrix &M); 00070 00071 private: 00072 // Data declarations 00073 double A, E, Iz; 00074 }; 00075 00076 #endif // !defined Elastic2dGNL 00077 00078 /* 00079 * 00080 * WARNING/ERROR format/representation 00081 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 00082 * Warnings are generally issued if the standard implementation of a 00083 * method may not be possible. Further analysis may lead to incorrect 00084 * solution, eventhough it may be possible to continue. 00085 * 00086 * Warnings 00087 * -------- 00088 * 00089 * WARNING (W_Level_ID) - Class::method(..) [ElementTag] 00090 * Short description ... 00091 * 00092 * Errors 00093 * ------ 00094 * 00095 * ERROR (E_ID) - Class::method(..) [ElementTag] 00096 * Short description ... 00097 * 00098 * Analysis may be halted if an error is encountered, further 00099 * analysis will definitely be erroneous. 00100 * 00101 * (see UpdatedLagrangianBeam2D.h for details) 00102 */ 00103 00104 |