XC Open source finite element analysis program
VectorSeccionesBarraPrismatica.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 //VectorSeccionesBarraPrismatica.h
28 
29 #ifndef VectorSeccionesBarraPrismatica_h
30 #define VectorSeccionesBarraPrismatica_h
31 
32 #include "xc_utils/src/nucleo/EntCmd.h"
33 #include "utility/actor/actor/MovableObject.h"
34 #include <vector>
35 
36 namespace XC {
37 
38 class SeccionBarraPrismatica;
39 class Vector;
40 class Matrix;
41 class Material;
42 class BeamStrainLoad;
43 
45 //
48 class VectorSeccionesBarraPrismatica: public EntCmd, public std::vector<SeccionBarraPrismatica *>, public MovableObject
49  {
50  protected:
51  void borra_secciones(void);
52  void clearAll(void);
54  int sendData(CommParameters &);
55  int recvData(const CommParameters &);
56 
57  public:
58  typedef std::vector<SeccionBarraPrismatica *> mat_vector;
59  typedef mat_vector::iterator iterator;
60  typedef mat_vector::reference reference;
61  typedef mat_vector::const_reference const_reference;
62 
63  VectorSeccionesBarraPrismatica(const size_t &sz);
64  VectorSeccionesBarraPrismatica(const size_t &sz,const Material *m);
65  VectorSeccionesBarraPrismatica(const size_t &sz,const SeccionBarraPrismatica *matModel);
68 
69  bool isTorsion(void) const;
70 
71  void setSection(const SeccionBarraPrismatica *nueva_secc);
72  void setSectionCopy(size_t i,SeccionBarraPrismatica *nueva_secc);
73  void setupSection(const Material *sec);
74  bool setSections(const std::vector<SeccionBarraPrismatica *> &sectionPtrs);
76  void setInitialSectionDeformations(const std::vector<Vector> &vs);
77  void addInitialSectionDeformations(const BeamStrainLoad &,const double &,const Matrix &, const double &L);
78  void setTrialSectionDeformations(const std::vector<Vector> &vs);
79 
80  int commitState(void);
81  int revertToLastCommit(void);
82  int revertToStart(void);
83 
84  int sendSelf(CommParameters &);
85  int recvSelf(const CommParameters &);
86 
87  };
88 
89 } // end of XC namespace
90 
91 
92 #endif
int recvSelf(const CommParameters &)
Receives object through the channel being passed as parameter.
Definition: VectorSeccionesBarraPrismatica.cc:346
Base class for materials.
Definition: Material.h:85
int revertToLastCommit(void)
Returns the sections to its last commited state.
Definition: VectorSeccionesBarraPrismatica.cc:182
void setTrialSectionDeformations(const std::vector< Vector > &vs)
Asigna valores a las trial strains.
Definition: VectorSeccionesBarraPrismatica.cc:290
int recvData(const CommParameters &)
Receives object through the channel being passed as parameter.
Definition: VectorSeccionesBarraPrismatica.cc:314
VectorSeccionesBarraPrismatica(const size_t &sz)
Constructor.
Definition: VectorSeccionesBarraPrismatica.cc:63
Load due to restricted material expansion or contraction on beam elements.
Definition: BeamStrainLoad.h:44
bool isTorsion(void) const
Returns true if the sections have torsional stiffness.
Definition: VectorSeccionesBarraPrismatica.cc:203
Vector of pointers to SeccionBarraPrismaticaes. used to store the sections for each integration point...
Definition: VectorSeccionesBarraPrismatica.h:48
void setInitialSectionDeformations(const std::vector< Vector > &vs)
Asigna valores a las initial strains.
Definition: VectorSeccionesBarraPrismatica.cc:259
int commitState(void)
Commits sections state.
Definition: VectorSeccionesBarraPrismatica.cc:172
int sendSelf(CommParameters &)
Sends object through the channel being passed as parameter.
Definition: VectorSeccionesBarraPrismatica.cc:332
Object that can move between processes.
Definition: MovableObject.h:91
Base class for beam-column cross sections. Constitutive equations of the section. ...
Definition: SeccionBarraPrismatica.h:50
void zeroInitialSectionDeformations(void)
Zeroes initial strains.
Definition: VectorSeccionesBarraPrismatica.cc:251
Definition: Matrix.h:82
void addInitialSectionDeformations(const BeamStrainLoad &, const double &, const Matrix &, const double &L)
Asigna valores a las initial strains interpolando entre e1 y e2.
Definition: VectorSeccionesBarraPrismatica.cc:269
int sendData(CommParameters &)
Send object members through the channel being passed as parameter.
Definition: VectorSeccionesBarraPrismatica.cc:300
VectorSeccionesBarraPrismatica & operator=(const VectorSeccionesBarraPrismatica &)
Assignment operator.
Definition: VectorSeccionesBarraPrismatica.cc:107
Communication parameters between processes.
Definition: CommParameters.h:65
================================================================================
Definition: ContinuaReprComponent.h:34
int revertToStart(void)
Returns the sections to its initial state.
Definition: VectorSeccionesBarraPrismatica.cc:193