xc
EsfBeamColumn3d.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 //EsfBeamColumn3d.h
29 
30 
31 #ifndef EsfBeamColumn3d_h
32 #define EsfBeamColumn3d_h
33 
34 #include "utility/matrix/Vector.h"
35 
36 namespace XC {
37 
38 class DbTagData;
39 
40 class FEM_ObjectBroker;
41 class Communicator;
42 
44 //
46 class EsfBeamColumn3d: public Vector
47  {
48  public:
49  EsfBeamColumn3d(void);
50  explicit EsfBeamColumn3d(const Vector &);
54  inline const double &N(void) const
55  { return (*this)[0]; }
57  inline double &N(void)
58  { return (*this)[0]; }
60  inline double AN1(void) const
61  { return -N(); }
63  inline double AN2(void) const
64  { return N(); }
66  inline const double &Mz1(void) const
67  { return (*this)[1]; }
69  inline double &Mz1(void)
70  { return (*this)[1]; }
72  inline const double &Mz2(void) const
73  { return (*this)[2]; }
75  inline double &Mz2(void)
76  { return (*this)[2]; }
78  inline double Vy(const double &L) const
79  { return (Mz1()+Mz2())/L; }
81  inline const double &My1(void) const
82  { return (*this)[3]; }
84  inline double &My1(void)
85  { return (*this)[3]; }
87  inline const double &My2(void) const
88  { return (*this)[4]; }
90  inline double &My2(void)
91  { return (*this)[4]; }
93  inline double Vz(const double &L) const
94  { return -((My1()+My2())/L); }
96  inline const double &T(void) const
97  { return (*this)[5]; }
99  inline double &T(void)
100  { return (*this)[5]; }
102  inline double T1(void) const
103  { return -T(); }
105  inline double T2(void) const
106  { return T(); }
107  };
108 int sendEsfBeamColumn3d(const EsfBeamColumn3d &, int posDbTag,DbTagData &dt, Communicator &comm);
109 int receiveEsfBeamColumn3d(EsfBeamColumn3d &v, int posDbTag,DbTagData &dt,const Communicator &comm);
110 
111 } // end of XC namespace
112 
113 #endif
double Vy(const double &L) const
Returns shear along y axis.
Definition: EsfBeamColumn3d.h:78
const double & T(void) const
Returns the torsor.
Definition: EsfBeamColumn3d.h:96
Float vector abstraction.
Definition: Vector.h:94
const double & N(void) const
Returns the axil.
Definition: EsfBeamColumn3d.h:54
const double & My1(void) const
Returns the moment about y in the back end.
Definition: EsfBeamColumn3d.h:81
const double & Mz2(void) const
Returns the moment about z in the front end.
Definition: EsfBeamColumn3d.h:72
Communication parameters between processes.
Definition: Communicator.h:66
double & Mz2(void)
Returns the moment about z in the front end.
Definition: EsfBeamColumn3d.h:75
Vector that stores the dbTags of the class members.
Definition: DbTagData.h:44
double Vz(const double &L) const
Returns the shear along z.
Definition: EsfBeamColumn3d.h:93
EsfBeamColumn3d(void)
Default constructor.
Definition: EsfBeamColumn3d.cc:33
3D beam column internal forces.
Definition: EsfBeamColumn3d.h:46
double AN1(void) const
Return the axial force in the back end.
Definition: EsfBeamColumn3d.h:60
double AN2(void) const
Return the axial force in the front end.
Definition: EsfBeamColumn3d.h:63
double & My2(void)
Returns the moment about y in the front end.
Definition: EsfBeamColumn3d.h:90
double & My1(void)
Returns the moment about y in the back end.
Definition: EsfBeamColumn3d.h:84
Open source finite element program for structural analysis.
Definition: ContinuaReprComponent.h:35
double T2(void) const
Returns the torsor in the front end.
Definition: EsfBeamColumn3d.h:105
const double & Mz1(void) const
Returns the moment about z in the back end.
Definition: EsfBeamColumn3d.h:66
const double & My2(void) const
Returns the moment about y in the front end.
Definition: EsfBeamColumn3d.h:87
double & N(void)
Returns the axil.
Definition: EsfBeamColumn3d.h:57
double & T(void)
Returns the torsor.
Definition: EsfBeamColumn3d.h:99
double & Mz1(void)
Returns the moment about z in the back end.
Definition: EsfBeamColumn3d.h:69
double T1(void) const
Returns the torsor in the back end.
Definition: EsfBeamColumn3d.h:102
EsfBeamColumn3d & operator=(const EsfBeamColumn3d &)
Assignment operator.
Definition: EsfBeamColumn3d.cc:55