xc
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/Plane.h"
34 #include "utility/actor/actor/MovableObject.h"
35 
36 class Pos2d;
37 class Pos3d;
38 class Line2d;
39 class HalfPlane2d;
40 
41 namespace XC {
42 
43 class Vector;
44 class ResponseId;
45 
49 //
51 //
53 class DeformationPlane: public Plane, 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 FiberPtrDeque;
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 Plane &);
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  Line2d getNeutralAxis(void) const;
79  Pos2d getPointOnTensionedHalfPlane(void) const;
80  Pos2d getPointOnCompressedHalfPlane(void) const;
81  HalfPlane2d getTensionedHalfPlane(void) const;
82  HalfPlane2d getTensionedHalfPlane(const Line2d &) const;
83  HalfPlane2d getCompressedHalfPlane(void) const;
84  HalfPlane2d getCompressedHalfPlane(const Line2d &) const;
85 
86  int sendSelf(CommParameters &);
87  int recvSelf(const CommParameters &);
88  };
89 
90 } // end of XC namespace
91 
92 #endif
Base class for force deformation section models.
Definition: SectionForceDeformation.h:86
HalfPlane2d getTensionedHalfPlane(void) const
Returns the tensioned half-plane.
Definition: DeformationPlane.cc:247
Float vector abstraction.
Definition: Vector.h:93
int sendSelf(CommParameters &)
Sends object through the channel being passed as parameter.
Definition: DeformationPlane.cc:328
Base class for fiber sections.
Definition: FiberSectionBase.h:57
HalfPlane2d getCompressedHalfPlane(void) const
Returns the compressed half plane.
Definition: DeformationPlane.cc:295
Object that can move between processes.
Definition: MovableObject.h:99
int sendData(CommParameters &)
Send object members through the channel being passed as parameter.
Definition: DeformationPlane.cc:306
int recvData(const CommParameters &)
Receives object members through the channel being passed as parameter.
Definition: DeformationPlane.cc:317
Deformation plane for a cross-section.
Definition: DeformationPlane.h:53
Fiber pointers container.
Definition: FiberPtrDeque.h:66
Stiffness material contribution response identifiers.
Definition: ResponseId.h:60
int recvSelf(const CommParameters &)
Receives object through the channel being passed as parameter.
Definition: DeformationPlane.cc:343
double Strain(const Pos2d &p) const
Return the strain of the fiber at the position being passed as parameter.
Definition: DeformationPlane.cc:128
const Vector & getDeformation(void) const
Returns the generalized strains vector.
Definition: DeformationPlane.cc:132
Line2d getNeutralAxis(void) const
Return the neutral axis.
Definition: DeformationPlane.cc:161
Open source finite element program for structural analysis.
Definition: ContinuaReprComponent.h:34
Communication parameters between processes.
Definition: CommParameters.h:65
Pos2d getPointOnCompressedHalfPlane(void) const
Returns (if possible) a point in the compressed zone.
Definition: DeformationPlane.cc:200
Pos2d getPointOnTensionedHalfPlane(void) const
Returns (if possible) a point in the tensioned side of the cross-section.
Definition: DeformationPlane.cc:179