XC Open source finite element analysis program
InteractionDiagram2d.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 //InteractionDiagram.h
28 
29 #ifndef INTERACTION_DIAGRAM2D_H
30 #define INTERACTION_DIAGRAM2D_H
31 
32 #include "xc_utils/src/geom/d2/poligonos2d/Poligono2d.h"
33 
34 namespace XC {
35 
36 class Vector;
37 class FiberSectionBase;
38 class InteractionDiagramData;
39 
41 //
43 class InteractionDiagram2d: public Poligono2d
44  {
45  protected:
46  Pos2d get_interseccion(const Pos2d &p) const;
47  public:
49  InteractionDiagram2d(const Poligono2d &);
50  virtual InteractionDiagram2d *clon(void) const;
51 
52  void Simplify(void);
53  Pos2d getIntersection(const Pos2d &) const;
54  double FactorCapacidad(const Pos2d &esf_d) const;
55  Vector FactorCapacidad(const GeomObj::list_Pos2d &lp) const;
56 
57  void Print(std::ostream &os) const;
58  };
59 
60 InteractionDiagram2d calcPlaneInteractionDiagram(const FiberSectionBase &scc,const InteractionDiagramData &, const double &);
61 InteractionDiagram2d calcNMyInteractionDiagram(const FiberSectionBase &scc,const InteractionDiagramData &);
62 InteractionDiagram2d calcNMzInteractionDiagram(const FiberSectionBase &scc,const InteractionDiagramData &);
63 
64 } // end of XC namespace
65 
66 #endif
Definition: Vector.h:82
@ingroup MATSCCDiagInt
Definition: InteractionDiagram2d.h:43
virtual InteractionDiagram2d * clon(void) const
Virtual constructor.
Definition: InteractionDiagram2d.cc:61
double FactorCapacidad(const Pos2d &esf_d) const
Returns the capacity factor for the internal forces triplet being passed as parameters.
Definition: InteractionDiagram2d.cc:107
InteractionDiagram2d(void)
Default constructor.
Definition: InteractionDiagram2d.cc:53
Pos2d getIntersection(const Pos2d &) const
Returns the intersection of the ray O->esf_d with the interaction diagram.
Definition: InteractionDiagram2d.cc:103
Pos2d get_interseccion(const Pos2d &p) const
Return the intersection of the half-line that links the origin (0,0,0) with p an the interaction diag...
Definition: InteractionDiagram2d.cc:66
Base class for fiber sections.
Definition: FiberSectionBase.h:57
void Simplify(void)
Converts the diagram in a diamond with vertex on the intersections of the diagram with the coordinate...
Definition: InteractionDiagram2d.cc:82
================================================================================
Definition: ContinuaReprComponent.h:34
@ingroup MATSCCDiagInt
Definition: InteractionDiagramData.h:41