XC Open source finite element analysis program
DeformationPlane.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 //DeformationPlane
28 
29 #ifndef DEFORMATION_PLANE_H
30 #define DEFORMATION_PLANE_H
31 
32 #include <iostream>
33 #include "xc_utils/src/geom/d2/Plano3d.h"
34 #include "utility/actor/actor/MovableObject.h"
35 
36 class Pos2d;
37 class Pos3d;
38 class Recta2d;
39 class Semiplano2d;
40 
41 namespace XC {
42 
43 class Vector;
44 class ResponseId;
45 
47 //
49 //
51 //
53 class DeformationPlane: public Plano3d, public MovableObject
54  {
55  protected:
56  bool check_positions(const Pos2d &,const Pos2d &, const Pos2d &);
57  bool check_positions(const Pos3d &,const Pos3d &, const Pos3d &);
58  int sendData(CommParameters &);
59  int recvData(const CommParameters &);
60  friend class SectionForceDeformation;
61  friend class DqFibras;
62  friend class FiberSectionBase; //Erase this line.
63  const Vector &getDeformation(void) const;
64  public:
65  DeformationPlane( const Pos3d &p1,const Pos3d &p2, const Pos3d &p3);
66  explicit DeformationPlane(const Plano3d &);
67  DeformationPlane( const Pos2d &yz1, const double &e_1, //Strains at three fiber sections.
68  const Pos2d &yz2, const double &e_2,
69  const Pos2d &yz3, const double &e_3);
70  explicit DeformationPlane(const double &eps= 0.0);
71  DeformationPlane(const Vector &e);
72 
73  double Strain(const Pos2d &p) const;
74  const Vector &getDeformation(const size_t &order,const ResponseId &code) const;
75 
76  void ConstantStrain(const double &);
77 
78  Recta2d getFibraNeutra(void) const;
79  Pos2d getPuntoSemiplanoTracciones(void) const;
80  Pos2d getPuntoSemiplanoCompresiones(void) const;
81  Semiplano2d getSemiplanoTracciones(void) const;
82  Semiplano2d getSemiplanoTracciones(const Recta2d &) const;
83  Semiplano2d getSemiplanoCompresiones(void) const;
84  Semiplano2d getSemiplanoCompresiones(const Recta2d &) const;
85 
86  int sendSelf(CommParameters &);
87  int recvSelf(const CommParameters &);
88  };
89 
90 } // end of XC namespace
91 
92 #endif
Definition: Vector.h:82
Semiplano2d getSemiplanoTracciones(void) const
Returns the tensioned half-plane.
Definition: DeformationPlane.cc:242
Semiplano2d getSemiplanoCompresiones(void) const
Returns the compressed half plane.
Definition: DeformationPlane.cc:290
double Strain(const Pos2d &p) const
Return the strain of the fiber at the position being passed as parameter.
Definition: DeformationPlane.cc:125
Pos2d getPuntoSemiplanoTracciones(void) const
Returns (if possible) un punto en el que las tensiones son de tracción.
Definition: DeformationPlane.cc:175
int recvSelf(const CommParameters &)
Receives object through the channel being passed as parameter.
Definition: DeformationPlane.cc:337
Stiffness material contribution response identifiers.
Definition: ResponseId.h:60
int sendSelf(CommParameters &)
Sends object through the channel being passed as parameter.
Definition: DeformationPlane.cc:323
Recta2d getFibraNeutra(void) const
Return the neutral axis.
Definition: DeformationPlane.cc:158
Object that can move between processes.
Definition: MovableObject.h:91
const Vector & getDeformation(void) const
Returns the generalized strains vector.
Definition: DeformationPlane.cc:129
Contenedor de fibras.
Definition: DqFibras.h:66
Deformation plane for a cross-section.
Definition: DeformationPlane.h:53
int recvData(const CommParameters &)
Receives object members through the channel being passed as parameter.
Definition: DeformationPlane.cc:312
int sendData(CommParameters &)
Send object members through the channel being passed as parameter.
Definition: DeformationPlane.cc:301
Base class for fiber sections.
Definition: FiberSectionBase.h:57
Base class for force deformation section models. Constitutive equations of the section.
Definition: SectionForceDeformation.h:86
Communication parameters between processes.
Definition: CommParameters.h:65
================================================================================
Definition: ContinuaReprComponent.h:34
Pos2d getPuntoSemiplanoCompresiones(void) const
Returns (if possible) un punto en el que las tensiones son de compresion.
Definition: DeformationPlane.cc:196