xc
ResponseId.h
1 // -*-c++-*-
2 //----------------------------------------------------------------------------
3 // XC program; finite element analysis code
4 // for structural analysis and design.
5 //
6 // Copyright (C) Luis C. Pérez Tato
7 //
8 // This program derives from OpenSees <http://opensees.berkeley.edu>
9 // developed by the «Pacific earthquake engineering research center».
10 //
11 // Except for the restrictions that may arise from the copyright
12 // of the original program (see copyright_opensees.txt)
13 // XC is free software: you can redistribute it and/or modify
14 // it under the terms of the GNU General Public License as published by
15 // the Free Software Foundation, either version 3 of the License, or
16 // (at your option) any later version.
17 //
18 // This software is distributed in the hope that it will be useful, but
19 // WITHOUT ANY WARRANTY; without even the implied warranty of
20 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 // GNU General Public License for more details.
22 //
23 //
24 // You should have received a copy of the GNU General Public License
25 // along with this program.
26 // If not, see <http://www.gnu.org/licenses/>.
27 //----------------------------------------------------------------------------
28 //ResponseId.h
29 //Stiffness material contribution response identifiers.
30 
31 #ifndef ResponseId_h
32 #define ResponseId_h
33 
34 #include "utility/matrix/ID.h"
35 
36 namespace XC {
37  class Channel;
38  class FEM_ObjectBroker;
39 
40 
41 const int SECTION_RESPONSE_MZ= 1; // Curvature about the section z-axis
42 const int SECTION_RESPONSE_P= 2; // Axial strain
43 const int SECTION_RESPONSE_VY= 3;
44 const int SECTION_RESPONSE_MY= 4; // Curvature about the section y-axis
45 const int SECTION_RESPONSE_VZ= 5;
46 const int SECTION_RESPONSE_T= 6; // Torsion.
47 
48 
49 const int MEMBRANE_RESPONSE_n1= 11; // Axial force per unit length, parallel to axis 1
50 const int MEMBRANE_RESPONSE_n2= 12; // Axial force per unit length, parallel to axis 2
51 const int MEMBRANE_RESPONSE_n12= 13; // In-plane shear force per unit length.
52 const int PLATE_RESPONSE_m1= 14; // Bending moment per unit length, parallel to axis 1.
53 const int PLATE_RESPONSE_m2= 15; // Bending moment per unit length, parallel to axis 2.
54 const int PLATE_RESPONSE_m12= 16; // Torque per unit length.
55 const int PLATE_RESPONSE_q13= 17; // Shear force per unit length, perpendicular to axis 1 and parallel to axis 3.
56 const int PLATE_RESPONSE_q23= 18; // Shear force per unit length, perpendicular to axis 2 and parallel to axis 3.
57 
59 //
61 class ResponseId: public ID
62  {
63  public:
64  ResponseId(int sz= 0);
65  ResponseId(const std::deque<std::string> &);
66  ResponseId(const std::vector<std::string> &);
67  explicit ResponseId(const boost::python::list &);
68  //ResponseId(int *, int size, bool cleanIt = false);
69  explicit ResponseId(const ID &);
70  bool hasResponse(const int &ri) const;
71  static int StringToRespId(const std::string &str);
72  static std::string RespIdToString(const int &ri);
73  std::string getString(void) const;
74  };
75 
76 class RespP: public ResponseId
77  {
78  public:
79  RespP(void);
80  };
81 
82 class RespPMz: public ResponseId
83  {
84  public:
85  RespPMz(void);
86  };
87 
88 class RespPMzV: public ResponseId
89  {
90  public:
91  RespPMzV(void);
92  };
93 
94 class RespVyP: public ResponseId
95  {
96  public:
97  RespVyP(void);
98  };
99 
100 class RespPMzMy: public ResponseId
101  {
102  public:
103  RespPMzMy(void);
104  };
105 
106 class RespPMzMyT: public ResponseId
107  {
108  public:
109  RespPMzMyT(void);
110  };
111 
113  {
114  public:
115  RespPMzVyMyVzT(void);
116  };
117 
119  {
120  public:
122  };
123 
125  {
126  public:
128  };
129 
130 class RespPVyMz: public ResponseId
131  {
132  public:
133  RespPVyMz(void);
134  };
135 
137  {
138  public:
139  RespMembraneMaterial(void);
140  };
141 
143  {
144  public:
145  RespPlateMaterial(void);
146  };
147 
149  {
150  public:
151  RespShellMaterial(void);
152  };
153 
154 const RespP RespElasticSection1d;
155 const RespPMz RespElasticSection2d;
156 const RespPMzV RespElasticShSection2d;
157 const RespVyP RespBidirectional;
158 const RespPMzMy RespFiberSection3d;
159 const RespPMzMyT RespElasticSection3d;
160 const RespPMzVyMyVzT RespElasticShSection3d;
161 const RespFiberSectionShear2d RespFiberSectionSh2d;
162 const RespFiberSectionShear3d RespFiberSectionSh3d;
163 const RespPVyMz RespIsolator2spring;
164 const RespMembraneMaterial RespMembraneMat;
165 const RespPlateMaterial RespPlateMat;
166 const RespShellMaterial RespShellMat;
167 
168 } // end of XC namespace
169 
170 #endif
Definition: ResponseId.h:124
Definition: ResponseId.h:82
Definition: ResponseId.h:100
Definition: ResponseId.h:130
Definition: ResponseId.h:142
Vector of integers.
Definition: ID.h:95
Definition: ResponseId.h:112
Definition: ResponseId.h:148
Definition: ResponseId.h:88
Definition: ResponseId.h:118
Stiffness material contribution response identifiers.
Definition: ResponseId.h:61
Open source finite element program for structural analysis.
Definition: ContinuaReprComponent.h:35
Definition: ResponseId.h:136
Definition: ResponseId.h:94
static int StringToRespId(const std::string &str)
Return the identifier corresponding to the string argument.
Definition: ResponseId.cc:79
Definition: ResponseId.h:106
Definition: ResponseId.h:76