XC Open source finite element analysis program
ElasticPlateBase.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 //ElasticPlateBase.h
28 
29 #ifndef ElasticPlateBase_h
30 #define ElasticPlateBase_h
31 
32 #include "PlateBase.h"
33 #include <utility/matrix/Vector.h>
34 #include <utility/matrix/Matrix.h>
35 
36 namespace XC {
37 
39 //
42  {
43  protected:
44  double E;
45  double nu;
46 
47  static const double five6; // =5/6 = shear correction factor
48 
49  int sendData(CommParameters &cp);
50  int recvData(const CommParameters &cp);
51 
52  public :
53  ElasticPlateBase(int tag,int classTag);
54  ElasticPlateBase(int classTag);
55  ElasticPlateBase(int tag,int classTag, double E, double nu, double h);
56 
57  int commitState(void);
58  int revertToLastCommit(void);
59  int revertToStart(void);
60 
61  inline double getE(void) const
62  { return E; }
63  void setE(const double &d)
64  { E= d; }
65  inline double getnu(void) const
66  { return nu; }
67  void setnu(const double &d)
68  { nu= d; }
69 
70  inline double membraneModulus(void) const
71  { return (E/(1.0-nu*nu)*h); }
72  inline double shearModulus(void) const
73  { return (0.5*E/(1.0+nu)*h); }
74  inline double bendingModulus(void) const
75  { return (E*(h*h*h)/12.0/( 1.0 - nu*nu )); }
76  };
77 } // end of XC namespace
78 
79 #endif
double nu
poisson ratio
Definition: ElasticPlateBase.h:45
int sendData(CommParameters &cp)
Send data through the channel being passed as parameter.
Definition: ElasticPlateBase.cc:66
int revertToStart(void)
revert to start
Definition: ElasticPlateBase.cc:62
ElasticPlateBase(int tag, int classTag)
Constructor.
Definition: ElasticPlateBase.cc:38
int commitState(void)
swap history variables
Definition: ElasticPlateBase.cc:54
int recvData(const CommParameters &cp)
Receive data through the channel being passed as parameter.
Definition: ElasticPlateBase.cc:74
Base class for bidimensional membrane/plate/shell materials.
Definition: PlateBase.h:46
int revertToLastCommit(void)
revert to last saved state
Definition: ElasticPlateBase.cc:58
double h
plate thickness
Definition: PlateBase.h:49
Communication parameters between processes.
Definition: CommParameters.h:65
Base class for elastic plate materials.
Definition: ElasticPlateBase.h:41
================================================================================
Definition: ContinuaReprComponent.h:34
double E
elastic modulus
Definition: ElasticPlateBase.h:44