XC Open source finite element analysis program
Elastic2DGNL.h
1 //----------------------------------------------------------------------------
2 // XC program; finite element analysis code
3 // for structural analysis and design.
4 //
5 // Copyright (C) Luis Claudio Pérez Tato
6 //
7 // This program derives from OpenSees <http://opensees.berkeley.edu>
8 // developed by the «Pacific earthquake engineering research center».
9 //
10 // Except for the restrictions that may arise from the copyright
11 // of the original program (see copyright_opensees.txt)
12 // XC is free software: you can redistribute it and/or modify
13 // it under the terms of the GNU General Public License as published by
14 // the Free Software Foundation, either version 3 of the License, or
15 // (at your option) any later version.
16 //
17 // This software is distributed in the hope that it will be useful, but
18 // WITHOUT ANY WARRANTY; without even the implied warranty of
19 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 // GNU General Public License for more details.
21 //
22 //
23 // You should have received a copy of the GNU General Public License
24 // along with this program.
25 // If not, see <http://www.gnu.org/licenses/>.
26 //----------------------------------------------------------------------------
27 /* ****************************************************************** **
28 ** OpenSees - Open System for Earthquake Engineering Simulation **
29 ** Pacific Earthquake Engineering Research Center **
30 ** **
31 ** **
32 ** (C) Copyright 1999, The Regents of the University of California **
33 ** All Rights Reserved. **
34 ** **
35 ** See file 'COPYRIGHT' in main directory for information on usage **
36 ** and redistribution of OpenSees, and for a DISCLAIMER OF ALL **
37 ** WARRANTIES. **
38 ** **
39 ** Elastic2dGNL.h: interface for the Elastic2dGNL class **
40 ** Developed by: **
41 ** Rohit Kaul (rkaul@stanford.edu) **
42 ** Greg Deierlein (ggd@stanford.edu) **
43 ** **
44 ** John A. Blume Earthquake Engineering Center **
45 ** Stanford University **
46 ** ****************************************************************** **/
47 
48 // Written: rkaul
49 // Created: 7/30
50 //
51 
52 #ifndef Elastic2dGNL_H
53 #define Elastic2dGNL_H
54 
55 // List of included files
56 // UpdatedLagrangianBeam2D - parent class of this class
57 #include "domain/mesh/element/truss_beam_column/updatedLagrangianBeamColumn/UpdatedLagrangianBeam2D.h"
58 
59 namespace XC {
61 //
63 // used to model 2d beam column elements with large deformation effects.
65  {
66  private:
67  // Data declarations
68  double A, E, Iz;
69  public:
70  // Arguments passed to the constructor include - tag, a unique id in
71  // the domain, A - cross section area of the beam, E - modulus of
72  // Elasticity, I - Izz, Nd1 and Nd2 are the nodal numbers of connected
73  // nodes. Last two parameters are optional, by default geometric
74  // nonlinearity is turned on and rho, mass density is set to zero.
75  // This element assumes lumped mass for mass matrix.
76  Elastic2dGNL(int tag, double A, double E, double I, int Nd1, int Nd2, bool islinear = false, double rho = 0.0);
77  Element *getCopy(void) const;
78 
79  // Prints the element info to std::ostream
80  void Print(std::ostream &s, int flag =0);
81 
82  // Methods for sending and receiving the object over a ch
83  int sendSelf(CommParameters &);
84  int recvSelf(const CommParameters &);
85 
86 
87  protected:
88  // Implementation of pure virtual subclass methods
89 
90  // Get the elastic stiffness in local coordinates,
91  // stored into K
92  void getLocalStiff(Matrix &K) const;
93  // Get the mass matrix in local coordinate system,
94  // stored in M
95  void getLocalMass(Matrix &M) const;
96  };
97 } // end of XC namespace
98 
99 #endif // !defined Elastic2dGNL
100 
101 /*
102  *
103  * WARNING/ERROR format/representation
104  * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
105  * Warnings are generally issued if the standard implementation of a
106  * method may not be possible. Further analysis may lead to incorrect
107  * solution, eventhough it may be possible to continue.
108  *
109  * Warnings
110  * --------
111  *
112  * WARNING (W_Level_ID) - Class::method(..) [ElementTag]
113  * Short description ...
114  *
115  * Errors
116  * ------
117  *
118  * ERROR (E_ID) - Class::method(..) [ElementTag]
119  * Short description ...
120  *
121  * Analysis may be halted if an error is encountered, further
122  * analysis will definitely be erroneous.
123  *
124  * (see UpdatedLagrangianBeam2D.h for details)
125  */
126 
127 
Element * getCopy(void) const
Virtual constructor.
Definition: Elastic2DGNL.cpp:74
void Print(std::ostream &s, int flag=0)
Imprime el objeto.
Definition: Elastic2DGNL.cpp:119
Lagrangian 2D beam element.
Definition: UpdatedLagrangianBeam2D.h:75
Base calass for the finite elements.
Definition: Element.h:104
Elastic2dGNL is a subclass of UpdatedLagrangianBeam2D, that can be.
Definition: Elastic2DGNL.h:64
Definition: Matrix.h:82
Communication parameters between processes.
Definition: CommParameters.h:65
================================================================================
Definition: ContinuaReprComponent.h:34