XC Open source finite element analysis program
BeamMecLoad.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 //BeamMecLoad.h
28 
29 #ifndef BeamMecLoad_h
30 #define BeamMecLoad_h
31 
32 
33 #include <domain/load/beam_loads/BeamLoad.h>
34 #include "xc_utils/src/geom/pos_vec/Pos3d.h"
35 class SVD3d;
36 
37 namespace XC {
38 class Matrix;
39 class FVector;
40 class CrossSectionProperties2d;
41 class CrossSectionProperties3d;
42 
44 //
46 class BeamMecLoad : public BeamLoad
47  {
48  protected:
49  double Trans;
50  double Axial;
51 
52  int sendData(CommParameters &cp);
53  int recvData(const CommParameters &cp);
54  public:
55  BeamMecLoad(int tag, int classTag,const double &Trans,const double &Axial,const ID &theElementTags);
56  BeamMecLoad(int tag, int classTag);
57 
58  inline double getTransComponent(void) const
59  { return Trans; }
60  inline double getAxialComponent(void) const
61  { return Axial; }
62  inline void setTransComponent(const double &t)
63  { Trans= t; }
64  inline void setAxialComponent(const double &a)
65  { Axial= a; }
66 
67  virtual const Matrix &getAppliedSectionForces(const double &L,const Matrix &xi,const double &loadFactor) const;
68  virtual void addReactionsInBasicSystem(const double &,const double &,FVector &) const;
69  virtual void addFixedEndForcesInBasicSystem(const double &,const double &,FVector &) const;
70  void addElasticDeformations(const double &L,const CrossSectionProperties3d &ctes_scc,const double &lpI,const double &lpJ,const double &loadFactor,FVector &v0);
71  void addElasticDeformations(const double &L,const CrossSectionProperties2d &ctes_scc,const double &lpI,const double &lpJ,const double &loadFactor,FVector &v0);
72 
73  virtual size_t getDimVectorFuerza(void) const;
74  virtual size_t getDimVectorMomento(void) const;
75  virtual Vector getLocalForce(void) const;
76  virtual Vector getLocalMoment(void) const;
77  virtual const Matrix &getLocalForces(void) const;
78  virtual const Matrix &getLocalMoments(void) const;
79  virtual const Matrix &getGlobalVectors(const Matrix &) const;
80  virtual const Matrix &getGlobalForces(void) const;
81  virtual const Matrix &getGlobalMoments(void) const;
82 
83  virtual SVD3d getResultant(const Pos3d &p= Pos3d(), bool initialGeometry= true) const;
84 
85  void Print(std::ostream &s, int flag =0) const;
86 
87  };
88 } // end of XC namespace
89 
90 #endif
91 
Element internal forces.
Definition: FVector.h:44
virtual Vector getLocalMoment(void) const
Returns moment expressed in local coordinates.
Definition: BeamMecLoad.cc:100
virtual const Matrix & getLocalForces(void) const
Returns punctual/distributed force vectors (one for each element) expressed in local coordinates...
Definition: BeamMecLoad.cc:108
Definition: Vector.h:82
virtual void addFixedEndForcesInBasicSystem(const double &, const double &, FVector &) const
??
Definition: BeamMecLoad.cc:67
Mechanical loads (forces) over beam elements.
Definition: BeamMecLoad.h:46
double Trans
Transverse load.
Definition: BeamMecLoad.h:49
virtual size_t getDimVectorMomento(void) const
Return the dimension del vector momento.
Definition: BeamMecLoad.cc:87
Mechanical properties of a section (area, moments of inertia,...) in a three-dimensional problem (six...
Definition: CrossSectionProperties3d.h:40
int sendData(CommParameters &cp)
Send data through the channel being passed as parameter.
Definition: BeamMecLoad.cc:188
int recvData(const CommParameters &cp)
Receive data through the channel being passed as parameter.
Definition: BeamMecLoad.cc:196
virtual size_t getDimVectorFuerza(void) const
Return the dimension del vector fuerza.
Definition: BeamMecLoad.cc:83
Load over beam elements.
Definition: BeamLoad.h:42
virtual const Matrix & getGlobalForces(void) const
Returns punctual/distributed force vectors (one for each element) expressed in global coordinates...
Definition: BeamMecLoad.cc:164
Definition: ID.h:77
double Axial
Axial load.
Definition: BeamMecLoad.h:50
Definition: Matrix.h:82
Mechanical properties of a cross section (area, moments of inertia,...) for a bi-dimensional problem ...
Definition: CrossSectionProperties2d.h:52
virtual const Matrix & getLocalMoments(void) const
Returns puntual/distributed force moments (one for each element) expressed in local coordinates...
Definition: BeamMecLoad.cc:122
Communication parameters between processes.
Definition: CommParameters.h:65
================================================================================
Definition: ContinuaReprComponent.h:34
virtual SVD3d getResultant(const Pos3d &p=Pos3d(), bool initialGeometry=true) const
brief Returns load resultant (force and moment integration over the elements).
Definition: BeamMecLoad.cc:172
virtual Vector getLocalForce(void) const
Returns force expressed in local coordinates.
Definition: BeamMecLoad.cc:91
virtual void addReactionsInBasicSystem(const double &, const double &, FVector &) const
Adds the load al consistent load vector (ver página 108 libro Eugenio Oñate).
Definition: BeamMecLoad.cc:58
virtual const Matrix & getGlobalMoments(void) const
Returns punctual/distributed moment vectors (one for each element) expressed in global coordinates...
Definition: BeamMecLoad.cc:168
virtual const Matrix & getAppliedSectionForces(const double &L, const Matrix &xi, const double &loadFactor) const
Returns applied section forces due to this load (called in element&#39;s addLoad method).
Definition: BeamMecLoad.cc:47